Exemplo n.º 1
0
        public void AddItem(GameClient session, RoomItem item, bool newItem)
        {
            if (item.IsFloorItem)
            {
                if (!this.FloorItems.Add(item.ID, item.GetType(), item))
                {
                    session.SendNotif("Something weird happend... Placement failed");
                    return;
                }
            }
            else if (item.IsWallItem)
            {
                if (!this.WallItems.Add(item.ID, item.GetType(), item))
                {
                    session.SendNotif("Something weird happend... Placement failed");
                    return;
                }
            }

            this.Room.RoomGameManager.AddItem(item);

            if (newItem)
            {
                this.AddedAndMovedRoomItems.AddOrUpdate(item.ID, item, (key, oldValue) => item);
                this.RoomItemStateUpdated.TryRemove(item.ID);

                item.OnPlace(session);
                this.CheckItemBasedAchievements(item);
            }
            else
            {
                item.OnLoad();
            }

            if (item is RoomItemJukebox)
            {
                if (this.Jukebox == null)
                {
                    this.Jukebox = (RoomItemJukebox)item;
                }
            }
        }