Package net.minecraft.block.entity
Class HopperBlockEntity
java.lang.Object
net.minecraft.block.entity.BlockEntity
net.minecraft.block.entity.LockableContainerBlockEntity
net.minecraft.block.entity.LootableContainerBlockEntity
net.minecraft.block.entity.HopperBlockEntity
- All Implemented Interfaces:
Hopper
,Inventory
,NamedScreenHandlerFactory
,ScreenHandlerFactory
,Clearable
,Nameable
,Tickable
public class HopperBlockEntity extends LootableContainerBlockEntity implements Hopper, Tickable
-
Field Summary
Fields Modifier and Type Field Description private DefaultedList<ItemStack>
inventory
private long
lastTickTime
private int
transferCooldown
Fields inherited from class net.minecraft.block.entity.LootableContainerBlockEntity
lootTableId, lootTableSeed
Fields inherited from class net.minecraft.block.entity.BlockEntity
pos, removed, world
Fields inherited from interface net.minecraft.block.entity.Hopper
ABOVE_SHAPE, INPUT_AREA_SHAPE, INSIDE_SHAPE
-
Constructor Summary
Constructors Constructor Description HopperBlockEntity()
-
Method Summary
Modifier and Type Method Description private static boolean
canExtract(Inventory inv, ItemStack stack, int slot, Direction facing)
private static boolean
canInsert(Inventory inventory, ItemStack stack, int slot, Direction side)
private static boolean
canMergeItems(ItemStack first, ItemStack second)
protected ScreenHandler
createScreenHandler(int syncId, PlayerInventory playerInventory)
static boolean
extract(Hopper hopper)
private static boolean
extract(Hopper hopper, Inventory inventory, int slot, Direction side)
static boolean
extract(Inventory inventory, ItemEntity itemEntity)
void
fromTag(BlockState state, CompoundTag tag)
private static IntStream
getAvailableSlots(Inventory inventory, Direction side)
protected Text
getContainerName()
double
getHopperX()
double
getHopperY()
double
getHopperZ()
static Inventory
getInputInventory(Hopper hopper)
static List<ItemEntity>
getInputItemEntities(Hopper hopper)
static Inventory
getInventoryAt(World world, double x, double y, double z)
static Inventory
getInventoryAt(World world, BlockPos blockPos)
protected DefaultedList<ItemStack>
getInvStackList()
private Inventory
getOutputInventory()
private boolean
insert()
private boolean
insertAndExtract(Supplier<Boolean> extractMethod)
private boolean
isDisabled()
private boolean
isFull()
private static boolean
isInventoryEmpty(Inventory inv, Direction facing)
private boolean
isInventoryFull(Inventory inv, Direction direction)
private boolean
needsCooldown()
void
onEntityCollided(Entity entity)
ItemStack
removeStack(int slot, int amount)
Removes a specific number of items from the given slot.private void
setCooldown(int cooldown)
protected void
setInvStackList(DefaultedList<ItemStack> list)
void
setStack(int slot, ItemStack stack)
int
size()
void
tick()
CompoundTag
toTag(CompoundTag tag)
private static ItemStack
transfer(Inventory from, Inventory to, ItemStack stack, int slot, Direction direction)
static ItemStack
transfer(Inventory from, Inventory to, ItemStack stack, Direction side)
Methods inherited from class net.minecraft.block.entity.LootableContainerBlockEntity
canPlayerUse, checkLootInteraction, checkUnlocked, clear, createMenu, deserializeLootTable, getStack, isEmpty, removeStack, serializeLootTable, setLootTable, setLootTable
Methods inherited from class net.minecraft.block.entity.LockableContainerBlockEntity
checkUnlocked, getCustomName, getDisplayName, getName, setCustomName
Methods inherited from class net.minecraft.block.entity.BlockEntity
applyMirror, applyRotation, cancelRemoval, copyItemDataRequiresOperator, createFromTag, getCachedState, getPos, getSquaredRenderDistance, getType, getWorld, hasWorld, isRemoved, markDirty, markInvalid, markRemoved, onSyncedBlockEvent, populateCrashReport, resetBlock, setLocation, setPos, toInitialChunkDataTag, toUpdatePacket
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.minecraft.block.entity.Hopper
getInputAreaShape, getWorld
Methods inherited from interface net.minecraft.inventory.Inventory
canPlayerUse, containsAny, count, getMaxCountPerStack, getStack, isEmpty, isValid, markDirty, onClose, onOpen, removeStack
Methods inherited from interface net.minecraft.util.Nameable
hasCustomName
-
Field Details
-
inventory
-
transferCooldown
private int transferCooldown -
lastTickTime
private long lastTickTime
-
-
Constructor Details
-
HopperBlockEntity
public HopperBlockEntity()
-
-
Method Details
-
fromTag
- Overrides:
fromTag
in classLockableContainerBlockEntity
-
toTag
- Overrides:
toTag
in classLockableContainerBlockEntity
-
size
public int size() -
removeStack
Removes a specific number of items from the given slot.- Specified by:
removeStack
in interfaceInventory
- Overrides:
removeStack
in classLootableContainerBlockEntity
- Returns:
- the removed items as a stack
-
setStack
- Specified by:
setStack
in interfaceInventory
- Overrides:
setStack
in classLootableContainerBlockEntity
-
getContainerName
- Specified by:
getContainerName
in classLockableContainerBlockEntity
-
tick
public void tick() -
insertAndExtract
-
isFull
private boolean isFull() -
insert
private boolean insert() -
getAvailableSlots
-
isInventoryFull
-
isInventoryEmpty
-
extract
-
extract
-
extract
-
transfer
-
canInsert
-
canExtract
-
transfer
-
getOutputInventory
-
getInputInventory
-
getInputItemEntities
-
getInventoryAt
-
getInventoryAt
-
canMergeItems
-
getHopperX
public double getHopperX()- Specified by:
getHopperX
in interfaceHopper
-
getHopperY
public double getHopperY()- Specified by:
getHopperY
in interfaceHopper
-
getHopperZ
public double getHopperZ()- Specified by:
getHopperZ
in interfaceHopper
-
setCooldown
private void setCooldown(int cooldown) -
needsCooldown
private boolean needsCooldown() -
isDisabled
private boolean isDisabled() -
getInvStackList
- Specified by:
getInvStackList
in classLootableContainerBlockEntity
-
setInvStackList
- Specified by:
setInvStackList
in classLootableContainerBlockEntity
-
onEntityCollided
-
createScreenHandler
- Specified by:
createScreenHandler
in classLockableContainerBlockEntity
-