private static bool OnMapGenerateSuccess(uint terrain, uint width, Vector4 location) { Debug.LogFormat("OnMapGenerateSuccess {0} {1},exist {2}", terrain, location, UnityCppBindings.GetTerrain(terrain) != null); var terr = UnityCppBindings.GetTerrain(terrain); if (null != terr) { return(false); } else { terr = new TerrainPiece(terrain, (int)width); return(terr.TerrainInitilizer(width, location)); } }
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(); }