public void SetBaseBlock(BasePos basePos) { if (emptyRoomNum.Count <= 0) { return; } BLOCK_TYPE baseBlock = BLOCK_TYPE.STONE; GameObject blockPrefab = blockManager.blockPrefabDic[baseBlock]; int curRoomNum = emptyRoomNum[0]; RoomData curRoom = new RoomData(curRoomNum, basePos); curRoom.sparseBlockInfo = new List <BlockInfo>(); roomList.Add(curRoom); emptyRoomNum.RemoveAt(0); for (int i = 0; i < MAX_WORLD_SIZE; ++i) { for (int j = 0; j < MAX_WORLD_SIZE; ++j) { curRoom.sparseBlockInfo.Add(new BlockInfo(basePos.x + i, basePos.y + 0, basePos.z + j, baseBlock, 0.0f)); updateBlockInfo.Push(new BlockInfo(basePos.x + i, basePos.y + 0, basePos.z + j, baseBlock, 0.0f)); roomNumDic.Add(new Vector3(basePos.x + i, 0, basePos.z + j), curRoomNum); } } return; }
public void SetAddBaseObj() { while (addObjList.Count > 0) { Destroy(addObjList[0]); addObjList.RemoveAt(0); } foreach (RoomData rData in roomList) { BasePos rBase = rData.bPos; int offset = MAX_WORLD_SIZE / 2; roomBaseSet.Add(new BasePos(rBase.x - offset, rBase.y, rBase.z)); roomBaseSet.Add(new BasePos(rBase.x + 3 * offset, rBase.y, rBase.z)); roomBaseSet.Add(new BasePos(rBase.x + offset, rBase.y, rBase.z - 2 * offset)); roomBaseSet.Add(new BasePos(rBase.x + offset, rBase.y, rBase.z + 2 * offset)); } foreach (RoomData rData in roomList) { BasePos rBase = rData.bPos; rBase.x += MAX_WORLD_SIZE / 2; roomBaseSet.RemoveWhere((cPos) => { return(cPos.Equals(rBase)); }); } foreach (BasePos bPos in roomBaseSet) { GameObject obj = Instantiate(AddRoomObj) as GameObject; addObjList.Add(obj); obj.transform.position = new Vector3(bPos.x - 0.5f, bPos.y + 0.5f, bPos.z + 7.5f); } }
private bool IsEqual(BasePos comparePos, int x, int y, int z) { if (comparePos.x != x) { return(false); } if (comparePos.y != y) { return(false); } if (comparePos.z != z) { return(false); } return(true); }
public RoomData(int roomNum, BasePos basePos) { roomNumber = (short)roomNum; bPos = basePos; }