Пример #1
0
    public AmmoBagPanel(BaseAmmoBag bag) : base(bag)
    {
        Width.Pixels  = 12 + (SlotSize + SlotMargin) * 9;
        Height.Pixels = 40 + (SlotSize + SlotMargin) * Container.GetItemStorage().Count / 9;

        UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
        {
            Width    = { Percent = 100 },
            Height   = { Pixels = -28, Percent = 100 },
            Y        = { Pixels = 28 },
            Settings = { ItemMargin = SlotMargin }
        };

        Add(gridItems);

        for (int i = 0; i < Container.GetItemStorage().Count; i++)
        {
            UIContainerSlot slot = new UIContainerSlot(Container.GetItemStorage(), i)
            {
                Width  = { Pixels = SlotSize },
                Height = { Pixels = SlotSize }
            };
            gridItems.Add(slot);
        }
    }
Пример #2
0
        public override void OnInitialize()
        {
            panelMain.Width.Pixels  = 232;
            panelMain.Height.Pixels = 132;
            panelMain.Center();
            panelMain.Top.Pixels -= panelMain.Height.Pixels / 3f * 2f;
            panelMain.SetPadding(0);
            panelMain.OnMouseDown    += DragStart;
            panelMain.OnMouseUp      += DragEnd;
            panelMain.BackgroundColor = panelColor;
            Append(panelMain);

            textLabel.HAlign     = 0.5f;
            textLabel.Top.Pixels = 8;
            panelMain.Append(textLabel);

            display              = new UIContainerSlot(barrel);
            display.HAlign       = 0.5f;
            display.Top.Pixels   = 36;
            display.CanInteract += (item, mouseItem) => false;
            panelMain.Append(display);

            items.Width.Set(-16, 1);
            items.Height.Pixels  = 40;
            items.Left.Pixels    = 8;
            items.Top.Pixels     = 84;
            items.ListPadding    = 4;
            items.OverflowHidden = true;
            panelMain.Append(items);
        }
        public NinjaArsenalBeltPanel(NinjaArsenalBelt bag) : base(bag)
        {
            Width.Pixels  = 12 + (SlotSize + SlotMargin) * 9;
            Height.Pixels = 40 + (SlotSize + SlotMargin) * Container.Handler.Slots / 9;


            UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width      = { Percent = 100 },
                Height     = { Pixels = -28, Percent = 100 },
                Y          = { Pixels = 28 },
                ItemMargin = SlotMargin
            };

            Add(gridItems);

            for (int i = 0; i < Container.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i)
                {
                    Width = { Pixels = SlotSize }, Height = { Pixels = SlotSize }
                };
                gridItems.Add(slot);
            }
        }
Пример #4
0
        public GlacialConcentratorPanel(GlacialConcentrator container) : base(container)
        {
            Width.Pixels    = 272;
            Height.Pixels   = 316 + 54;
            BackgroundColor = new Color(38, 49, 90);

            UIText textLabel = new UIText(Language.GetText("Mods.Gelum.MapObject.GlacialConcentrator"))
            {
                X = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIEnergyStore energy = new UIEnergyStore(container)
            {
                Width  = { Pixels = 256 },
                Height = { Pixels = 256 },
                X      = { Percent = 50 },
                Y      = { Pixels = 28 }
            };

            Add(energy);

            UIContainerSlot slot = new UIContainerSlot(() => Handler)
            {
                X      = { Percent = 50 },
                Y      = { Percent = 100 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };

            Add(slot);
        }
Пример #5
0
        public override void OnInitialize()
        {
            Width  = (0, 0.22f);
            Height = (0, 0.17f);
            this.Center();
            SetPadding(8);

            UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width  = (0, 1),
                Height = (0, 1)
            };

            //Append(gridItems);

            for (int i = 0; i < Container.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i);
                gridItems.Add(slot);
            }

            UIEnergyBar bar = new UIEnergyBar(Container)
            {
                HAlign = 1,
                Height = (0, 1),
                Width  = (40, 0)
            };

            Append(bar);
        }
    public AlchemistBagPanel(AlchemistBag bag) : base(bag)
    {
        Width.Pixels  = 12 + (SlotSize + SlotMargin) * 9;
        Height.Pixels = 100 + (SlotSize + SlotMargin) * Container.GetItemStorage().Count / 9;

        UIText textPotions = new UIText("Potions")
        {
            Y = { Pixels = 28 }
        };

        Add(textPotions);

        UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
        {
            Width    = { Percent = 100 },
            Height   = { Pixels = SlotSize * 2 + SlotMargin },
            Y        = { Pixels = 56 },
            Settings = { ItemMargin = SlotMargin }
        };

        Add(gridItems);

        for (int i = 0; i < AlchemistBag.PotionSlots; i++)
        {
            UIContainerSlot slot = new UIContainerSlot(Container.GetItemStorage(), i)
            {
                Width  = { Pixels = SlotSize },
                Height = { Pixels = SlotSize }
            };
            gridItems.Add(slot);
        }

        UIText textIngredients = new UIText("Ingredients")
        {
            Y = { Pixels = 56 + 8 + SlotSize * 2 + SlotMargin }
        };

        Add(textIngredients);

        UIGrid <UIContainerSlot> gridIngredients = new UIGrid <UIContainerSlot>(9)
        {
            Width    = { Percent = 100 },
            Height   = { Pixels = (SlotSize + SlotMargin) * 7 - SlotMargin },
            Y        = { Pixels = 56 + 8 + 20 + 8 + SlotSize * 2 + SlotMargin },
            Settings = { ItemMargin = SlotMargin }
        };

        Add(gridIngredients);

        for (int i = AlchemistBag.PotionSlots; i < AlchemistBag.PotionSlots + AlchemistBag.IngredientSlots; i++)
        {
            UIContainerSlot slot = new UIContainerSlot(Container.GetItemStorage(), i)
            {
                Width  = { Pixels = SlotSize },
                Height = { Pixels = SlotSize }
            };
            gridIngredients.Add(slot);
        }
    }
