示例#1
0
    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;
    }
示例#2
0
    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);
        }
    }
示例#3
0
    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);
    }
示例#4
0
 public RoomData(int roomNum, BasePos basePos)
 {
     roomNumber = (short)roomNum;
     bPos       = basePos;
 }