コード例 #1
0
    private void Update()
    {
        if (World.Instance == null)
        {
            return;
        }
        this.tilePosition = new int[] { (int)transform.position.x, (int)transform.position.y, (int)transform.position.z };
        Chunk chunk = World.Instance.GetChunkFromWorldPosition(this.tilePosition);

        if (chunk != null)
        {
            this.chunkPosition = World.Instance.GetChunkFromWorldPosition(this.tilePosition).position;
            if (World.Instance.GetChunkFromWorldPosition(this.tilePosition))
            {
                if (_tilePosition[0] != tilePosition[0] || _tilePosition[01] != tilePosition[1] || _tilePosition[2] != tilePosition[2])
                {
                    _tilePosition = tilePosition;
                    byte chunkTile = World.Instance.GetChunkFromWorldPosition(this.tilePosition).GetTile(World.Instance.GetPositionInChunk(this.tilePosition));
                    this.currentTile = (World.Tiles)chunkTile;
                    this.type        = currentTile;
                }

                if (currentTile != this.type)
                { // If any values have changed, update terrain
                    UpdateTile();
                }
            }
        }
        else
        {
            currentTile = World.Tiles.Empty;
            this.type   = currentTile;
        }
    }
コード例 #2
0
 void UpdateTile()
 {
     if (World.Instance.GetChunkFromWorldPosition(this.tilePosition) != null)
     {
         this.type = currentTile;
         World.Instance.GetChunkFromWorldPosition(this.tilePosition).SetTile(World.Instance.GetPositionInChunk(this.tilePosition), (byte)this.type);
         World.Instance.GetChunkFromWorldPosition(this.tilePosition).SetNeedsUpdate();
     }
 }