public RoomItemHandling GetRoomItemHandler()
 {
     if (_roomItemHandling == null)
     {
         _roomItemHandling = new RoomItemHandling(this);
     }
     return(_roomItemHandling);
 }
        //private ProcessComponent _process = null;

        public Room(RoomData Data)
        {
            this.IsLagging = 0;
            this.IdleTime  = 0;

            this.BallSpeed = 150; //you can change this using a command (milliseconds)

            this._roomData = Data;
            RoomMuted      = false;
            mDisposed      = false;


            this.Id          = Data.Id;
            this.Name        = Data.Name;
            this.Description = Data.Description;
            this.OwnerName   = Data.OwnerName;
            this.OwnerId     = Data.OwnerId;

            this.WiredScoreBordDay              = Data.WiredScoreBordDay;
            this.WiredScoreBordWeek             = Data.WiredScoreBordWeek;
            this.WiredScoreBordMonth            = Data.WiredScoreBordMonth;
            this.WiredScoreFirstBordInformation = Data.WiredScoreFirstBordInformation;

            this.ForSale   = false;
            this.SalePrice = 0;
            this.Category  = Data.Category;
            this.Type      = Data.Type;
            this.Access    = Data.Access;
            this.UsersNow  = 0;
            this.UsersMax  = Data.UsersMax;
            this.ModelName = Data.ModelName;
            this.Score     = Data.Score;
            this.Tags      = new List <string>();
            foreach (string tag in Data.Tags)
            {
                Tags.Add(tag);
            }

            this.AllowPets           = Data.AllowPets;
            this.AllowPetsEating     = Data.AllowPetsEating;
            this.RoomBlockingEnabled = Data.RoomBlockingEnabled;
            this.Hidewall            = Data.Hidewall;
            this.Group = Data.Group;

            this.Password  = Data.Password;
            this.Wallpaper = Data.Wallpaper;
            this.Floor     = Data.Floor;
            this.Landscape = Data.Landscape;

            this.WallThickness  = Data.WallThickness;
            this.FloorThickness = Data.FloorThickness;

            this.chatMode     = Data.chatMode;
            this.chatSize     = Data.chatSize;
            this.chatSpeed    = Data.chatSpeed;
            this.chatDistance = Data.chatDistance;
            this.extraFlood   = Data.extraFlood;

            this.TradeSettings = Data.TradeSettings;

            this.WhoCanBan  = Data.WhoCanBan;
            this.WhoCanKick = Data.WhoCanKick;
            this.WhoCanBan  = Data.WhoCanBan;

            this.GolpeEnabled   = Data.GolpeEnabled;
            this.PushEnabled    = Data.PushEnabled;
            this.PullEnabled    = Data.PullEnabled;
            this.SPullEnabled   = Data.SPullEnabled;
            this.SPushEnabled   = Data.SPushEnabled;
            this.EnablesEnabled = Data.EnablesEnabled;
            this.RespectNotificationsEnabled = Data.RespectNotificationsEnabled;
            this.PetMorphsAllowed            = Data.PetMorphsAllowed;

            this.poolQuestion   = string.Empty;
            this.yesPoolAnswers = new List <int>();
            this.noPoolAnswers  = new List <int>();

            this.ActiveTrades = new ArrayList();
            this.Bans         = new Dictionary <int, double>();
            this.MutedUsers   = new Dictionary <int, double>();
            this.Tents        = new Dictionary <int, List <RoomUser> >();

            _gamemap = new Gamemap(this);
            if (_roomItemHandling == null)
            {
                _roomItemHandling = new RoomItemHandling(this);
            }
            _roomUserManager = new RoomUserManager(this);

            this._filterComponent = new FilterComponent(this);
            this._wiredComponent  = new WiredComponent(this);
            this._traxManager     = new RoomTraxManager(this);

            GetRoomItemHandler().LoadFurniture();
            GetGameMap().GenerateMaps();
            OnFurnisLoad();

            this.LoadPromotions();
            this.LoadRights();
            this.LoadBans();
            this.LoadFilter();
            this.InitBots();
            this.InitPets();

            Data.UsersNow = 1;
        }