/// <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); }
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); }