Пример #7
0
 public void Load(PortableDSU dsu)
 {
     slot            = new UIContainerSlot(dsu);
     slot.maxStack   = int.MaxValue;
     slot.HAlign     = 0.5f;
     slot.Top.Pixels = 36;
     panelMain.Append(slot);
 }
Пример #8
0
 public override void Load()
 {
     for (int i = 0; i < qeChest.GetItems().Count; i++)
     {
         UIContainerSlot slot = new UIContainerSlot(qeChest, i);
         gridItems.Add(slot);
     }
 }
        public override void OnInitialize()
        {
            Width  = (408, 0);
            Height = (40 + Container.Handler.Slots / 9 * 44, 0);
            this.Center();

            textLabel = new UIText(Container.DisplayName.GetTranslation())
            {
                HAlign = 0.5f
            };
            Append(textLabel);

            UIButton buttonLootAll = new UIButton(PortableStorage.textureLootAll)
            {
                Size = new Vector2(20)
            };

            buttonLootAll.OnClick      += (evt, element) => ItemUtility.LootAll(Container.Handler, Main.LocalPlayer);
            buttonLootAll.GetHoverText += () => Language.GetText("LegacyInterface.29").ToString();
            Append(buttonLootAll);

            UIButton buttonDepositAll = new UIButton(PortableStorage.textureDepositAll)
            {
                Size = new Vector2(20),
                Left = (28, 0)
            };

            buttonDepositAll.OnClick      += (evt, element) => ItemUtility.DepositAll(Container.Handler, Main.LocalPlayer);
            buttonDepositAll.GetHoverText += () => Language.GetText("LegacyInterface.30").ToString();
            Append(buttonDepositAll);

            buttonClose = new UITextButton("X")
            {
                Size        = new Vector2(20),
                Left        = (-20, 1),
                RenderPanel = false
            };
            buttonClose.OnClick += (evt, element) => BaseLibrary.BaseLibrary.PanelGUI.UI.CloseUI(Container);
            Append(buttonClose);

            gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width          = (0, 1),
                Height         = (-28, 1),
                Top            = (28, 0),
                OverflowHidden = true,
                ListPadding    = 4f
            };
            Append(gridItems);

            for (int i = 0; i < Container.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i);
                gridItems.Add(slot);
            }
        }
    }
}
Пример #10
0
        public AlchemistBagPanel(AlchemistBag bag) : base(bag)
        {
            Width.Pixels  = 12 + (SlotSize + SlotMargin) * 9;
            Height.Pixels = 100 + (SlotSize + SlotMargin) * Container.Handler.Slots / 9;

            UIText textPotions = new UIText("Potions")
            {
                Y = { Pixels = 28 }
            };

            Add(textPotions);

            UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width      = { Percent = 100 },
                Height     = { Pixels = SlotSize * 2 + SlotMargin },
                Y          = { Pixels = 56 },
                ItemMargin = SlotMargin
            };

            Add(gridItems);

            for (int i = 0; i < 18; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i)
                {
                    Width = { Pixels = SlotSize }, Height = { Pixels = SlotSize }
                };
                gridItems.Add(slot);
            }

            UIText textIngredients = new UIText("Ingredients")
            {
                Y = { Pixels = 56 + 8 + SlotSize * 2 + SlotMargin }
            };

            Add(textIngredients);

            UIGrid <UIContainerSlot> gridIngredients = new UIGrid <UIContainerSlot>(9)
            {
                Width      = { Percent = 100 },
                Height     = { Pixels = (SlotSize + SlotMargin) * 7 - SlotMargin },
                Y          = { Pixels = 56 + 8 + 20 + 8 + SlotSize * 2 + SlotMargin },
                ItemMargin = SlotMargin
            };

            Add(gridIngredients);

            for (int i = 18; i < 81; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i)
                {
                    Width = { Pixels = SlotSize }, Height = { Pixels = SlotSize }
                };
                gridIngredients.Add(slot);
            }
        }
