Beispiel #1
0
        public static void FillWithPickedItem(BagItem bagSlot, int maxCount)
        {
            var items = bagSlot.GetBagItems(BaseBagItem.MouseOnBagIndex);

            if (items.ContainsKey(bagSlot.index))
            {
                var maxHold = ConfigItem.getMaxCount(items[bagSlot.index].id);
                if (items[bagSlot.index].id == BaseBag.PickItem.id && maxHold > 1)
                {
                    var sent = Mathf.Min(maxHold - items[bagSlot.index].count, BaseBag.PickItem.count, maxCount);
                    BaseBag.PickItem.count     -= sent;
                    items[bagSlot.index].count += sent;
                }
                else
                {
                    var temp = BaseBag.PickItem;
                    BaseBag.PickItem     = items[bagSlot.index];
                    items[bagSlot.index] = temp;
                }
            }
            else
            {
                items[bagSlot.index] = new ItemData(BaseBag.PickItem);
                var sent = Mathf.Min(maxCount, BaseBag.PickItem.count);
                items[bagSlot.index].count = sent;
                BaseBag.PickItem.count    -= sent;
            }

            bagSlot.ShowItemInfo();
            BaseBag.ShowPickItem();
        }
Beispiel #2
0
        public void CloseUI(BaseBag bag)
        {
            BaseElement element = (BaseElement)bag.UI;

            ContainerLibrary.ContainerLibrary.ItemHandlerUI.Remove((IItemHandlerUI)element);
            Main.LocalPlayer.GetModPlayer <PSPlayer>().UIPositions[bag.ID] = element.Position;
            Elements.Remove(element);
            bag.UI = null;

            Main.PlaySound(bag.CloseSound);
        }
