private void SetNeighbors(TerrainNeighbor ignoreNeighbor = TerrainNeighbor.neighborTotal) { for (TerrainNeighbor n = TerrainNeighbor.neighborPositionLeft; n <= TerrainNeighbor.neighborPositionTop; n++) { uint terr = WorldMapBindings_GetNeighbor(instaneId, (int)n); var t = UnityCppBindings.GetTerrain(terr); SetNeighbor(t, n); //prevent dead loop if (null != t && n != ignoreNeighbor) { t.SetNeighbors((TerrainNeighbor)((int)(n + 2) % (int)TerrainNeighbor.neighborTotal)); } } terrain.SetNeighbors(GetNeighbor(TerrainNeighbor.neighborPositionLeft), GetNeighbor(TerrainNeighbor.neighborPositionTop), GetNeighbor(TerrainNeighbor.neighborPositionRight), GetNeighbor(TerrainNeighbor.neighborPositionBottom)); terrain.Flush(); }
internal void SetNeighbor(TerrainPiece neighbor, TerrainNeighbor position) { switch (position) { case TerrainNeighbor.neighborPositionLeft: _neighborLeft = neighbor; break; case TerrainNeighbor.neighborPositionRight: _neighborRight = neighbor; break; case TerrainNeighbor.neighborPositionBottom: _neighborBottom = neighbor; break; case TerrainNeighbor.neighborPositionTop: _neighborTop = neighbor; break; } }
private UnityEngine.Terrain GetNeighbor(TerrainNeighbor neighbor) { switch (neighbor) { case TerrainNeighbor.neighborPositionLeft: if (null != _neighborLeft) { return(_neighborLeft.terrain); } break; case TerrainNeighbor.neighborPositionRight: if (null != _neighborRight) { return(_neighborRight.terrain); } break; case TerrainNeighbor.neighborPositionBottom: if (null != _neighborBottom) { return(_neighborBottom.terrain); } break; case TerrainNeighbor.neighborPositionTop: if (null != _neighborTop) { return(_neighborTop.terrain); } break; default: break; } return(null); }
/// <summary> /// Sets the neighbors. /// </summary> /// <param name="chunk">Chunk.</param> /// <param name="direction">Direction.</param> public void SetNeighbors(XTerrainChunk chunk, TerrainNeighbor direction) { if (chunk != null) { switch (direction) { case TerrainNeighbor.XUp: Neighborhood.XUp = chunk; break; case TerrainNeighbor.XDown: Neighborhood.XDown = chunk; break; case TerrainNeighbor.ZUp: Neighborhood.ZUp = chunk; break; case TerrainNeighbor.ZDown: Neighborhood.ZDown = chunk; break; } } }
public void SetNeighbors(TerrainChunk chunk, TerrainNeighbor direction) { if (chunk != null) { switch (direction) { case TerrainNeighbor.XUp: Neighborhood.XUp = chunk; break; case TerrainNeighbor.XDown: Neighborhood.XDown = chunk; break; case TerrainNeighbor.ZUp: Neighborhood.ZUp = chunk; break; case TerrainNeighbor.ZDown: Neighborhood.ZDown = chunk; break; } } }