Example #1
0
        /// <summary>
        /// Spawns a block at the position.  (Creates a new instance)
        /// </summary>
        /// <param name="position"></param>
        /// <param name="block"></param>
        public static void SpawnBlock(Vector3Int position, BaseClasses.Block block)
        {
            if (!_chunks.ContainsKey(World.PositionToChunk(position)))
            {
                AddChunk(World.PositionToChunk(position));
            }
            if (_chunks[World.PositionToChunk(position)].GetBlockAt(position).GetType() != typeof(Air))
            {
                _chunks[World.PositionToChunk(position)].GetBlockAt(position).Destroy();
            }

            _chunks[World.PositionToChunk(position)].SetBlockAt(position, (BaseClasses.Block)Activator.CreateInstance(block.GetType()));
            _chunks[World.PositionToChunk(position)].GetBlockAt(position).Init(position);
        }
Example #2
0
        public static BaseClasses.Block[] AdjecentBlocks(Vector3Int position)
        {
            BaseClasses.Block[] blocks = new BaseClasses.Block[8];

            blocks[0] = GetBlock(position + new Vector3Int(-1, 1, 0));
            blocks[1] = GetBlock(position + new Vector3Int(0, 1, 0));
            blocks[2] = GetBlock(position + new Vector3Int(1, 1, 0));
            blocks[3] = GetBlock(position + new Vector3Int(-1, 0, 0));
            blocks[4] = GetBlock(position + new Vector3Int(1, 0, 0));
            blocks[5] = GetBlock(position + new Vector3Int(-1, -1, 0));
            blocks[6] = GetBlock(position + new Vector3Int(0, -1, 0));
            blocks[7] = GetBlock(position + new Vector3Int(1, -1, 0));

            return(blocks);
        }