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...
Возьму на заметку)остальным же 9999.
вот тут и вопрос: КАК?вырубить слоты?
Багает если добавлять или удалять слоты в открытом контейнере. По-этому проще сместить на недоступные координаты.А просто вырубить слоты?
а как быть с шифтом?(отменять шифт - не вариант. 6*9 слотов контейнер...)недоступные координаты.
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;
}
}
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();
}
Благодарю. я тут решил сделать таким образом,что весь контейнер находится на 1 странице)У меня вот так: