public TileMap(Level level, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) { m_level = level; m_xOrigin = minX; m_yOrigin = minY; m_zOrigin = minZ; m_tiles = new Tile[maxX - minX, maxY - minY, maxZ - minZ]; m_state = new TileState[maxX - minX, maxY - minY, maxZ - minZ]; for (int x = 0; x < Width; ++x) { for (int y = 0; y < Height; ++y) { for (int z = 0; z < Depth; ++z) { m_tiles[x, y, z] = Tiles.Air; m_state[x, y, z] = new TileState(); } } } m_history = new Stack <TileChange>(); m_latestTimeStamp = 0.0f; m_atlas = TextureAtlas.Get("models/tiles"); m_geometry = new Geometry[Enum.GetValues(typeof(RenderPass)).Length]; for (int i = 0; i < m_geometry.Length; ++i) { m_geometry[i] = new Geometry(Primitive.Triangles); } m_shadowGeometry = new Geometry(Primitive.Triangles); m_liquidGeometry = new Dictionary <LiquidTileBehaviour, Geometry>(); m_geometryNeedsRebuild = true; }