public static TerrainGeometrySubsets GTV(int x, int y, int z, TerrainGeometrySubsets geometry) { try { Point3 point = new Point3(x, y, z); TerrainChunk chunkAtCell = terrain.GetChunkAtCell(x, z); if (chunkAtCell == null) { return(geometry); } if (!Data.TryGetValue(point, out geometry)) { TerrainGeometrySubset terrainGeometrySubset = new TerrainGeometrySubset(new DynamicArray <TerrainVertex>(), new DynamicArray <ushort>()); TerrainGeometrySubsets terrainGeometrySubsets = new TerrainGeometrySubsets(); terrainGeometrySubsets.SubsetOpaque = terrainGeometrySubset; terrainGeometrySubsets.SubsetAlphaTest = terrainGeometrySubset; terrainGeometrySubsets.SubsetTransparent = terrainGeometrySubset; terrainGeometrySubsets.OpaqueSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; terrainGeometrySubsets.TransparentSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; terrainGeometrySubsets.AlphaTestSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; geometry = terrainGeometrySubsets; Data.Add(point, geometry); return(geometry); } } catch (Exception e) { Log.Information(e.ToString()); } return(geometry); }
public static TerrainGeometrySubsets GTV(int x, int z, TerrainGeometrySubsets geometry) { TerrainChunk chunkAtCell = terrain.GetChunkAtCell(x, z); if (chunkAtCell == null) { return(geometry); } if (!ILibrary.Data.TryGetValue(chunkAtCell.Coords, out geometry)) { TerrainGeometrySubset terrainGeometrySubset = new TerrainGeometrySubset(new DynamicArray <TerrainVertex>(), new DynamicArray <ushort>()); TerrainGeometrySubsets terrainGeometrySubsets = new TerrainGeometrySubsets(); terrainGeometrySubsets.SubsetOpaque = terrainGeometrySubset; terrainGeometrySubsets.SubsetAlphaTest = terrainGeometrySubset; terrainGeometrySubsets.SubsetTransparent = terrainGeometrySubset; terrainGeometrySubsets.OpaqueSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; terrainGeometrySubsets.TransparentSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; terrainGeometrySubsets.AlphaTestSubsetsByFace = new TerrainGeometrySubset[6] { terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset, terrainGeometrySubset }; geometry = terrainGeometrySubsets; ILibrary.Data.Add(chunkAtCell.Coords, geometry); } return(geometry); }
public TerrainChunkSliceGeometry() { Subsets = new TerrainGeometrySubset[7]; for (int i = 0; i < Subsets.Length; i++) { Subsets[i] = new TerrainGeometrySubset(); } SubsetOpaque = Subsets[4]; SubsetAlphaTest = Subsets[5]; SubsetTransparent = Subsets[6]; OpaqueSubsetsByFace = new TerrainGeometrySubset[6] { Subsets[0], Subsets[1], Subsets[2], Subsets[3], Subsets[4], Subsets[4] }; AlphaTestSubsetsByFace = new TerrainGeometrySubset[6] { Subsets[5], Subsets[5], Subsets[5], Subsets[5], Subsets[5], Subsets[5] }; TransparentSubsetsByFace = new TerrainGeometrySubset[6] { Subsets[6], Subsets[6], Subsets[6], Subsets[6], Subsets[6], Subsets[6] }; }