public virtual void ConvertItems(bool keep) { if (c_House == null) { return; } ArrayList items = new ArrayList(); foreach (Rectangle2D rect in c_Blocks) { foreach (Item item in Map.GetItemsInBounds(rect)) { if (c_House.Region.Contains(item.Location) && item.RootParent == null && !items.Contains(item)) { items.Add(item); } } } foreach (Item item in new ArrayList(items)) { if (item is HouseSign || item is BaseMulti || item is BaseAddon || item is AddonComponent || item == c_House.Hanger || !item.Visible || item.IsLockedDown || item.IsSecure || item.Movable || c_PreviewItems.Contains(item)) { continue; } if (item is BaseDoor) { ConvertDoor((BaseDoor)item); } else if (!c_LeaveItems) { c_DecoreItemInfos.Add(new DecoreItemInfo(item.GetType().ToString(), item.Name, item.ItemID, item.Hue, item.Location, item.Map)); if (!c_KeepItems || !keep) { item.Delete(); } else { item.Movable = true; c_House.LockDown(c_House.Owner, item, false); } } } }
protected virtual void ConvertItems(bool keep) { if (c_House == null) { return; } var items = new List <Item>(); foreach ( Item item in c_Blocks.SelectMany( rect => Map.GetItemsInBounds(rect) .Where(item => c_House.Region.Contains(item.Location) && item.RootParent == null && !items.Contains(item)))) { items.Add(item); } foreach ( Item item in items.Where( item => !(item is HouseSign) && !(item is BaseMulti) && !(item is BaseAddon) && !(item is AddonComponent) && item != c_House.Hanger && item.Visible && !item.IsLockedDown && !item.IsSecure && !item.Movable && !c_PreviewItems.Contains(item))) { if (item is BaseDoor) { ConvertDoor((BaseDoor)item); } else if (!c_LeaveItems) { c_DecoreItemInfos.Add(new DecoreItemInfo(item.GetType().ToString(), item.Name, item.ItemID, item.Hue, item.Location, item.Map)); if (!c_KeepItems || !keep) { item.Delete(); } else { item.Movable = true; c_House.LockDown(c_House.Owner, item, false); } } } }
public virtual void ConvertItems(bool keep) { if (c_House == null) { return; } foreach (Item item in new ArrayList(World.Items.Values)) { if (item.Map == c_House.Map && c_House.Region.Contains(item.Location)) { if (item is HouseSign || item is BaseMulti || item is BaseAddon || item is AddonComponent || !item.Visible || item.IsLockedDown || item.IsSecure || item.Movable) { continue; } if (item is BaseDoor) { ConvertDoor((BaseDoor)item); } else if (!c_LeaveItems) { c_DecoreItemInfos.Add(new DecoreItemInfo(item.GetType().ToString(), item.Name, item.ItemID, item.Hue, item.Location, item.Map)); if (!c_KeepItems || !keep) { item.Delete(); } else { item.Movable = true; c_House.LockDown(c_House.Owner, item, false); } } } } }