Пример #11
0
 public override void Load()
 {
     for (int i = 1; i < barrel.Items.Count; i++)
     {
         UIContainerSlot slot = new UIContainerSlot(barrel, i);
         slot.CanInteract += (item, mouseItem) => (mouseItem.IsAir || mouseItem.modItem is BaseUpgrade) && (!(item.modItem is StackUpgrade) || barrel.Items[0].stack <= barrel.maxStoredItems - ((StackUpgrade)item.modItem).stackInc * TEBarrel.BaseMax);
         items.Add(slot);
     }
 }
Пример #12
0
        public void Load(VacuumBag bag)
        {
            guid = bag.guid;

            for (int i = 0; i < bag.GetItems().Count; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(bag, i);
                gridItems.Add(slot);
            }
        }
Пример #13
0
        public override void Load()
        {
            UIContainerSlot slotFuel = new UIContainerSlot(coalPlant);

            slotFuel.Left.Pixels = 8;
            slotFuel.Top.Pixels  = 64;
            panelInfo.Append(slotFuel);

            barEnergy.energy = coalPlant.energy;
        }
Пример #14
0
        public void Load(Bag bag)
        {
            this.bag = bag;

            for (int i = 0; i < bag.GetItems().Count; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(bag, i);
                gridItems.Add(slot);
            }
        }
Пример #15
0
        public void Load(QEBag bag)
        {
            guid = bag.guid;

            for (int i = 0; i < PortableStorage.Instance.GetModWorld <PSWorld>().enderItems[bag.frequency].Count; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(bag, i);
                gridItems.Add(slot);
            }
        }
Пример #16
0
        public void Load(QEBag bag)
        {
            this.bag = bag;

            for (int i = 0; i < PortableStorage.Instance.GetModWorld <PSWorld>().GetItemStorage(bag.frequency).Count; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(bag, i);
                slot.OnInteract += Net.SyncQE;
                gridItems.Add(slot);
            }
        }
Пример #17
0
        public void Load(AmmoBelt belt)
        {
            guid = belt.guid;

            for (int i = 0; i < belt.GetItems().Count; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(belt, i);
                slot.CanInteract += (item, mouse) => mouse.IsAir || mouse.ammo > 0;
                gridItems.Add(slot);
            }
        }
        public override void OnInitialize()
        {
            Size = new Vector2(408, 172);
            this.Center();

            UIAnimatedTexture textureActivation = new UIAnimatedTexture(ModContent.GetTexture("PortableStorage/Textures/Items/TheBlackHole"), new DrawAnimationVertical(8, 8), ScaleMode.Stretch)
            {
                Size    = new Vector2(20),
                Animate = Bag.active
            };

            textureActivation.GetHoverText += () => Bag.active ? "Deactivate" : "Activate";
            textureActivation.OnClick      += (evt, element) =>
            {
                Bag.active = !Bag.active;
                textureActivation.Animate = Bag.active;

                Bag.Handler.OnContentsChanged?.Invoke(-1);
            };
            Append(textureActivation);

            textLabel = new UIText(Bag.DisplayName.GetTranslation())
            {
                HAlign = 0.5f
            };
            Append(textLabel);

            buttonClose = new UITextButton("X")
            {
                Size        = new Vector2(20),
                Left        = (-20, 1),
                RenderPanel = false
            };
            buttonClose.OnClick += (evt, element) => PortableStorage.Instance.PanelUI.UI.CloseUI(Bag);
            Append(buttonClose);

            gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width          = (0, 1),
                Height         = (-28, 1),
                Top            = (28, 0),
                OverflowHidden = true,
                ListPadding    = 4f
            };
            Append(gridItems);

            for (int i = 0; i < Bag.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Bag.Handler, i);
                gridItems.Add(slot);
            }
        }
    }
}
Пример #19
0
        public override void OnInitialize()
        {
            panelMain.Width.Pixels  = 84;
            panelMain.Height.Pixels = 64;
            panelMain.Center();
            panelMain.BackgroundColor = panelColor;
            panelMain.SetPadding(0);
            panelMain.OnMouseDown += DragStart;
            panelMain.OnMouseUp   += DragEnd;
            base.Append(panelMain);

            slot             = new UIContainerSlot(spawner);
            slot.Left.Pixels = 8;
            slot.Top.Pixels  = 8;
            panelMain.Append(slot);
        }
