internal bool RemoveFromMap(RoomItem item) { if (room.GotWired() && WiredUtillity.TypeIsWired(item.GetBaseItem().InteractionType)) { room.GetWiredHandler().RemoveFurniture(item); } return(RemoveFromMap(item, true)); }
internal List <RoomItem> RemoveAllFurniture(GameClient Session) { List <RoomItem> ReturnList = new List <RoomItem>(); foreach (RoomItem Item in mFloorItems.Values.ToArray()) { Item.Interactor.OnRemove(Session, Item); ServerMessage Message = new ServerMessage(Outgoing.ObjectRemove); Message.AppendString(Item.Id + String.Empty); Message.AppendInt32(0); Message.AppendInt32(room.OwnerId); room.SendMessage(Message); //mFloorItems.Remove(Item.Id); ReturnList.Add(Item); } foreach (RoomItem Item in mWallItems.Values.ToArray()) { Item.Interactor.OnRemove(Session, Item); ServerMessage Message = new ServerMessage(Outgoing.PickUpWallItem); Message.AppendString(Item.Id + String.Empty); Message.AppendInt32(room.OwnerId); room.SendMessage(Message); //mWallItems.Remove(Item.Id); ReturnList.Add(Item); } mWallItems.Clear(); mFloorItems.Clear(); mRemovedItems.Clear(); mMovedItems.Clear(); mAddedItems.Clear(); mRollers.QueueDelegate(new onCycleDoneDelegate(ClearRollers)); using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM items_rooms WHERE room_id = " + room.RoomId); } room.GetGameMap().GenerateMaps(); room.GetRoomUserManager().UpdateUserStatuses(); if (room.GotWired()) { room.GetWiredHandler().OnPickall(); } return(ReturnList); }