public Render3DPlaneComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { _node = node; _renderUtilities = renderUtilities; Enabled = true; Effect = assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.Color"); }
public Render3DPlaneComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManager assetManager) { _node = node; _renderUtilities = renderUtilities; _defaultSurfaceEffect = assetManager.Get <UberEffectAsset>("effect.BuiltinSurface"); Enabled = true; }
public Render3DPlaneComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { _node = node; _renderUtilities = renderUtilities; Enabled = true; Effect = assetManagerProvider.GetAssetManager().Get <EffectAsset>("effect.Color"); }
public Render3DCubeComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { _node = node; _renderUtilities = renderUtilities; Enabled = true; Effect = assetManagerProvider.GetAssetManager().Get<UberEffectAsset>("effect.BuiltinSurface").Effects?["Color"]; Transform = new DefaultTransform(); }
public Render3DCubeComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { _node = node; _renderUtilities = renderUtilities; Enabled = true; Effect = assetManagerProvider.GetAssetManager().Get <UberEffectAsset>("effect.BuiltinSurface").Effects?["Color"]; Transform = new DefaultTransform(); }
public Render3DCubeComponent(INode node, I3DRenderUtilities renderUtilities, IAssetManager assetManager) { _node = node; _finalTransform = new DefaultFinalTransform(this, node); _renderUtilities = renderUtilities; _defaultSurfaceEffect = assetManager.Get <UberEffectAsset>("effect.BuiltinSurface"); Enabled = true; Transform = new DefaultTransform(); }
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 Render3DModelComponent( INode node, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider, ITextureFromHintPath textureFromHintPath, IRenderBatcher renderBatcher) { _node = node; _renderUtilities = renderUtilities; _textureFromHintPath = textureFromHintPath; _renderBatcher = renderBatcher; _assetManager = assetManagerProvider.GetAssetManager(); _animationTracker = new Stopwatch(); Enabled = true; Transform = new DefaultTransform(); }
public EditorWorld( IKernel kernel, I2DRenderUtilities twodRenderUtilities, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { this.Entities = new List <IEntity>(); this._2DrenderUtilities = twodRenderUtilities; this._renderUtilities = renderUtilities; this._assetManager = assetManagerProvider.GetAssetManager(); this._defaultFont = this._assetManager.Get <FontAsset>("font.Default"); this._count = 0; var entity = kernel.Get <CubeEntity>(); entity.LocalMatrix = Matrix.CreateTranslation(3.05f, 0, 2.1f); this.Entities.Add(entity); }
public EditorWorld( IKernel kernel, I2DRenderUtilities twodRenderUtilities, I3DRenderUtilities renderUtilities, IAssetManagerProvider assetManagerProvider) { this.Entities = new List <IEntity>(); this._2DrenderUtilities = twodRenderUtilities; this._renderUtilities = renderUtilities; this._assetManager = assetManagerProvider.GetAssetManager(); this._defaultFont = this._assetManager.Get <FontAsset>("font.Default"); this._count = 0; var entity = kernel.Get <CubeEntity>(); entity.X = 3.05f; entity.Y = 0; entity.Z = 2.1f; this.Entities.Add(entity); }
public LightEntity( LightRoomObject lightRoomObject, I3DRenderUtilities threedRenderUtilities, IAssetManagerProvider assetManagerProvider) { this.m_LightRoomObject = lightRoomObject; this.m_LightRoomObject.Deleted += this.OnDeleted; this.m_3DRenderUtilities = threedRenderUtilities; this.m_TextureAsset = assetManagerProvider.GetAssetManager().Get<TextureAsset>("ship"); var baseX = lightRoomObject.X + 0.5f; var baseY = lightRoomObject.Y + 0.5f; var baseZ = lightRoomObject.Z + 0.5f; // Set up rope physics. this.m_RopeComponents = new RigidBody[12]; this.m_PendingConstraints = new List<Constraint>(); for (var i = 0; i < 12; i++) { var shape = new BoxShape(0.5f, 0.5f, 0.5f); var rigidBody = new RigidBody(shape); rigidBody.Position = new JVector(baseX, baseY - (i * 0.6f), baseZ); this.m_RopeComponents[i] = rigidBody; if (i == 0) { rigidBody.IsStatic = true; } else { var constraint = new PointOnPoint( rigidBody, this.m_RopeComponents[i - 1], new JVector(baseX, baseY - (i * 0.6f) + 0.3f, baseZ)) { BiasFactor = 0.8f, Softness = 0.4f }; this.m_PendingConstraints.Add(constraint); } } }
public ShipEditorEntity( IAssetManagerProvider assetManagerProvider, I2DRenderUtilities twoRenderUtilities, I3DRenderUtilities threeRenderUtilities, IGridRenderer gridRenderer, ICollision collision, Ship ship) { this.m_DefaultFont = assetManagerProvider.GetAssetManager().Get<FontAsset>("font.Default"); this.m_2DRenderUtilities = twoRenderUtilities; this.m_3DRenderUtilities = threeRenderUtilities; this.m_GridRenderer = gridRenderer; this.m_Collision = collision; this.m_Ship = ship; this.m_PreviewRotation = 0; this.HorizontalRange = 30; this.VerticalRange = 30; this.VerticalSelection = 3; this.UpdateShipVisibilityCull(); }
public PerceptionWorld( IKernel kernel, I2DRenderUtilities twoDRenderUtilities, I3DRenderUtilities threeDRenderUtilities, IAssetManagerProvider assetManagerProvider, IEntityFactory entityFactory, ICubeRenderer cubeRenderer, ILevelManager levelManager, INetworkAPI networkAPI, int level) { this.Entities = new List <IEntity>(); this.m_NetworkAPI = networkAPI; this.m_2DRenderUtilities = twoDRenderUtilities; this.m_3DRenderUtilities = threeDRenderUtilities; this.m_AssetManager = assetManagerProvider.GetAssetManager(); this.m_DefaultFont = this.m_AssetManager.Get <FontAsset>("font.Default"); this.m_EntityFactory = entityFactory; this.m_CubeRenderer = cubeRenderer; this.m_CubeTexture = assetManagerProvider.GetAssetManager().Get <TextureAsset>("texture.Terrain"); this.m_LevelManager = levelManager; this.m_GameBoard = new int[10, 10]; this.m_GameBoardMeta = new string[10, 10]; this.m_GameBoardTX = new int[10, 10]; this.m_GameBoardTY = new int[10, 10]; this.m_LevelSuffix = this.m_NetworkAPI.WasJoin ? 'b' : 'a'; this.m_CurrentLevel = level; this.LoadLevel(level); this.m_NetworkAPI.ListenForMessage( "next level", a => { this.HandleNextLevel(); }); this.m_NetworkAPI.ListenForMessage( "reset level", a => { this.HandleResetLevel(); }); this.m_NetworkAPI.ListenForMessage( "door unlock", a => { var values = a.Split('|').Select(x => int.Parse(x)).ToArray(); var doorID = values[0]; var keyID = values[1]; this.Entities.RemoveAll(x => x is KeyEntity && ((KeyEntity)x).ID == keyID); foreach (var door in this.Entities.OfType <DoorEntity>().Where(x => x.ID == doorID)) { door.Open = true; } }); }
public Render3DPlaneComponent(INode node, I3DRenderUtilities renderUtilities) { _node = node; _renderUtilities = renderUtilities; }
public ShipEntity(I3DRenderUtilities threedRenderUtilities, IMeshCollider meshCollider, IFactory factory) { this.m_3DRenderUtilities = threedRenderUtilities; this.m_MeshCollider = meshCollider; this.m_Room = factory.CreateRoom(); }
public TychaiaGameWorld( IAssetManagerProvider assetManagerProvider, I3DRenderUtilities threedRenderUtilities, IFilteredFeatures filteredFeatures, IChunkOctreeFactory chunkOctreeFactory, IIsometricCameraFactory isometricCameraFactory, IChunkSizePolicy chunkSizePolicy, IChunkManagerEntityFactory chunkManagerEntityFactory, IProfiler profiler, IConsole console, ILevelAPI levelAPI /* temporary */, IGameUIFactory gameUIFactory, I2DRenderUtilities twodRenderUtilities, IClientNetworkAPI networkAPI, IEntityFactory entityFactory, IChunkConverter chunkConverter, IChunkCompressor chunkCompressor, IChunkGenerator chunkGenerator, ITerrainSurfaceCalculator terrainSurfaceCalculator, int uniqueClientIdentifier, Action cleanup, IViewportMode viewportMode) { this.m_3DRenderUtilities = threedRenderUtilities; this.m_FilteredFeatures = filteredFeatures; this.m_ChunkSizePolicy = chunkSizePolicy; this.m_Profiler = profiler; this.m_Console = console; this.m_2DRenderUtilities = twodRenderUtilities; this.m_NetworkAPI = networkAPI; this.m_EntityFactory = entityFactory; this.m_ChunkConverter = chunkConverter; this.m_ChunkCompressor = chunkCompressor; this.m_ChunkGenerator = chunkGenerator; this.m_TerrainSurfaceCalculator = terrainSurfaceCalculator; this.m_UniqueClientIdentifier = uniqueClientIdentifier; this.m_AssetManagerProvider = assetManagerProvider; this.m_Cleanup = cleanup; this.Level = levelAPI.NewLevel("test"); this.m_ViewportMode = viewportMode; this.m_DefaultFontAsset = this.m_AssetManagerProvider.GetAssetManager().Get<FontAsset>("font.Default"); this.ChunkOctree = chunkOctreeFactory.CreateChunkOctree<ClientChunk>(); var chunk = new ClientChunk(0, 0, 0); this.IsometricCamera = isometricCameraFactory.CreateIsometricCamera(this.ChunkOctree, chunk); this.m_ChunkManagerEntity = chunkManagerEntityFactory.CreateChunkManagerEntity(this); this.m_InventoryUIEntity = gameUIFactory.CreateInventoryUIEntity(); this.Entities = new List<IEntity> { this.m_ChunkManagerEntity, this.m_InventoryUIEntity }; // TODO: Move this somewhere better. this.m_NetworkAPI.ListenForMessage( "player update", (client, data) => { var playerState = InMemorySerializer.Deserialize<PlayerServerEntity.PlayerServerState>(data); // Lookup the player entity for this unique client ID if we have one. var player = this.Entities.OfType<PlayerEntity>() .FirstOrDefault(x => x.RuntimeData.UniqueClientIdentifier == playerState.UniqueClientID); if (player == null) { // Need to create a new player entity. player = this.m_EntityFactory.CreatePlayerEntity( new Player { UniqueClientIdentifier = playerState.UniqueClientID }); this.Entities.Add(player); } player.X = playerState.X; player.Y = playerState.Y; player.Z = playerState.Z; }); // TODO: Move this somewhere better. this.m_NetworkAPI.ListenForMessage( "player leave", (client, data) => { var playerState = InMemorySerializer.Deserialize<PlayerServerEntity.PlayerServerState>(data); // Lookup the player entity for this unique client ID if we have one. var player = this.Entities.OfType<PlayerEntity>() .FirstOrDefault(x => x.RuntimeData.UniqueClientIdentifier == playerState.UniqueClientID); // If we have a player entity, remove it from the world. if (player != null) { this.Entities.Remove(player); } }); // TODO: Move this somewhere better. this.m_NetworkAPI.ListenForMessage( "chunk available", (client, data) => { var dataChunk = this.m_ChunkCompressor.Decompress(data); var clientChunk = this.ChunkOctree.Get(dataChunk.X, dataChunk.Y, dataChunk.Z); if (clientChunk == null) { clientChunk = new ClientChunk(dataChunk.X, dataChunk.Y, dataChunk.Z); this.ChunkOctree.Set(clientChunk); } else if (clientChunk.Generated) { // TODO: We already have this chunk. The server shouldn't announce it to // us because we've already had it sent before, but at the moment the server // doesn't track this. We just ignore it for now (so we don't recompute // graphics data). Console.WriteLine("Chunk is marked as generated, will not reload from server"); return; } this.m_ChunkConverter.FromChunk(dataChunk, clientChunk); this.m_ChunkGenerator.Generate(clientChunk); }); }
public CubeEntity(I3DRenderUtilities renderUtilities) { _renderUtilities = renderUtilities; }
public PerceptionWorld( IKernel kernel, I2DRenderUtilities twoDRenderUtilities, I3DRenderUtilities threeDRenderUtilities, IAssetManagerProvider assetManagerProvider, IEntityFactory entityFactory, ICubeRenderer cubeRenderer, ILevelManager levelManager, INetworkAPI networkAPI, int level) { this.Entities = new List<IEntity>(); this.m_NetworkAPI = networkAPI; this.m_2DRenderUtilities = twoDRenderUtilities; this.m_3DRenderUtilities = threeDRenderUtilities; this.m_AssetManager = assetManagerProvider.GetAssetManager(); this.m_DefaultFont = this.m_AssetManager.Get<FontAsset>("font.Default"); this.m_EntityFactory = entityFactory; this.m_CubeRenderer = cubeRenderer; this.m_CubeTexture = assetManagerProvider.GetAssetManager().Get<TextureAsset>("texture.Terrain"); this.m_LevelManager = levelManager; this.m_GameBoard = new int[10, 10]; this.m_GameBoardMeta = new string[10, 10]; this.m_GameBoardTX = new int[10, 10]; this.m_GameBoardTY = new int[10, 10]; this.m_LevelSuffix = this.m_NetworkAPI.WasJoin ? 'b' : 'a'; this.m_CurrentLevel = level; this.LoadLevel(level); this.m_NetworkAPI.ListenForMessage( "next level", a => { this.HandleNextLevel(); }); this.m_NetworkAPI.ListenForMessage( "reset level", a => { this.HandleResetLevel(); }); this.m_NetworkAPI.ListenForMessage( "door unlock", a => { var values = a.Split('|').Select(x => int.Parse(x)).ToArray(); var doorID = values[0]; var keyID = values[1]; this.Entities.RemoveAll(x => x is KeyEntity && ((KeyEntity)x).ID == keyID); foreach (var door in this.Entities.OfType<DoorEntity>().Where(x=>x.ID == doorID)) { door.Open = true; } }); }