public static int[] GetTriangleOffsets(TerrainMeshProvider provider, bool foldLeftRight) { return(provider.GetIndices(foldLeftRight)); }
public void EnsureMesh(IHue hue, TerrainMeshProvider meshProvider) { if (this._mesh != null && this._lastMeshHue == hue && this._lastMeshProvider == meshProvider) { return; } this._lastMeshHue = hue; this._lastMeshProvider = (IMeshProvider)meshProvider; int landId = this.graphicId; int textureId = (int)Map.GetTexture(landId); Texture tex; if (textureId > 0 && textureId < 16384) { tex = hue.GetTerrainTexture(textureId); if (tex == null || tex.IsEmpty()) { tex = hue.GetTerrainIsometric(landId); if (tex == null || tex.IsEmpty()) { tex = hue.GetTerrainTexture(1); if (tex == null || tex.IsEmpty()) { return; } } } } else { tex = hue.GetTerrainIsometric(landId); if (tex == null || tex.IsEmpty()) { if (textureId > 0 && textureId < 16384) { tex = hue.GetTerrainTexture(textureId); } if (tex == null || tex.IsEmpty()) { tex = hue.GetTerrainTexture(1); if (tex == null || tex.IsEmpty()) { this._mesh = (TerrainMesh)null; return; } } } } this.m_sDraw = tex; if (tex.Width == 44 && !(this._mesh is TerrainMesh2D)) { this._mesh = (TerrainMesh) new TerrainMesh2D(); this._mesh.Load(this, tex); } else { if (tex.Width == 44 || this._mesh is TerrainMesh3D && ((TerrainMesh3D)this._mesh).Provider == meshProvider) { return; } this._mesh = (TerrainMesh) new TerrainMesh3D(meshProvider); this._mesh.Load(this, tex); } }
public static void Reset() { TerrainMeshProviders._current = (TerrainMeshProvider)null; }