public void CreateRoom(Guid roomId, Enums.RoomTypes roomType, Enums.RoomSizes roomSize, Enums.RoomOverUnder roomOverUnder, GridIndex leftMostIndex) { RoomDefData RoomDefData = RoomFactory.Ref.GetRoomDefData(roomType, roomSize, roomOverUnder); RoomInstanceData RoomData = new RoomInstanceData(); RoomData.RoomId = roomId; RoomData.RoomName = RoomDefData.RoomName; RoomData.RoomSize = RoomDefData.RoomSize; RoomData.RoomCategory = RoomDefData.RoomCategory; RoomData.RoomType = RoomDefData.RoomType; RoomData.RoomOverUnder = RoomDefData.RoomOverUnder; RoomData.ManSlotCount = RoomDefData.ManSlotCount; RoomData.ManSlotsPositions = new Vector3[RoomDefData.ManSlotCount]; // Data will be set by object script on Start() RoomData.ManSlotsRotations = new Quaternion[RoomDefData.ManSlotCount]; // Data will be set by object script on Start() RoomData.ManSlotsAssignments = new Guid[RoomDefData.ManSlotCount]; for (int i = 0; i < RoomData.ManSlotCount; i++) { RoomData.ManSlotsAssignments[i] = Guid.Empty; } RoomData.ManWorkingStates = RoomDefData.ManWorkingStates; RoomData.CoveredIndizes = GridManager.Ref.GetOccupiedindizes(roomSize, leftMostIndex); CreateRoom(RoomData); }
public void CreateRoom(RoomInstanceData roomData) { if (roomData == null) { return; } GameObject RoomObject = RoomFactory.Ref.CreateRoom(roomData.RoomType, roomData.RoomSize, roomData.RoomOverUnder); RoomScript RoomScript = RoomObject.GetComponent <RoomScript>(); RoomScript.RoomData = roomData; _RoomList[roomData.RoomId] = new RoomRef(RoomObject, RoomScript); RoomObject.transform.position = GridManager.Ref.GetWorldPositionFromGridIndex(roomData.GetLeftMostIndex()); GridManager.Ref.RegisterAtGrid(roomData.RoomSize, roomData.RoomId, roomData.GetLeftMostIndex()); }
public void SaveRoomList(string fileName) { XmlSerializer Serializer = new XmlSerializer(typeof(RoomInstanceData[])); RoomInstanceData[] tmpOutput = new RoomInstanceData[_RoomList.Count]; // Saving as an array. Key GUID is also in the data int Count = 0; foreach (KeyValuePair <Guid, RoomRef> Entry in _RoomList) { tmpOutput[Count] = Entry.Value.RoomScript.RoomData; Count++; } using (StreamWriter Writer = new StreamWriter(fileName)) { Serializer.Serialize(Writer, tmpOutput); } }