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
public class HopperBlockEntity extends LootableContainerBlockEntity implements Hopper
-
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(BlockPos blockPos, BlockState blockState)
-
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)
private static boolean
extract(Hopper hopper, Inventory inventory, int slot, Direction side)
static boolean
extract(Inventory inventory, ItemEntity itemEntity)
static boolean
extract(World world, Hopper hopper)
void
fromTag(CompoundTag tag)
private static IntStream
getAvailableSlots(Inventory inventory, Direction side)
protected Text
getContainerName()
double
getHopperX()
double
getHopperY()
double
getHopperZ()
private static Inventory
getInputInventory(World world, Hopper hopper)
static List<ItemEntity>
getInputItemEntities(World world, Hopper hopper)
private static Inventory
getInventoryAt(World world, double x, double y, double z)
static Inventory
getInventoryAt(World world, BlockPos blockPos)
protected DefaultedList<ItemStack>
getInvStackList()
private static Inventory
getOutputInventory(World world, BlockPos blockPos, BlockState blockState)
private static boolean
insert(World world, BlockPos blockPos, BlockState blockState, Inventory inventory)
private static boolean
insertAndExtract(World world, BlockPos blockPos, BlockState blockState, HopperBlockEntity hopperBlockEntity, BooleanSupplier booleanSupplier)
private boolean
isDisabled()
private boolean
isFull()
private static boolean
isInventoryEmpty(Inventory inv, Direction facing)
private static boolean
isInventoryFull(Inventory inventory, Direction direction)
private boolean
needsCooldown()
static void
onEntityCollided(World world, BlockPos blockPos, BlockState blockState, Entity entity, HopperBlockEntity hopperBlockEntity)
ItemStack
removeStack(int slot, int amount)
Removes a specific number of items from the given slot.static void
serverTick(World world, BlockPos blockPos, BlockState blockState, HopperBlockEntity hopperBlockEntity)
private void
setCooldown(int cooldown)
protected void
setInvStackList(DefaultedList<ItemStack> list)
void
setStack(int slot, ItemStack stack)
int
size()
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
cancelRemoval, copyItemDataRequiresOperator, createFromTag, getCachedState, getPos, getSquaredRenderDistance, getType, getWorld, hasWorld, isRemoved, markDirty, markDirty, markRemoved, onSyncedBlockEvent, populateCrashReport, setCachedState, setWorld, 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
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
-
-
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
-
serverTick
public static void serverTick(World world, BlockPos blockPos, BlockState blockState, HopperBlockEntity hopperBlockEntity) -
insertAndExtract
private static boolean insertAndExtract(World world, BlockPos blockPos, BlockState blockState, HopperBlockEntity hopperBlockEntity, BooleanSupplier booleanSupplier) -
isFull
private boolean isFull() -
insert
private static boolean insert(World world, BlockPos blockPos, BlockState blockState, Inventory inventory) -
getAvailableSlots
-
isInventoryFull
-
isInventoryEmpty
-
extract
-
extract
-
extract
-
transfer
-
canInsert
-
canExtract
-
transfer
-
getOutputInventory
@Nullable private static Inventory getOutputInventory(World world, BlockPos blockPos, BlockState blockState) -
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
public static void onEntityCollided(World world, BlockPos blockPos, BlockState blockState, Entity entity, HopperBlockEntity hopperBlockEntity) -
createScreenHandler
- Specified by:
createScreenHandler
in classLockableContainerBlockEntity
-