Beispiel #1
0
 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();
 }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
    /// <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;
                }
            }
        }