extends Object class_name RoomData var rotations: int = 0 var doorPositions: Array[DoorPosition] var roomGrid: Array[Array] var roomSceneRef: String func _init(roomImage: Image = null, roomSceneReference: String = "") -> void: if !roomImage: return if roomSceneReference == "": return roomSceneRef = roomSceneReference var roomImmageLoader: RoomImageLoader = RoomImageLoader.new() roomGrid = roomImmageLoader.loadRoomData(roomImage) doorPositions = roomImmageLoader.getDoors(roomGrid) roomImmageLoader.free() func duplicateRoom() -> RoomData: var returnData: RoomData = RoomData.new() returnData.rotations = rotations for position in doorPositions: returnData.doorPositions.push_back(position.duplicate()) for x in roomGrid.size(): var array: Array returnData.roomGrid.push_back(array) for y in roomGrid[x].size(): returnData.roomGrid[x].push_back(null) returnData.roomGrid[x][y] = roomGrid[x][y].duplicate() returnData.roomGrid = roomGrid.duplicate(true) returnData.roomSceneRef = roomSceneRef return returnData