Exemple #1
0
        // 70 * 128, 4 * 6

        // Tiles are 16x20 => 64x120
        // 1 pix grid between and around, double thick on right and bottom
        // 1 + 16 + 1 + 16 + 1 + 16 + 1 + 16 + 2
        // = 4*1 + 4*16 + 2 = 70
        // Height = 6 * (1+20) + 2 = 128

        // Button Frame @ (0,0): (70,128) border 1
        // Item0: (0,0):(16,20) border 1
        // Item1: (16,0):(16,20) border 1
        // Item5: (0,20):(16,20) border 1
        // ItemIJ: (16i, 20j):(16,20) border 1

        public InventoryBackpackSlot(PartyCharacterId activeCharacter, int slotNumber)
            : base(activeCharacter, BackpackHandlers)
        {
            _slotNumber = slotNumber;
            _sprite     = new UiItemSprite(ItemSpriteId.Nothing);

            var amountSource = new DynamicText(() =>
            {
                GetSlot(out var slotInfo, out _);
                return(slotInfo == null || slotInfo.Amount < 2
                    ? new TextBlock[0]
                    : new[] { new TextBlock(slotInfo.Amount.ToString())
                              {
                                  Alignment = TextAlignment.Right
                              } });
            }, x => _version);

            var text = new Text(amountSource);

            Frame = new ButtonFrame(new FixedPositionStack()
                                    .Add(_sprite, 0, 0, 16, 16)
                                    .Add(text, 0, 20 - 9, 16, 9)
                                    )
            {
                Padding = -1,
                Theme   = new InventorySlotTheme(),
                State   = ButtonState.Pressed
            };

            Children.Add(Frame);
        }
Exemple #2
0
 // Inner area 16x16 w/ 1-pixel button frame
 public InventoryBodyPart(PartyCharacterId activeCharacter, ItemSlotId itemSlotId)
     : base(activeCharacter, SlotHandlers)
 {
     SlotId  = itemSlotId;
     _sprite = new UiItemSprite(ItemSpriteId.Nothing);
     Frame   = new ButtonFrame(new FixedSize(16, 16, _sprite))
     {
         Padding = -1
     };
     Children.Add(Frame);
 }