Пример #20
0
        public override void OnInitialize()
        {
            panelMain.Width.Pixels  = Main.screenWidth / 7f;
            panelMain.Height.Pixels = 84;
            panelMain.Center();
            panelMain.SetPadding(0);
            panelMain.OnMouseDown += DragStart;
            panelMain.OnMouseUp   += DragEnd;
            Append(panelMain);

            textLabel.HAlign     = 0.5f;
            textLabel.Top.Pixels = 8;
            panelMain.Append(textLabel);

            slot            = new UIContainerSlot(dsu);
            slot.maxStack   = int.MaxValue;
            slot.HAlign     = 0.5f;
            slot.Top.Pixels = 36;
            panelMain.Append(slot);
        }
Пример #21
0
        public override void OnInitialize()
        {
            Width  = (408, 0);
            Height = (40 + Bag.Handler.Slots / 9 * 44, 0);
            this.Center();

            textLabel = new UIText(Bag.DisplayName.GetTranslation())
            {
                HAlign = 0.5f
            };
            Append(textLabel);

            buttonClose = new UITextButton("X")
            {
                Size        = new Vector2(20),
                Left        = (-20, 1),
                RenderPanel = false
            };
            buttonClose.OnClick += (evt, element) => PortableStorage.Instance.PanelUI.UI.CloseUI(Bag);
            Append(buttonClose);

            gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width          = (0, 1),
                Height         = (-28, 1),
                Top            = (28, 0),
                OverflowHidden = true,
                ListPadding    = 4f
            };
            Append(gridItems);

            for (int i = 0; i < Bag.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Bag.Handler, i);
                gridItems.Add(slot);
            }
        }
    }
}
Пример #22
0
        public AutoExtractinatorPanel(AutoExtractinator container) : base(container)
        {
            Width.Pixels    = 272;
            Height.Pixels   = 348;
            BackgroundColor = new Color(38, 49, 90);

            UIText textLabel = new UIText(Language.GetText("Mods.Gelum.MapObject.AutoExtractinator"))
            {
                X = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIEnergyStore energy = new UIEnergyStore(container)
            {
                Width  = { Pixels = 64 },
                Height = { Pixels = 64 },
                X      = { Percent = 50 },
                Y      = { Pixels = 28 }
            };

            Add(energy);

            UIContainerSlot slot = new UIContainerSlot(() => Handler)
            {
                X      = { Percent = 50 },
                Y      = { Percent = 100 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };

            Add(slot);

            slot = new UIContainerSlot(() => Handler, 1)
            {
                X      = { Pixels = 0 },
                Y      = { Percent = 50 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            UIGrid <UIContainerSlot> grid = new UIGrid <UIContainerSlot>(3)
            {
                Width  = { Pixels = 54 * 3 + 8 },
                Height = { Pixels = 54 * 3 + 8 },
                X      = { Percent = 100 },
                Y      = { Pixels = 100 }
            };

            Add(grid);

            for (int i = 2; i < 11; i++)
            {
                slot = new UIContainerSlot(() => Handler, i)
                {
                    Width  = { Pixels = 54 },
                    Height = { Pixels = 54 }
                };
                grid.Add(slot);
            }
        }
Пример #23
0
        public WalletPanel(Wallet wallet) : base(wallet)
        {
            Width.Pixels  = 12 + (SlotSize + SlotMargin) * 4;
            Height.Pixels = 44 + SlotSize;

            Clear();

            UIText textLabel = new UIText(Container.DisplayName.GetDefault())
            {
                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);

            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);

            UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(4)
            {
                Width      = { Percent = 100 },
                Height     = { Pixels = -28, Percent = 100 },
                Y          = { Pixels = 28 },
                ItemMargin = SlotMargin
            };

            Add(gridItems);

            for (int i = 0; i < Container.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i)
                {
                    ShortStackSize = true,
                    Width          = { Pixels = SlotSize },
                    Height         = { Pixels = SlotSize }
                };
                gridItems.Add(slot);
            }
        }
Пример #24
0
        public MiningLaserPanel(MiningLaser container) : base(container)
        {
            Width.Pixels    = 400;
            Height.Pixels   = 232;
            BackgroundColor = new Color(38, 49, 90);

            UIText textLabel = new UIText(Language.GetText("Mods.Gelum.MapObject.MiningLaser"))
            {
                X = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIEnergyStore energy = new UIEnergyStore(container)
            {
                Width  = { Pixels = 64 },
                Height = { Pixels = 64 },
                X      = { Percent = 50 },
                Y      = { Pixels = 28 }
            };

            Add(energy);

            UIContainerSlot slot = new UIContainerSlot(() => Handler)
            {
                X      = { Percent = 50 },
                Y      = { Percent = 100 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };

            Add(slot);

            #region Radius
            UIText textRadius = new UIText("Radius: " + container.radius)
            {
                X = { Percent = 50 },
                Y = { Pixels = 105 },
                HorizontalAlignment = HorizontalAlignment.Center
            };
            Add(textRadius);

            UITextButton buttonDecRadius = new UITextButton("--")
            {
                Y       = { Pixels = 100 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonDecRadius.OnClick += _ =>
            {
                if (container.radius > 10)
                {
                    container.radius     -= 10;
                    container.CurrentTile = Point16.NegativeOne;
                }

                textRadius.Text = "Radius: " + container.radius;
            };
            Add(buttonDecRadius);

            buttonDecRadius = new UITextButton("-")
            {
                X       = { Pixels = 48 },
                Y       = { Pixels = 100 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonDecRadius.OnClick += _ =>
            {
                if (container.radius > 1)
                {
                    container.radius--;
                    container.CurrentTile = Point16.NegativeOne;
                }

                textRadius.Text = "Radius: " + container.radius;
            };
            Add(buttonDecRadius);

            UITextButton buttonIncRadius = new UITextButton("+")
            {
                X       = { Percent = 100, Pixels = -48 },
                Y       = { Pixels = 100 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonIncRadius.OnClick += _ =>
            {
                container.radius++;
                container.CurrentTile = Point16.NegativeOne;
                textRadius.Text       = "Radius: " + container.radius;
            };
            Add(buttonIncRadius);

            buttonIncRadius = new UITextButton("++")
            {
                X       = { Percent = 100 },
                Y       = { Pixels = 100 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonIncRadius.OnClick += _ =>
            {
                container.radius     += 10;
                container.CurrentTile = Point16.NegativeOne;
                textRadius.Text       = "Radius: " + container.radius;
            };
            Add(buttonIncRadius);
            #endregion

            #region Depth
            UIText textDepth = new UIText("Depth: " + container.height)
            {
                X = { Percent = 50 },
                Y = { Pixels = 128 },
                HorizontalAlignment = HorizontalAlignment.Center
            };
            Add(textDepth);

            UITextButton buttonDecDepth = new UITextButton("---")
            {
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonDecDepth.OnClick += _ =>
            {
                if (container.height > 100)
                {
                    container.height     -= 100;
                    container.CurrentTile = Point16.NegativeOne;
                }

                textDepth.Text = "Depth: " + container.height;
            };
            Add(buttonDecDepth);

            buttonDecDepth = new UITextButton("--")
            {
                X       = { Pixels = 48 },
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonDecDepth.OnClick += _ =>
            {
                if (container.height > 10)
                {
                    container.height     -= 10;
                    container.CurrentTile = Point16.NegativeOne;
                }

                textDepth.Text = "Depth: " + container.height;
            };
            Add(buttonDecDepth);

            buttonDecDepth = new UITextButton("-")
            {
                X       = { Pixels = 96 },
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonDecDepth.OnClick += _ =>
            {
                if (container.height > 1)
                {
                    container.height--;
                    container.CurrentTile = Point16.NegativeOne;
                }

                textDepth.Text = "Depth: " + container.height;
            };
            Add(buttonDecDepth);

            UITextButton buttonIncDepth = new UITextButton("+")
            {
                X       = { Percent = 100, Pixels = -96 },
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonIncDepth.OnClick += _ =>
            {
                container.height++;
                container.CurrentTile = Point16.NegativeOne;
                textDepth.Text        = "Depth: " + container.height;
            };
            Add(buttonIncDepth);

            buttonIncDepth = new UITextButton("++")
            {
                X       = { Percent = 100, Pixels = -48 },
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonIncDepth.OnClick += _ =>
            {
                container.height     += 10;
                container.CurrentTile = Point16.NegativeOne;
                textDepth.Text        = "Depth: " + container.height;
            };
            Add(buttonIncDepth);

            buttonIncDepth = new UITextButton("+++")
            {
                X       = { Percent = 100 },
                Y       = { Pixels = 128 },
                Width   = { Pixels = 40 },
                Height  = { Pixels = 20 },
                Padding = Padding.Zero
            };
            buttonIncDepth.OnClick += _ =>
            {
                container.height     += 100;
                container.CurrentTile = Point16.NegativeOne;
                textDepth.Text        = "Depth: " + container.height;
            };
            Add(buttonIncDepth);
            #endregion
        }
Пример #25
0
        private void SetupMainPanel()
        {
            panelMain = new BaseElement
            {
                Width  = { Percent = 100 },
                Height = { Pixels = -28, Percent = 100 },
                Y      = { Pixels = 28 }
            };

            UIPanel panelLocations = new UIPanel
            {
                Width  = { Percent = 100 },
                Height = { Pixels = -48, Percent = 100 }
            };

            panelMain.Add(panelLocations);

            gridLocations = new UIGrid <UITeleporterItem>
            {
                Width  = { Pixels = -28, Percent = 100 },
                Height = { Percent = 100 }
            };
            panelLocations.Add(gridLocations);
            UpdateGrid();

            gridLocations.scrollbar.Height = new StyleDimension {
                Percent = 100
            };
            gridLocations.scrollbar.X.Percent = 100;
            panelLocations.Add(gridLocations.scrollbar);

            UITextButton buttonDialOnce = new UITextButton(Language.GetText("Mods.Teleportation.UI.DialOnce"))
            {
                Width  = { Pixels = -4, Percent = 25 },
                Height = { Pixels = 40 },
                Y      = { Percent = 100 }
            };

            buttonDialOnce.OnClick += args =>
            {
                if (SelectedTeleporter == null)
                {
                    return;
                }

                if (SelectedTeleporter.Destination == Container)
                {
                    SelectedTeleporter = null;
                }
                else
                {
                    Container.Destination = SelectedTeleporter;
                    Container.DialOnce    = true;
                    Net.SendTeleporterDestination(Container);
                }
            };
            panelMain.Add(buttonDialOnce);

            UITextButton buttonDial = new UITextButton(Language.GetText("Mods.Teleportation.UI.Dial"))
            {
                Width  = { Pixels = -4, Percent = 25 },
                Height = { Pixels = 40 },
                Y      = { Percent = 100 },
                X      = { Percent = 33 }
            };

            buttonDial.OnClick += args =>
            {
                if (SelectedTeleporter == null)
                {
                    return;
                }

                if (SelectedTeleporter.Destination == Container)
                {
                    SelectedTeleporter = null;
                }
                else
                {
                    Container.Destination = SelectedTeleporter;
                    Container.DialOnce    = false;
                    Net.SendTeleporterDestination(Container);
                }
            };
            panelMain.Add(buttonDial);

            UITextButton buttonInterrupt = new UITextButton(Language.GetText("Mods.Teleportation.UI.Interrupt"))
            {
                Width  = { Pixels = -4, Percent = 25 },
                Height = { Pixels = 40 },
                X      = { Percent = 50 },
                Y      = { Percent = 100 }
            };

            buttonInterrupt.OnClick += args =>
            {
                if (SelectedTeleporter != null)
                {
                    SelectedTeleporter.Destination = null;
                }
                SelectedTeleporter    = null;
                Container.Destination = null;
                Container.DialOnce    = false;
                Net.SendTeleporterDestination(Container);
            };
            panelMain.Add(buttonInterrupt);

            UIContainerSlot slotFuel = new UIContainerSlot(() => Container.Handler)
            {
                Width       = { Pixels = -4, Percent = 25 },
                X           = { Percent = 100 },
                Y           = { Percent = 100 },
                Padding     = new Padding(0, 24, 24, 0),
                PreviewItem = new Item()
            };

            slotFuel.PreviewItem.SetDefaults(ModContent.ItemType <FuelCell>());
            panelMain.Add(slotFuel);
        }
Пример #26
0
        public TestChestUI(TestChestTE chest) : base(chest)
        {
            Width.Pixels  = 408;
            Height.Pixels = 172;

            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);

            UIText textLabel = new UIText("Test Chest")
            {
                Width  = { Percent = 100 },
                Height = { Pixels = 20 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIButton buttonLootAll = new UIButton(Routed.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(Routed.textureDepositAll)
            {
                Size      = new Vector2(20),
                X         = { Pixels = 28 },
                HoverText = Language.GetText("LegacyInterface.30")
            };

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

            UIButton buttonQuickStack = new UIButton(Routed.textureQuickStack)
            {
                Size      = new Vector2(20),
                X         = { Pixels = 56 },
                HoverText = Language.GetText("LegacyInterface.31")
            };

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

            UIGrid <UIContainerSlot> gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width      = { Percent = 100 },
                Height     = { Pixels = -28, Percent = 100 },
                Y          = { Pixels = 28 },
                ItemMargin = 4
            };

            Add(gridItems);

            for (int i = 0; i < Container.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i);
                gridItems.Add(slot);
            }
        }
        public override void OnInitialize()
        {
            Width  = (408, 0);
            Height = (40 + Bag.Handler.Slots / 9 * 44, 0);
            this.Center();

            textLabel = new UIText(Bag.DisplayName.GetTranslation())
            {
                HAlign = 0.5f
            };
            Append(textLabel);

            buttonClose = new UITextButton("X")
            {
                Size        = new Vector2(20),
                Left        = (-20, 1),
                RenderPanel = false
            };
            buttonClose.OnClick += (evt, element) => PortableStorage.Instance.PanelUI.UI.CloseUI(Bag);
            Append(buttonClose);

            gridItems = new UIGrid <UIContainerSlot>(9)
            {
                Width          = (0, 1),
                Height         = (-28, 1),
                Top            = (28, 0),
                OverflowHidden = true,
                ListPadding    = 4f
            };
            Append(gridItems);

            BuilderReserve devNull = Bag;

            for (int i = 0; i < Bag.Handler.Slots; i++)
            {
                UIContainerSlot slot = new UIContainerSlot(() => Bag.Handler, i);
                slot.ClickOverride += () =>
                {
                    if (!slot.Item.IsAir && Main.keyState.IsKeyDown(Keys.RightShift))
                    {
                        if (devNull.selectedIndex == slot.slot)
                        {
                            devNull.SetIndex(-1);
                        }
                        else
                        {
                            devNull.SetIndex(slot.slot);
                        }

                        return(true);
                    }

                    return(false);
                };
                slot.OnInteract += () =>
                {
                    if (slot.Item.IsAir && slot.slot == devNull.selectedIndex)
                    {
                        devNull.SetIndex(-1);
                    }
                };
                gridItems.Add(slot);
            }

            RefreshTextures();
        }
Пример #28
0
        public RequesterModulePanel(RequesterModule module) : base(module)
        {
            Width.Pixels  = 60 + (SlotSize + SlotMargin) * Columns - SlotMargin;
            Height.Pixels = 144 + (SlotSize + SlotMargin) * (Rows + 2) - SlotMargin * 2;
            X.Percent     = Y.Percent = 50;

            UITextButton buttonClose = new UITextButton("X")
            {
                Width       = { Pixels = 20 },
                Height      = { Pixels = 20 },
                X           = { Percent = 100 },
                RenderPanel = false,
                Padding     = new Padding(0)
            };

            buttonClose.OnClick += args =>
            {
                if (args.Button != MouseButton.Left)
                {
                    return;
                }

                PanelUI.Instance.CloseUI(Container);
            };
            Add(buttonClose);

            textQueue = new UIText("Queue")
            {
                Width = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Left
            };
            Add(textQueue);

            UIText textLabel = new UIText("Requester Module")
            {
                Width = { Percent = 100 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIPanel panel = new UIPanel
            {
                Y               = { Pixels = 28 },
                Width           = { Percent = 100 },
                Height          = { Pixels = (SlotSize + SlotMargin) * Rows - SlotMargin },
                BorderColor     = Color.Transparent,
                BackgroundColor = Utility.ColorPanel_Selected * 0.75f
            };

            Add(panel);

            gridSlots = new UIGrid <UIRequesterSlot>(Columns)
            {
                Width      = { Percent = 100, Pixels = -26 },
                Height     = { Percent = 100 },
                ItemMargin = SlotMargin
            };
            gridSlots.SearchSelector += item =>
            {
                if (string.IsNullOrWhiteSpace(search.Value))
                {
                    return(true);
                }

                string itemName   = item.Item.HoverName.ToLower();
                string searchName = search.Value.ToLower();

                return(itemName.Contains(searchName));
            };
            panel.Add(gridSlots);

            gridSlots.scrollbar.X.Percent      = 100;
            gridSlots.scrollbar.Y.Pixels       = 0;
            gridSlots.scrollbar.Height.Percent = 100;
            panel.Add(gridSlots.scrollbar);

            UITextInput inputSearch = new UITextInput(ref search)
            {
                Y                 = { Pixels = 36 + (SlotSize + SlotMargin) * Rows - SlotMargin },
                Width             = { Percent = 100 },
                Height            = { Pixels = 40 },
                RenderPanel       = true,
                VerticalAlignment = VerticalAlignment.Center,
                HintText          = "Search",
                Padding           = new Padding(8)
            };

            inputSearch.OnKeyPressed += args =>
            {
                if (inputSearch.Focused && (args.Key == Keys.Enter || args.Key == Keys.Escape))
                {
                    args.Handled        = true;
                    inputSearch.Focused = false;
                }
            };
            inputSearch.OnTextChange += () => gridSlots.Search();
            Add(inputSearch);

            // requested items
            {
                UIText textRequestedItem = new UIText("Requested Items")
                {
                    Width  = { Pixels = (SlotSize + SlotMargin) * 10 - SlotMargin },
                    Margin = new Margin(8, 0, 0, 0),
                    Y      = { Pixels = 84 + (SlotSize + SlotMargin) * Rows - SlotMargin },
                    HorizontalAlignment = HorizontalAlignment.Center
                };
                Add(textRequestedItem);

                panel = new UIPanel
                {
                    Y               = { Pixels = 112 + (SlotSize + SlotMargin) * Rows - SlotMargin },
                    Width           = { Percent = 100 },
                    Height          = { Pixels = 16 + (SlotSize + SlotMargin) * 2 - SlotMargin },
                    BorderColor     = Color.Transparent,
                    BackgroundColor = Utility.ColorPanel_Selected * 0.75f
                };
                Add(panel);

                UIGrid <UIContainerSlot> gridOutout = new UIGrid <UIContainerSlot>(10)
                {
                    Width      = { Pixels = (SlotSize + SlotMargin) * 10 },
                    Height     = { Percent = 100 },
                    ItemMargin = SlotMargin
                };
                panel.Add(gridOutout);

                for (int i = 0; i < Container.Handler.Slots; i++)
                {
                    UIContainerSlot slot = new UIContainerSlot(() => Container.Handler, i)
                    {
                        Width   = { Pixels = SlotSize },
                        Height  = { Pixels = SlotSize },
                        Padding = new Padding(2)
                    };
                    gridOutout.Add(slot);
                }
            }

            // return items
            {
                UIText textReturnItems = new UIText("Return")
                {
                    Width  = { Pixels = (SlotSize + SlotMargin) * 3 - SlotMargin },
                    Margin = new Margin(0, 0, 8, 0),
                    X      = { Percent = 100 },
                    Y      = { Pixels = 84 + (SlotSize + SlotMargin) * Rows - SlotMargin },
                    HorizontalAlignment = HorizontalAlignment.Center
                };
                Add(textReturnItems);

                UIGrid <UIContainerSlot> gridInput = new UIGrid <UIContainerSlot>(3)
                {
                    Width      = { Pixels = (SlotSize + SlotMargin) * 3 - SlotMargin },
                    Height     = { Percent = 100 },
                    X          = { Percent = 100 },
                    ItemMargin = SlotMargin
                };
                panel.Add(gridInput);

                for (int i = 0; i < Container.ReturnHandler.Slots; i++)
                {
                    UIContainerSlot slot = new UIContainerSlot(() => Container.ReturnHandler, i)
                    {
                        Width   = { Pixels = SlotSize },
                        Height  = { Pixels = SlotSize },
                        Padding = new Padding(2)
                    };
                    gridInput.Add(slot);
                }
            }

            UIButton buttonTransfer = new UIButton(ModContent.GetTexture("BaseLibrary/Textures/UI/QuickStack"))
            {
                Y         = { Percent = 50 },
                X         = { Pixels = 6 + (SlotSize + SlotMargin) * 10 - SlotMargin },
                Width     = { Pixels = 20 },
                Height    = { Pixels = 20 },
                HoverText = "Transfer items"
            };

            buttonTransfer.OnClick += args =>
            {
                for (int i = 0; i < Container.Handler.Slots; i++)
                {
                    ref Item item = ref Container.Handler.GetItemInSlotByRef(i);
                    Container.ReturnHandler.InsertItem(ref item);
                    if (!item.IsAir)
                    {
                        break;
                    }
                }

                Recipe.FindRecipes();
            };
Пример #29
0
        public CrusherPanel(Crusher container) : base(container)
        {
            Width.Pixels    = 272;
            Height.Pixels   = 232;
            BackgroundColor = new Color(38, 49, 90);

            UIText textLabel = new UIText(Language.GetText("Mods.Gelum.MapObject.Crusher"))
            {
                X = { Percent = 50 },
                HorizontalAlignment = HorizontalAlignment.Center
            };

            Add(textLabel);

            UIEnergyStore energy = new UIEnergyStore(container)
            {
                Width  = { Pixels = 64 },
                Height = { Pixels = 64 },
                X      = { Percent = 50 },
                Y      = { Pixels = 28 }
            };

            Add(energy);

            UIContainerSlot slot = new UIContainerSlot(() => Handler)
            {
                X      = { Percent = 50 },
                Y      = { Percent = 100 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };

            Add(slot);

            slot = new UIContainerSlot(() => Handler, 1)
            {
                X      = { Pixels = 0 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            slot = new UIContainerSlot(() => Handler, 2)
            {
                X      = { Pixels = 62 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            slot = new UIContainerSlot(() => Handler, 1)
            {
                X      = { Pixels = 0 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            slot = new UIContainerSlot(() => Handler, 2)
            {
                X      = { Pixels = 62 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            slot = new UIContainerSlot(() => Handler, 3)
            {
                X      = { Percent = 100, Pixels = -62 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);

            slot = new UIContainerSlot(() => Handler, 4)
            {
                X      = { Percent = 100 },
                Y      = { Pixels = 108 },
                Width  = { Pixels = 54 },
                Height = { Pixels = 54 }
            };
            Add(slot);
        }