private void LinkRooms(RoomRefs higherRoom, RoomRefs lowerRoom) { foreach (Transform i in higherRoom.doorSpawnPointExits) { foreach (Transform j in i) { int doorIndex = FindTransformIndex(higherRoom.doorSpawnPointExits, i); GameObject k = Instantiate(roomLinker, lowerRoom.doorSpawnPointEntrances[doorIndex].position, lowerRoom.doorSpawnPointEntrances[doorIndex].rotation, lowerRoom.doorSpawnPointEntrances[doorIndex]); LinkDoors(j.GetComponent <DoorScript>(), k.GetComponent <DoorScript>(), higherRoom, lowerRoom); } } }
private void LinkDoors(DoorScript door1, DoorScript door2, RoomRefs room1, RoomRefs room2) { door1.InitializeDoor(door2, room1.data.iteration); door2.InitializeDoor(door1, room2.data.iteration); }
private void SpawnDoors(RoomRefs room) { // SPAWNING AX/BX int randomResult = Random.Range(0, 2); GameObject spawnedDoor1; GameObject spawnedDoor2; if (randomResult == 1) { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.AX].position, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.AX].rotation, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.AX]); } else { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.BX].position, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.BX].rotation, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.BX]); } randomResult = Random.Range(0, 2); if (randomResult == 1) { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.XB].position, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.XB].rotation, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.XB]); } else { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.YB].position, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.YB].rotation, room.doorSpawnPointExits[(int)DOOR_SPAWN_ENTRANCE.YB]); } // SPAWNING MIDDLE DOORS randomResult = Random.Range(0, 2); if (randomResult == 1) { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1]); spawnedDoor2 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2]); LinkDoors(spawnedDoor1.GetComponent <DoorScript>(), spawnedDoor2.GetComponent <DoorScript>(), room, room); } else { randomResult = Random.Range(0, 2); if (randomResult == 1) { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1]); spawnedDoor2 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2]); LinkDoors(spawnedDoor1.GetComponent <DoorScript>(), spawnedDoor2.GetComponent <DoorScript>(), room, room); } else { randomResult = Random.Range(0, 2); if (randomResult == 1) { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB1]); spawnedDoor2 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.AB2]); LinkDoors(spawnedDoor1.GetComponent <DoorScript>(), spawnedDoor2.GetComponent <DoorScript>(), room, room); } else { spawnedDoor1 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY1]); spawnedDoor2 = Instantiate(roomLinker, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2].position, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2].rotation, room.doorSpawnPointLinks[(int)DOOR_SPAWN_MIDDLE.XY2]); LinkDoors(spawnedDoor1.GetComponent <DoorScript>(), spawnedDoor2.GetComponent <DoorScript>(), room, room); } } } }