public Room(RoomData data) : base(data) { IsLagging = 0; Unloaded = false; IdleTime = 0; RoomMuted = false; MutedUsers = new Dictionary <int, double>(); Tents = new Dictionary <int, List <RoomUser> >(); _gamemap = new Gamemap(this, data.Model); _roomItemHandling = new RoomItemHandling(this); _roomUserManager = new RoomUserManager(this); _filterComponent = new FilterComponent(this); _wiredComponent = new WiredComponent(this); _bansComponent = new BansComponent(this); _tradingComponent = new TradingComponent(this); GetRoomItemHandler().LoadFurniture(); GetGameMap().GenerateMaps(); LoadPromotions(); LoadRights(); LoadFilter(); InitBots(); InitPets(); lastRegeneration = DateTime.Now; }
public void Dispose() { SendPacket(new CloseConnectionComposer()); if (!mDisposed) { isCrashed = false; mDisposed = true; /* TODO: Needs reviewing */ try { if (ProcessTask != null && ProcessTask.IsCompleted) { ProcessTask.Dispose(); } } catch { } if (ActiveTrades.Count > 0) { ActiveTrades.Clear(); } TonerData = null; MoodlightData = null; if (MutedUsers.Count > 0) { MutedUsers.Clear(); } if (Tents.Count > 0) { Tents.Clear(); } if (UsersWithRights.Count > 0) { UsersWithRights.Clear(); } if (_gameManager != null) { _gameManager.Dispose(); _gameManager = null; } if (_freeze != null) { _freeze.Dispose(); _freeze = null; } if (_soccer != null) { _soccer.Dispose(); _soccer = null; } if (_banzai != null) { _banzai.Dispose(); _banzai = null; } if (_gamemap != null) { _gamemap.Dispose(); _gamemap = null; } if (_gameItemHandler != null) { _gameItemHandler.Dispose(); _gameItemHandler = null; } // Room Data? if (teambanzai != null) { teambanzai.Dispose(); teambanzai = null; } if (teamfreeze != null) { teamfreeze.Dispose(); teamfreeze = null; } if (_roomUserManager != null) { _roomUserManager.Dispose(); _roomUserManager = null; } if (_roomItemHandling != null) { _roomItemHandling.Dispose(); _roomItemHandling = null; } if (WordFilterList.Count > 0) { WordFilterList.Clear(); } if (_filterComponent != null) { _filterComponent.Cleanup(); } if (_wiredComponent != null) { _wiredComponent.Cleanup(); } if (_bansComponent != null) { _bansComponent.Cleanup(); } if (_tradingComponent != null) { _tradingComponent.Cleanup(); } } }
public RoomItemHandling GetRoomItemHandler() { return(_roomItemHandling ?? (_roomItemHandling = new RoomItemHandling(this))); }