private void ConvertDataToRoom(RoomData roomData) { ObjectMover.hasPlaced = false; GameObject room = roomPrefabs.Where(roomPrefab => roomPrefab.GetComponent <ObjectScript>().objectNum == roomData.objectNum).Select(roomPrefab => Instantiate(roomPrefab, new Vector3(roomData.x, roomData.y, 0), Quaternion.identity)).FirstOrDefault(); ObjectMover om = room.GetComponent <ObjectMover>(); ObjectScript os = room.GetComponent <ObjectScript>(); RoomStats roomStats = room.GetComponent <RoomStats>(); os.ResetData(); om.TurnOffBeingDragged(); os.preplacedRoom = roomData.isPrePlaced; roomStats.usedRoom = roomData.usedRoom; roomStats.ChangeRoomLevel(roomData.roomLevel); // starts at 1 so only change if greater than 1 roomStats.currentCrew = roomData.crew; if (!roomStats.flatOutput) { StartCoroutine(UpdateRoomStat(roomStats, roomData)); } room.transform.GetChild(0).transform.Rotate(0, 0, -90 * (roomData.rotation - 1)); if ((os.shapeType != 0 || os.shapeType != 1 || os.shapeType != 3) && (os.rotAdjust == 1 || os.rotAdjust == 3) && (roomData.rotation == 2 || roomData.rotation == 4)) { room.transform.GetChild(0).transform.position += os.rotAdjustVal; } else if ((os.shapeType != 0 || os.shapeType != 1 || os.shapeType != 3) && (os.rotAdjust == 2 || os.rotAdjust == 4) && (roomData.rotation == 1 || roomData.rotation == 3)) { room.transform.GetChild(0).transform.position -= os.rotAdjustVal; } os.rotAdjust = roomData.rotation; om.UpdateMouseBounds(os.boundsDown, os.boundsUp, os.boundsLeft, os.boundsRight); ObjectMover.hasPlaced = true; om.enabled = false; room.transform.GetChild(0).gameObject.GetComponent <SpriteRenderer>().color = new Color(1, 1, 1, 1); StartCoroutine(UpdateSpotChecker(room, roomData.isPrePlaced, roomData.rotation)); }