public RoomEditorEntity( IKernel kernel, IMeshCollider meshCollider, I3DRenderUtilities threeRenderUtilities, IAssetManagerProvider assetManagerProvider, Room room) { this.m_Kernel = kernel; this.m_MeshCollider = meshCollider; this.m_3DRenderUtilities = threeRenderUtilities; this.m_Room = room; this.m_ShipTextureAsset = assetManagerProvider.GetAssetManager().Get<TextureAsset>("ship"); this.m_RoomEditorMode = RoomEditorMode.Hovering; }
public void DeleteRoom(Room room) { this.Cells.RemoveAll(a => a.Room == room); for (var ix = room.X / 10; ix < (room.X + room.Width) / 10; ix++) { for (var iy = room.Y / 10; iy < (room.Y + room.Height) / 10; iy++) { for (var iz = room.Z / 10; iz < (room.Z + room.Depth) / 10; iz++) { this.Cells.Add(new ShipCell { X = (int)ix, Y = (int)iy, Z = (int)iz, }); } } } this.Rooms.Remove(room); this.m_BuffersNeedRecalculation = true; }
public RoomEditorWorld( IFactory factory, I2DRenderUtilities twoDRenderUtilities, IAssetManagerProvider assetManagerProvider, IPhysicsEngine physicsEngine, IRoomTool[] roomTools, ShipEditorWorld previousWorld, Room room) { this.PreviousWorld = previousWorld; this.Entities = new List<IEntity>(); this.m_2DRenderUtilities = twoDRenderUtilities; this.m_AssetManager = assetManagerProvider.GetAssetManager(); this.m_RoomTools = roomTools; this.m_DefaultFont = this.m_AssetManager.Get<FontAsset>("font.Default"); this.m_LightingEffect = this.m_AssetManager.Get<EffectAsset>("effect.Light"); this.m_LightingEffect.Effect.Parameters["Ambient"].SetValue(new Vector3(0.2f, 0.2f, 0.2f)); this.m_LightingEffect.Effect.Parameters["AmbientRemaining"].SetValue(new Vector3(0.8f, 0.8f, 0.8f)); var ship = factory.CreateShipEntity(); var player = factory.CreatePlayerEntity(); player.ParentArea = ship; player.X = 5; player.Z = 5; this.m_Room = room; foreach (var obj in this.m_Room.Objects) { obj.Reinitalize(); } this.m_RoomEditorEntity = factory.CreateRoomEditorEntity(this.m_Room); this.Entities.Add(ship); this.Entities.Add(player); this.Entities.Add(this.m_RoomEditorEntity); this.m_PhysicsEngine = physicsEngine; this.m_JitterWorld = new JitterWorld( new CollisionSystemSAP { EnableSpeculativeContacts = true }) { Gravity = new JVector(0, -50, 0) }; this.m_JitterWorld.ContactSettings.MaterialCoefficientMixing = ContactSettings.MaterialCoefficientMixingType.TakeMinimum; var shape = new BoxShape(new JVector(2, 2, 2)); var body = new RigidBody(shape); this.m_JitterWorld.AddBody(body); body.Position = new JVector(20, 10, 20); body.IsActive = true; this.m_RigidBody = body; this.SetupRoomPhysics(); }
public ShipEntity(I3DRenderUtilities threedRenderUtilities, IMeshCollider meshCollider, IFactory factory) { this.m_3DRenderUtilities = threedRenderUtilities; this.m_MeshCollider = meshCollider; this.m_Room = factory.CreateRoom(); }