Вопрос по контейнеру

Версия Minecraft
1.12.2

will0376

Токсичная личность
2,075
55
584
Здрасте. Имею контейнер в блоке, есть необходимость переключать страницы блока при этом отрисовывая нужные слоты с доступом к ним с другой страницы...
Как бы это реализовать?
или придётся еще 1 контейнер делать?(при этом я хз как его правильно сделать...)
 
Решение
У меня вот так:
Java:
private void updateBagSlots(){
        for(int i = 0; i < player.getInventoryBag().getSizeInventory(); i++){
            int columns = 9;
            int rows = 3;
            int x = i % columns ;
            int y = i / columns ;
            int slotsInPage = rows * columns;
            int startCategorySlot = category * slotsInPage;
            if(i >= startCategorySlot && i < startCategorySlot + slotsInPage){
                setSlotCoords(14 + i, x * 18, y * 18);
            }else{
                setSlotCoords(14 + i, Short.MAX_VALUE, Short.MAX_VALUE);
            }
        }
    }

    private void setSlotCoords(int slotId, int x, int y){
        Slot slot = inventorySlots.getSlot(slotId);
        slot.xPos = x...

tox1cozZ

aka Agravaine
8,455
598
2,892

will0376

Токсичная личность
2,075
55
584
я всё никак не допру, как всё-таки координату поменять в зависимости от страницы...
Java:
public void addOwnSlots(int page) {
        System.out.println("Page:" + TestContainerGui.Instance.page);
        IItemHandler itemHandler = this.te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
        if(page == 0) {
            offsetxy = 0;
            offsetxy2 = 999;
            }
         if(page == 1){
            offsetxy2 = 0;
            offsetxy = 999;
        }

            addSlotToContainer(new SlotItemHandler(itemHandler,0,81,-16));
                this.inventorySlots.get(0).xPos = this.inventorySlots.get(0).xPos + offsetxy;
            addSlotToContainer(new SlotItemHandler(itemHandler, 1, 81, -16));
            addSlotToContainer(new SlotItemHandler(itemHandler, 2, 0, -16));
            addSlotToContainer(new SlotItemHandler(itemHandler, 3, 60, -16));
            addSlotToContainer(new SlotItemHandler(itemHandler, 4, 40, -16));
            for(int i = 1; i < inventorySlots.size();i++){
                this.inventorySlots.get(i).xPos = this.inventorySlots.get(i).xPos + offsetxy2;
            }
}
может я рукожоп?
 

tox1cozZ

aka Agravaine
8,455
598
2,892
У меня вот так:
Java:
private void updateBagSlots(){
        for(int i = 0; i < player.getInventoryBag().getSizeInventory(); i++){
            int columns = 9;
            int rows = 3;
            int x = i % columns ;
            int y = i / columns ;
            int slotsInPage = rows * columns;
            int startCategorySlot = category * slotsInPage;
            if(i >= startCategorySlot && i < startCategorySlot + slotsInPage){
                setSlotCoords(14 + i, x * 18, y * 18);
            }else{
                setSlotCoords(14 + i, Short.MAX_VALUE, Short.MAX_VALUE);
            }
        }
    }

    private void setSlotCoords(int slotId, int x, int y){
        Slot slot = inventorySlots.getSlot(slotId);
        slot.xPos = x;
        slot.yPos = y;
    }

    private void setCategory(int newCategory){
        category = newCategory;
        updateBagSlots();
    }
 
Сверху