public Room GetRoom(ushort templateID, uint roomID) { if (RoomInstancesByTemplateID.ContainsKey(templateID)) { if (RoomInstancesByTemplateID[templateID].ContainsKey(roomID)) { return(RoomInstancesByTemplateID[templateID][roomID]); } } return(null); }
public void DeleteRoom(uint roomID) { if (RoomInstances.TryGetValue(roomID, out var room)) { if (RoomInstancesByTemplateID.TryGetValue(room.roomTemplate.templateID, out var tempDict)) { tempDict.Remove(roomID); } RoomInstances.Remove(roomID); room.Close(); } }
private Room CreateRoom(RoomTemplate template, uint id) { var room = template.CreateRoom(id); if (!RoomInstancesByTemplateID.ContainsKey(template.templateID)) { RoomInstancesByTemplateID.Add(template.templateID, new Dictionary <uint, Room>()); } if (RoomInstancesByTemplateID[template.templateID].ContainsKey(room.instanceID)) { room.Close(); Debug.LogError("Duplicate instance ID"); return(null); } RoomInstancesByTemplateID[template.templateID][room.instanceID] = room; RoomInstances[room.instanceID] = room; return(room); }