Exemple #1
0
 public Room GetRoom(ushort templateID, uint roomID)
 {
     if (RoomInstancesByTemplateID.ContainsKey(templateID))
     {
         if (RoomInstancesByTemplateID[templateID].ContainsKey(roomID))
         {
             return(RoomInstancesByTemplateID[templateID][roomID]);
         }
     }
     return(null);
 }
Exemple #2
0
 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();
     }
 }
Exemple #3
0
        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);
        }