private void RemoveRoomItem(Item Item) { if (Item.IsFloorItem) { _room.SendMessage(new ObjectRemoveComposer(Item, Item.UserID)); } else if (Item.IsWallItem) { _room.SendMessage(new ItemRemoveComposer(Item, Item.UserID)); } //TODO: Recode this specific part if (Item.IsWallItem) { _wallItems.TryRemove(Item.Id, out Item); } else { _floorItems.TryRemove(Item.Id, out Item); //mFloorItems.OnCycle(); _room.GetGameMap().RemoveFromMap(Item); } RemoveItem(Item); _room.GetGameMap().GenerateMaps(); _room.GetRoomUserManager().UpdateUserStatusses(); }
public void SendObjects(GameClient Session) { Room Room = Session.GetHabbo().CurrentRoom; Session.SendMessage(new HeightMapComposer(Room.GetGameMap().Model.Heightmap)); Session.SendMessage(new FloorHeightMapComposer(Room.GetGameMap().Model.GetRelativeHeightmap(), Room.GetGameMap().StaticModel.WallHeight)); foreach (RoomUser RoomUser in _roomUserManager.GetUserList().ToList()) { if (RoomUser == null) { continue; } Session.SendMessage(new UsersComposer(RoomUser)); if (RoomUser.IsBot && RoomUser.BotData.DanceId > 0) { Session.SendMessage(new DanceComposer(RoomUser, RoomUser.BotData.DanceId)); } else if (!RoomUser.IsBot && !RoomUser.IsPet && RoomUser.IsDancing) { Session.SendMessage(new DanceComposer(RoomUser, RoomUser.DanceId)); } if (RoomUser.IsAsleep) { Session.SendMessage(new SleepComposer(RoomUser, true)); } if (RoomUser.CarryItemID > 0 && RoomUser.CarryTimer > 0) { Session.SendMessage(new CarryObjectComposer(RoomUser.VirtualId, RoomUser.CarryItemID)); } if (!RoomUser.IsBot && !RoomUser.IsPet && RoomUser.CurrentEffect > 0) { Room.SendMessage(new AvatarEffectComposer(RoomUser.VirtualId, RoomUser.CurrentEffect)); } } Session.SendMessage(new UserUpdateComposer(_roomUserManager.GetUserList().ToList())); Session.SendMessage(new ObjectsComposer(Room.GetRoomItemHandler().GetFloor.ToArray(), this)); Session.SendMessage(new ItemsComposer(Room.GetRoomItemHandler().GetWall.ToArray(), this)); }