66 lines
1.7 KiB
Java
66 lines
1.7 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 p_312245_) {
|
|
return this.getTheItem().split(p_312245_);
|
|
}
|
|
|
|
void setTheItem(ItemStack p_310917_);
|
|
|
|
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 p_273409_) {
|
|
return this.removeItem(p_273409_, this.getMaxStackSize());
|
|
}
|
|
|
|
@Override
|
|
default ItemStack getItem(int p_309780_) {
|
|
return p_309780_ == 0 ? this.getTheItem() : ItemStack.EMPTY;
|
|
}
|
|
|
|
@Override
|
|
default ItemStack removeItem(int p_313221_, int p_309913_) {
|
|
return p_313221_ != 0 ? ItemStack.EMPTY : this.splitTheItem(p_309913_);
|
|
}
|
|
|
|
@Override
|
|
default void setItem(int p_312121_, ItemStack p_312812_) {
|
|
if (p_312121_ == 0) {
|
|
this.setTheItem(p_312812_);
|
|
}
|
|
}
|
|
|
|
public interface BlockContainerSingleItem extends ContainerSingleItem {
|
|
BlockEntity getContainerBlockEntity();
|
|
|
|
@Override
|
|
default boolean stillValid(Player p_335018_) {
|
|
return Container.stillValidBlockEntity(this.getContainerBlockEntity(), p_335018_);
|
|
}
|
|
}
|
|
} |