minecraft-src/net/minecraft/world/ticks/ContainerSingleItem.java
2025-07-04 01:41:11 +03:00

66 lines
1.5 KiB
Java

package net.minecraft.world.ticks;
import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
public interface ContainerSingleItem extends Container {
ItemStack getTheItem();
default ItemStack splitTheItem(int amount) {
return this.getTheItem().split(amount);
}
void setTheItem(ItemStack item);
default ItemStack removeTheItem() {
return this.splitTheItem(this.getMaxStackSize());
}
@Override
default int getContainerSize() {
return 1;
}
@Override
default boolean isEmpty() {
return this.getTheItem().isEmpty();
}
@Override
default void clearContent() {
this.removeTheItem();
}
@Override
default ItemStack removeItemNoUpdate(int slot) {
return this.removeItem(slot, this.getMaxStackSize());
}
@Override
default ItemStack getItem(int slot) {
return slot == 0 ? this.getTheItem() : ItemStack.EMPTY;
}
@Override
default ItemStack removeItem(int slot, int amount) {
return slot != 0 ? ItemStack.EMPTY : this.splitTheItem(amount);
}
@Override
default void setItem(int slot, ItemStack stack) {
if (slot == 0) {
this.setTheItem(stack);
}
}
public interface BlockContainerSingleItem extends ContainerSingleItem {
BlockEntity getContainerBlockEntity();
@Override
default boolean stillValid(Player player) {
return Container.stillValidBlockEntity(this.getContainerBlockEntity(), player);
}
}
}