95 lines
2.9 KiB
Java
95 lines
2.9 KiB
Java
|
package net.minecraft.world.inventory;
|
||
|
|
||
|
import net.minecraft.world.Container;
|
||
|
import net.minecraft.world.SimpleContainer;
|
||
|
import net.minecraft.world.entity.player.Player;
|
||
|
import net.minecraft.world.item.ItemStack;
|
||
|
|
||
|
public class LecternMenu extends AbstractContainerMenu {
|
||
|
private static final int DATA_COUNT = 1;
|
||
|
private static final int SLOT_COUNT = 1;
|
||
|
public static final int BUTTON_PREV_PAGE = 1;
|
||
|
public static final int BUTTON_NEXT_PAGE = 2;
|
||
|
public static final int BUTTON_TAKE_BOOK = 3;
|
||
|
public static final int BUTTON_PAGE_JUMP_RANGE_START = 100;
|
||
|
private final Container lectern;
|
||
|
private final ContainerData lecternData;
|
||
|
|
||
|
public LecternMenu(int p_39822_) {
|
||
|
this(p_39822_, new SimpleContainer(1), new SimpleContainerData(1));
|
||
|
}
|
||
|
|
||
|
public LecternMenu(int p_39824_, Container p_39825_, ContainerData p_39826_) {
|
||
|
super(MenuType.LECTERN, p_39824_);
|
||
|
checkContainerSize(p_39825_, 1);
|
||
|
checkContainerDataCount(p_39826_, 1);
|
||
|
this.lectern = p_39825_;
|
||
|
this.lecternData = p_39826_;
|
||
|
this.addSlot(new Slot(p_39825_, 0, 0, 0) {
|
||
|
@Override
|
||
|
public void setChanged() {
|
||
|
super.setChanged();
|
||
|
LecternMenu.this.slotsChanged(this.container);
|
||
|
}
|
||
|
});
|
||
|
this.addDataSlots(p_39826_);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean clickMenuButton(Player p_39833_, int p_39834_) {
|
||
|
if (p_39834_ >= 100) {
|
||
|
int k = p_39834_ - 100;
|
||
|
this.setData(0, k);
|
||
|
return true;
|
||
|
} else {
|
||
|
switch (p_39834_) {
|
||
|
case 1:
|
||
|
int j = this.lecternData.get(0);
|
||
|
this.setData(0, j - 1);
|
||
|
return true;
|
||
|
case 2:
|
||
|
int i = this.lecternData.get(0);
|
||
|
this.setData(0, i + 1);
|
||
|
return true;
|
||
|
case 3:
|
||
|
if (!p_39833_.mayBuild()) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
ItemStack itemstack = this.lectern.removeItemNoUpdate(0);
|
||
|
this.lectern.setChanged();
|
||
|
if (!p_39833_.getInventory().add(itemstack)) {
|
||
|
p_39833_.drop(itemstack, false);
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
default:
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ItemStack quickMoveStack(Player p_219987_, int p_219988_) {
|
||
|
return ItemStack.EMPTY;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void setData(int p_39828_, int p_39829_) {
|
||
|
super.setData(p_39828_, p_39829_);
|
||
|
this.broadcastChanges();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean stillValid(Player p_39831_) {
|
||
|
return this.lectern.stillValid(p_39831_);
|
||
|
}
|
||
|
|
||
|
public ItemStack getBook() {
|
||
|
return this.lectern.getItem(0);
|
||
|
}
|
||
|
|
||
|
public int getPage() {
|
||
|
return this.lecternData.get(0);
|
||
|
}
|
||
|
}
|