示例#1
0
    private void connectDoor(RoomDataHolder srcRoomData, TileData srcTileData, RoomDataHolder neighbourRoomData, TileData neighbourTileData, DoorData door)
    {
        Orientation srcDoorOrientation       = CommonOperations.getTransformedOrientation(door.wallDirection, srcRoomData.getOrientation());
        Orientation targetOrientation        = CommonOperations.getInvertedOrientation(srcDoorOrientation);
        Orientation neighbourRoomOrientation = neighbourRoomData.getOrientation();

        Orientation targetDoorOrientation = targetOrientation;

        if (neighbourRoomOrientation == Orientation.EAST)
        {
            targetDoorOrientation = CommonOperations.getTransformedOrientation(targetOrientation, Orientation.WEST);
        }
        else if (neighbourRoomOrientation == Orientation.SOUTH)
        {
            targetDoorOrientation = CommonOperations.getTransformedOrientation(targetOrientation, Orientation.SOUTH);
        }
        else if (neighbourRoomOrientation == Orientation.WEST)
        {
            targetDoorOrientation = CommonOperations.getTransformedOrientation(targetOrientation, Orientation.EAST);
        }

        foreach (DoorData doorData in neighbourTileData.doors)
        {
            if (doorData.wallDirection == targetDoorOrientation)
            {
                door.setDoorObject(doorData.getDoorObject());
            }
        }
    }
示例#2
0
    private void placeDoor(RoomDataHolder roomData, TileData tile, DoorData door, Orientation orientation, Coordinate coordinate)
    {
        GameObject doorObject = roomData.getRandomSpawnableDoor();
        GameObject builtDoor  = Instantiate(doorObject);

        Transform doorTransform = builtDoor.transform;

        if (doorTransform != null)
        {
            doorTransform.parent = this.gameObject.transform;

            Vector3 pos = getRealDoorPosition(coordinate, orientation);
            Vector3 rot = getRealDoorRotation(orientation);

            doorTransform.position    = pos;
            doorTransform.eulerAngles = rot;
        }
        door.setDoorObject(builtDoor);
    }