Beispiel #3
0
        public override void ProcessTriggers(TriggersSet triggersSet)
        {
            if (PortableStorage.bagKey.JustPressed)
            {
                Item item = AccessoryItems.FirstOrDefault(x => x.modItem is BaseBag);

                if (item?.modItem is BaseBag)
                {
                    BaseBag bag = (BaseBag)item.modItem;
                    bag.HandleUI();
                }
            }
        }
        public BaseBagPanel(BaseBag bag) : base((T)bag)
        {
            UIText textLabel = new UIText(Container.DisplayName.GetTranslation())
            {
                X = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIButton buttonLootAll = new UIButton(PortableStorage.textureLootAll)
            {
                Size      = new Vector2(20),
                HoverText = Language.GetText("LegacyInterface.29")
            };

            buttonLootAll.OnClick += args => ItemUtility.LootAll(Container.Handler, Main.LocalPlayer);
            Add(buttonLootAll);

            UIButton buttonDepositAll = new UIButton(PortableStorage.textureDepositAll)
            {
                Size      = new Vector2(20),
                X         = { Pixels = 28 },
                HoverText = Language.GetText("LegacyInterface.30")
            };

            buttonDepositAll.OnClick += args => ItemUtility.DepositAll(Container.Handler, Main.LocalPlayer);
            Add(buttonDepositAll);

            buttonQuickStack = new UIButton(PortableStorage.textureQuickStack)
            {
                Size      = new Vector2(20),
                X         = { Pixels = 56 },
                HoverText = Language.GetText("LegacyInterface.31")
            };
            buttonQuickStack.OnClick += args => ItemUtility.QuickStack(Container.Handler, Main.LocalPlayer);
            Add(buttonQuickStack);

            UITextButton buttonClose = new UITextButton("X")
            {
                Size        = new Vector2(20),
                X           = { Percent = 100 },
                Padding     = Padding.Zero,
                RenderPanel = false
            };

            buttonClose.OnClick += args => PanelUI.Instance.CloseUI(Container);
            Add(buttonClose);
        }
Beispiel #5
0
 public void HandleUI(BaseBag bag)
 {
     if (bag.UI != null || PortableStorage.Instance.BagCache.Contains(bag.ID))
     {
         if (bag.UI != null)
         {
             CloseUI(bag);
         }
         else
         {
             PortableStorage.Instance.BagCache.Remove(bag.ID);
         }
     }
     else
     {
         Main.playerInventory = true;
         OpenUI(bag);
     }
 }
Beispiel #6
0
        public void OpenUI(BaseBag bag)
        {
            Type bagType = UICache.ContainsKey(bag.GetType()) ? bag.GetType() : bag.GetType().BaseType;

            bag.UI    = (IBagPanel)Activator.CreateInstance(UICache[bagType]);
            bag.UI.ID = bag.ID;

            BaseElement element = (BaseElement)bag.UI;

            element.Activate();

            if (Main.LocalPlayer.GetModPlayer <PSPlayer>().UIPositions.TryGetValue(bag.ID, out Vector2 position))
            {
                element.HAlign   = element.VAlign = 0;
                element.Position = position;
            }

            Append(element);
            ContainerLibrary.ContainerLibrary.ItemHandlerUI.Add((IItemHandlerUI)element);

            Main.PlaySound(bag.OpenSound);
        }
Beispiel #7
0
    public BaseBagPanel(BaseBag bag) : base((T)bag)
    {
        UIText textLabel = new UIText(Container.Item.Name)
        {
            X        = { Percent = 50 },
            Settings = { HorizontalAlignment = HorizontalAlignment.Center }
        };

        Add(textLabel);

        // UIButton buttonLootAll = new UIButton(PortableStorage.textureLootAll)
        // {
        //  Size = new Vector2(20),
        //  HoverText = Language.GetText("LegacyInterface.29")
        // };
        // buttonLootAll.OnClick += args => ItemUtility.LootAll(Container.Handler, Main.LocalPlayer);
        // Add(buttonLootAll);
        //
        // UIButton buttonDepositAll = new UIButton(PortableStorage.textureDepositAll)
        // {
        //  Size = new Vector2(20),
        //  X = { Pixels = 28 },
        //  HoverText = Language.GetText("LegacyInterface.30")
        // };
        // buttonDepositAll.OnClick += args => ItemUtility.DepositAll(Container.Handler, Main.LocalPlayer);
        // Add(buttonDepositAll);
        //
        // buttonQuickStack = new UIButton(PortableStorage.textureQuickStack)
        // {
        //  Size = new Vector2(20),
        //  X = { Pixels = 56 },
        //  HoverText = Language.GetText("LegacyInterface.31")
        // };
        // buttonQuickStack.OnClick += args => ItemUtility.QuickStack(Container.Handler, Main.LocalPlayer);
        // Add(buttonQuickStack);

        var localPickupOn  = Language.GetText("Mods.PortableStorage.UI.PickupToggleOn");
        var localPickupOff = Language.GetText("Mods.PortableStorage.UI.PickupToggleOff");

        Main.instance.LoadItem(ItemID.TreasureMagnet);
        UITexture buttonPickup = new UITexture(TextureAssets.Item[ItemID.TreasureMagnet])
        {
            Settings  = { ScaleMode = ScaleMode.Stretch },
            Height    = { Pixels = 20 },
            Width     = { Pixels = 20 },
            X         = { Percent = 100, Pixels = -28 },
            HoverText = bag.EnablePickup ? localPickupOff : localPickupOn
        };

        buttonPickup.OnClick += args =>
        {
            bag.EnablePickup = !bag.EnablePickup;

            buttonPickup.HoverText = bag.EnablePickup ? localPickupOff : localPickupOn;

            SoundEngine.PlaySound(SoundID.MenuTick);

            args.Handled = true;
        };
        Add(buttonPickup);

        UIText buttonClose = new UIText("X")
        {
            Height    = { Pixels = 20 },
            Width     = { Pixels = 20 },
            X         = { Percent = 100 },
            HoverText = Language.GetText("Mods.PortableStorage.UI.Close")
        };

        buttonClose.OnClick += args =>
        {
            PanelUI.Instance.CloseUI(Container);
            args.Handled = true;
        };
        buttonClose.OnMouseEnter += _ => buttonClose.Settings.TextColor = Color.Red;
        buttonClose.OnMouseLeave += _ => buttonClose.Settings.TextColor = Color.White;
        Add(buttonClose);
    }