Class AbstractLogisticsFrameEntity
java.lang.Object
net.minecraftforge.common.capabilities.CapabilityProvider<net.minecraft.world.entity.Entity>
net.minecraft.world.entity.Entity
me.desht.pneumaticcraft.common.entity.semiblock.AbstractSemiblockEntity
me.desht.pneumaticcraft.common.entity.semiblock.AbstractLogisticsFrameEntity
- All Implemented Interfaces:
IDirectionalSemiblock,ISemiBlock,IGUIButtonSensitive,net.minecraft.commands.CommandSource,net.minecraft.world.level.entity.EntityAccess,net.minecraft.world.Nameable,net.minecraftforge.common.capabilities.ICapabilityProvider,net.minecraftforge.common.capabilities.ICapabilityProviderImpl<net.minecraft.world.entity.Entity>,net.minecraftforge.common.capabilities.ICapabilitySerializable<net.minecraft.nbt.CompoundTag>,net.minecraftforge.common.extensions.IForgeEntity,net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
- Direct Known Subclasses:
LogisticsActiveProviderEntity,LogisticsRequesterEntity,LogisticsStorageEntity
public abstract class AbstractLogisticsFrameEntity
extends AbstractSemiblockEntity
implements IDirectionalSemiblock
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classclassSpecialised item handler which caches a list of non-empty filter stacks, for more efficient iteration over them.static classNested classes/interfaces inherited from class net.minecraft.world.entity.Entity
net.minecraft.world.entity.Entity.MoveFunction, net.minecraft.world.entity.Entity.MovementEmission, net.minecraft.world.entity.Entity.RemovalReasonNested classes/interfaces inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
net.minecraftforge.common.capabilities.CapabilityProvider.AsField<B extends net.minecraftforge.common.capabilities.ICapabilityProviderImpl<B>> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class net.minecraft.world.entity.Entity
BASE_TICKS_REQUIRED_TO_FREEZE, blocksBuilding, BOARDING_COOLDOWN, boardingCooldown, BREATHING_DISTANCE_BELOW_EYES, DATA_POSE, DATA_SHARED_FLAGS_ID, DEFAULT_BB_HEIGHT, DEFAULT_BB_WIDTH, DELTA_AFFECTED_BY_BLOCKS_BELOW, ENTITY_COUNTER, entityData, fallDistance, firstTick, FLAG_FALL_FLYING, FLAG_GLOWING, FLAG_ONFIRE, fluidHeight, flyDist, forgeFluidTypeHeight, FREEZE_HURT_FREQUENCY, hasImpulse, horizontalCollision, hurtMarked, ID_TAG, invulnerableTime, isInPowderSnow, isInsidePortal, level, MAX_ENTITY_TAG_COUNT, maxUpStep, minorHorizontalCollision, moveDist, noCulling, noPhysics, onGround, PASSENGERS_TAG, portalEntrancePos, portalTime, random, stringUUID, stuckSpeedMultiplier, tickCount, TOTAL_AIR_SUPPLY, uuid, UUID_TAG, verticalCollision, verticalCollisionBelow, walkDist, walkDistO, wasEyeInWater, wasInPowderSnow, wasOnFire, wasTouchingWater, xo, xOld, xRotO, yo, yOld, yRotO, zo, zOldFields inherited from interface net.minecraft.commands.CommandSource
NULL -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTooltip(Consumer<net.minecraft.network.chat.Component> curInfo, net.minecraft.world.entity.player.Player player, net.minecraft.nbt.CompoundTag tag, boolean extended) Add tooltip information for this semiblock.protected net.minecraft.world.phys.AABBGet the bounding box for this entity, which by default is the bounding box of the block we're on.booleanbooleancanPlace(net.minecraft.core.Direction facing) Check if this semiblock can be placed here.booleancanStay()Check if this semiblock can remain here.voidclearIncomingStack(net.minecraft.world.item.ItemStack stack) voidclearIncomingStack(net.minecraftforge.fluids.FluidStack stack) protected voidstatic AbstractLogisticsFrameEntityfromItemStack(net.minecraft.world.level.Level world, net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack stack) Get a logistics entity from the given item stack.intgetAlpha()abstract intgetColor()A color in ARGB format.protected abstract net.minecraft.world.inventory.MenuType<?>net.minecraftforge.fluids.FluidStackgetFluidFilter(int filterIndex) intgetIncomingFluid(net.minecraft.world.level.material.Fluid fluid) intgetIncomingItems(net.minecraft.world.item.ItemStack stack) abstract intnet.minecraft.core.DirectiongetSide()abstract net.minecraft.resources.ResourceLocationvoidinformIncomingStack(net.minecraft.world.item.ItemStack stack) voidinformIncomingStack(net.minecraftforge.fluids.FluidStack stack) booleanbooleanbooleanbooleanbooleanbooleanisObstructed(net.minecraft.world.level.pathfinder.PathComputationType pathType) booleanNot to be confused withEntity.isInvisible()voidonPlaced(net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack stack, net.minecraft.core.Direction facing) Called immediately after the semiblock entity has been added to the world.booleanonRightClickWithConfigurator(net.minecraft.world.entity.player.Player player, net.minecraft.core.Direction side) Called when a semiblock is right-clicked with a Logistics Configuratorprotected voidreadAdditionalSaveData(net.minecraft.nbt.CompoundTag tag) voidreadFromBuf(net.minecraft.network.FriendlyByteBuf payload) Read this semiblock from network buffer for network sync purposes.net.minecraft.nbt.CompoundTagserializeNBT(net.minecraft.nbt.CompoundTag tag) Written to the dropped item (under the "EntityTag" subtag) when the semiblock is broken, to persisted entity data byEntity#writeAdditional(), and displayed by info mods such as TOP or Waila.voidsetFluidFilter(int filterIndex, net.minecraftforge.fluids.FluidStack stack) voidsetFluidWhiteList(boolean whiteList) voidsetItemFilter(int slot, net.minecraft.world.item.ItemStack stack) voidsetItemWhiteList(boolean whiteList) voidsetMatchDurability(boolean matchDurability) voidsetMatchModId(boolean matchModId) voidsetMatchNBT(boolean matchNBT) voidsetSemiblockInvisible(boolean invisible) voidsetSide(net.minecraft.core.Direction facing) booleanshouldProvideTo(int level) booleanvoidtick()Implement tick logic here.voidwriteToBuf(net.minecraft.network.FriendlyByteBuf payload) Write this semiblock to network buffer for network sync purposes.Methods inherited from class me.desht.pneumaticcraft.common.entity.semiblock.AbstractSemiblockEntity
addAdditionalSaveData, canCoexist, doExtraCleanupTasks, getAddEntityPacket, getBlockBounds, getBlockPos, getBlockState, getCachedTileEntity, getDamageTaken, getDroppedItem, getDrops, getSemiblockId, getTimeSinceHit, getTrackingId, getWorld, handleGUIButtonPress, hurt, interactAt, isAir, isNoGravity, isPickable, isValid, killedByEntity, onAddedToWorld, onRemovedFromWorld, setPosMethods inherited from class net.minecraft.world.entity.Entity
absMoveTo, absMoveTo, acceptsFailure, acceptsSuccess, addPassenger, addTag, animateHurt, asChatSender, awardKillScore, baseTick, blockPosition, broadcastToPlayer, calculateUpVector, calculateViewVector, canAddPassenger, canBeCollidedWith, canChangeDimensions, canCollideWith, canEnterPose, canFreeze, canRide, canSpawnSprintParticle, canTrample, canUpdate, canUpdate, captureDrops, captureDrops, causeFallDamage, changeDimension, changeDimension, checkDespawn, checkFallDamage, checkInsideBlocks, checkOutOfWorld, chunkPosition, clearFire, closerThan, closerThan, collideBoundingBox, copyPosition, createCommandSourceStack, createHoverEvent, dampensVibrations, discard, dismountTo, displayFireAnimation, distanceTo, distanceToSqr, distanceToSqr, distanceToSqr, doEnchantDamageEffects, doWaterSplashEffect, ejectPassengers, equals, fillCrashReportCategory, findDimensionEntryPoint, fireImmune, gameEvent, gameEvent, getAirSupply, getAllSlots, getArmorSlots, getBbHeight, getBbWidth, getBlockExplosionResistance, getBlockJumpFactor, getBlockPosBelowThatAffectsMyMovement, getBlockSpeedFactor, getBlockStateOn, getBlockStateOnLegacy, getBlockX, getBlockY, getBlockZ, getBoundingBox, getBoundingBoxForCulling, getBoundingBoxForPose, getCollisionHorizontalEscapeVector, getCommandSenderWorld, getControllingPassenger, getCustomName, getDeltaMovement, getDimensionChangingDelay, getDimensions, getDirection, getDismountLocationForPassenger, getDisplayName, getEncodeId, getEntityData, getExitPortal, getEyeHeight, getEyeHeight, getEyeHeight, getEyeHeightAccess, getEyeInFluidType, getEyePosition, getEyePosition, getEyeY, getFeetBlockState, getFireImmuneTicks, getFirstPassenger, getFluidHeight, getFluidJumpThreshold, getFluidTypeHeight, getForward, getHandHoldingItemAngle, getHandSlots, getId, getIndirectPassengers, getLeashOffset, getLevel, getLightLevelDependentMagicValue, getLightProbePosition, getLookAngle, getMaxAirSupply, getMaxFallDistance, getMaxHeightFluidType, getMotionDirection, getMovementEmission, getMyRidingOffset, getName, getOnPos, getOnPosLegacy, getPassengers, getPassengersAndSelf, getPassengersRidingOffset, getPercentFrozen, getPermissionLevel, getPersistentData, getPickRadius, getPickResult, getPistonPushReaction, getPortalWaitTime, getPose, getPosition, getPositionCodec, getRandomX, getRandomY, getRandomZ, getRelativePortalPosition, getRemainingFireTicks, getRemovalReason, getRootVehicle, getRopeHoldPosition, getRotationVector, getScoreboardName, getSelfAndPassengers, getServer, getSharedFlag, getSlot, getSoundSource, getStringUUID, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTags, getTeam, getTeamColor, getTicksFrozen, getTicksRequiredToFreeze, getType, getTypeName, getUpVector, getUUID, getVehicle, getViewScale, getViewVector, getViewXRot, getViewYRot, getVisualRotationYInDegrees, getX, getX, getXRot, getY, getY, getYHeadRot, getYRot, getZ, getZ, handleEntityEvent, handleInsidePortal, handleNetherPortal, hasControllingPassenger, hasCustomName, hasExactlyOnePlayerPassenger, hasGlowingTag, hashCode, hasIndirectPassenger, hasPassenger, hasPassenger, hasPermissions, hasPose, ignoreExplosion, interact, is, isAddedToWorld, isAlive, isAlliedTo, isAlliedTo, isAlwaysTicking, isAttackable, isColliding, isControlledByLocalInstance, isCrouching, isCurrentlyGlowing, isCustomNameVisible, isDescending, isDiscrete, isEyeInFluid, isFlapping, isFree, isFreezing, isFullyFrozen, isHorizontalCollisionMinor, isIgnoringBlockTriggers, isInFluidType, isInFluidType, isInLava, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableTo, isInWall, isInWater, isInWaterOrBubble, isInWaterOrRain, isInWaterRainOrBubble, isOnFire, isOnGround, isOnPortalCooldown, isPassenger, isPassengerOfSameVehicle, isPushable, isPushedByFluid, isRemoved, isShiftKeyDown, isSilent, isSpectator, isSprinting, isSteppingCarefully, isSuppressingBounce, isSwimming, isUnderWater, isVehicle, isVisuallyCrawling, isVisuallySwimming, kill, lavaHurt, lerpHeadTo, lerpMotion, lerpTo, limitPistonMovement, load, lookAt, makeBoundingBox, makeStuckInBlock, markHurt, maybeBackOffFromEdge, mayInteract, mirror, move, moveRelative, moveTo, moveTo, moveTo, moveTo, moveTowardsClosestSpace, newDoubleList, newFloatList, nextStep, onAboveBubbleCol, onClientRemoval, onFlap, onInsideBlock, onInsideBubbleColumn, onlyOpCanSetNbt, onPassengerTurned, onSyncedDataUpdated, outOfWorld, pick, playEntityOnFireExtinguishedSound, playerTouch, playSound, playSound, playStepSound, playSwimSound, position, positionRider, processFlappingMovement, processPortalCooldown, push, push, reapplyPosition, recreateFromPacket, refreshDimensions, remove, removeAfterChangingDimensions, removePassenger, removeTag, removeVehicle, repositionEntityAfterLoad, resetFallDistance, restoreFrom, revive, rideableUnderWater, rideTick, rotate, save, saveAsPassenger, saveWithoutId, sendSystemMessage, setAirSupply, setBoundingBox, setCustomName, setCustomNameVisible, setDeltaMovement, setDeltaMovement, setFluidTypeHeight, setGlowingTag, setId, setInvisible, setInvulnerable, setIsInPowderSnow, setItemSlot, setLevelCallback, setNoGravity, setOldPosAndRot, setOnGround, setPortalCooldown, setPos, setPose, setPosRaw, setRemainingFireTicks, setRemoved, setRot, setSecondsOnFire, setSharedFlag, setSharedFlagOnFire, setShiftKeyDown, setSilent, setSprinting, setSwimming, setTicksFrozen, setUUID, setViewScale, setXRot, setYBodyRot, setYHeadRot, setYRot, shouldBeSaved, shouldBlockExplode, shouldInformAdmins, shouldRender, shouldRenderAtSqrDistance, shouldShowName, showVehicleHealth, skipAttackInteraction, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnAtLocation, spawnSprintParticle, startRiding, startRiding, startSeenByPlayer, stopRiding, stopSeenByPlayer, syncPacketPositionCodec, teleportTo, teleportToWithTicket, thunderHit, toString, touchingUnloadedChunk, trackingPosition, tryCheckInsideBlocks, turn, unRide, unsetRemoved, updateDynamicGameEventListener, updateFluidHeightAndDoFluidPushing, updateFluidHeightAndDoFluidPushing, updateInWaterStateAndDoFluidPushing, updateSwimming, wasKilledMethods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCapsMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.minecraft.commands.CommandSource
alwaysAcceptsMethods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider
getCapability, getCapabilityMethods inherited from interface net.minecraftforge.common.extensions.IForgeEntity
canBeRiddenUnderFluidType, canFluidExtinguish, canHydrateInFluidType, canRiderInteract, canStartSwimming, canSwimInFluidType, deserializeNBT, getClassification, getFluidFallDistanceModifier, getFluidMotionScale, getParts, getPickedResult, getSoundFromFluidType, getStepHeight, hasCustomOutlineRendering, isEyeInFluidType, isInFluidType, isInFluidType, isInFluidType, isMultipartEntity, isPushedByFluid, serializeNBT, shouldRiderSitMethods inherited from interface me.desht.pneumaticcraft.api.semiblock.ISemiBlock
getDisplayName
-
Field Details
-
NBT_INVISIBLE
- See Also:
-
NBT_MATCH_NBT
- See Also:
-
NBT_MATCH_DURABILITY
- See Also:
-
NBT_MATCH_MODID
- See Also:
-
NBT_ITEM_WHITELIST
- See Also:
-
NBT_FLUID_WHITELIST
- See Also:
-
NBT_ITEM_FILTERS
- See Also:
-
NBT_FLUID_FILTERS
- See Also:
-
FLUID_FILTER_SLOTS
public static final int FLUID_FILTER_SLOTS- See Also:
-
-
Method Details
-
fromItemStack
public static AbstractLogisticsFrameEntity fromItemStack(net.minecraft.world.level.Level world, @Nullable net.minecraft.world.entity.player.Player player, @Nonnull net.minecraft.world.item.ItemStack stack) Get a logistics entity from the given item stack.- Parameters:
world- the playerplayer- the player (may be null; this could be used for tooltip purposes)stack- the item stack- Returns:
- a logistics entity
-
defineSynchedData
protected void defineSynchedData()- Overrides:
defineSynchedDatain classAbstractSemiblockEntity
-
canPlace
public boolean canPlace(net.minecraft.core.Direction facing) Description copied from interface:ISemiBlockCheck if this semiblock can be placed here.- Specified by:
canPlacein interfaceISemiBlock- Parameters:
facing- the side of the block against which it is placed- Returns:
- true if the semiblock is placeable here, false otherwise
-
canStay
public boolean canStay()Description copied from class:AbstractSemiblockEntityCheck if this semiblock can remain here.- Overrides:
canStayin classAbstractSemiblockEntity- Returns:
- true if the semiblock can stay, false if it should be dropped
-
calculateBlockBounds
protected net.minecraft.world.phys.AABB calculateBlockBounds()Description copied from class:AbstractSemiblockEntityGet the bounding box for this entity, which by default is the bounding box of the block we're on. This should be in a 0->1 coordinate space; it will be offset by the block's blockpos to get the actual entity bounding box as returned byEntity.getBoundingBox().- Overrides:
calculateBlockBoundsin classAbstractSemiblockEntity- Returns:
- a bounding box
-
getColor
public abstract int getColor()Description copied from interface:ISemiBlockA color in ARGB format. Used for various things: GUI/item/render tinting, as well as TOP colour coding.- Specified by:
getColorin interfaceISemiBlock- Returns:
- a color for this semiblock type
-
getTexture
public abstract net.minecraft.resources.ResourceLocation getTexture() -
getPriority
public abstract int getPriority() -
getContainerType
protected abstract net.minecraft.world.inventory.MenuType<?> getContainerType() -
shouldProvideTo
public boolean shouldProvideTo(int level) -
isSemiblockInvisible
public boolean isSemiblockInvisible()Not to be confused withEntity.isInvisible()- Returns:
- true if the semiblock should fade out when not holding a logistics item
-
setSemiblockInvisible
public void setSemiblockInvisible(boolean invisible) -
getSide
public net.minecraft.core.Direction getSide()- Specified by:
getSidein interfaceIDirectionalSemiblock
-
setSide
public void setSide(net.minecraft.core.Direction facing) - Specified by:
setSidein interfaceIDirectionalSemiblock
-
getAlpha
public int getAlpha() -
isItemWhiteList
public boolean isItemWhiteList() -
setItemWhiteList
public void setItemWhiteList(boolean whiteList) -
isFluidWhiteList
public boolean isFluidWhiteList() -
setFluidWhiteList
public void setFluidWhiteList(boolean whiteList) -
isMatchNBT
public boolean isMatchNBT() -
setMatchNBT
public void setMatchNBT(boolean matchNBT) -
isMatchDurability
public boolean isMatchDurability() -
setMatchDurability
public void setMatchDurability(boolean matchDurability) -
isMatchModId
public boolean isMatchModId() -
setMatchModId
public void setMatchModId(boolean matchModId) -
tick
public void tick()Description copied from interface:ISemiBlockImplement tick logic here. Always be sure to callsuper.tick()in subclass overrides!- Specified by:
tickin interfaceISemiBlock- Overrides:
tickin classAbstractSemiblockEntity
-
informIncomingStack
public void informIncomingStack(net.minecraft.world.item.ItemStack stack) -
clearIncomingStack
public void clearIncomingStack(net.minecraft.world.item.ItemStack stack) -
informIncomingStack
public void informIncomingStack(net.minecraftforge.fluids.FluidStack stack) -
clearIncomingStack
public void clearIncomingStack(net.minecraftforge.fluids.FluidStack stack) -
getIncomingFluid
public int getIncomingFluid(net.minecraft.world.level.material.Fluid fluid) -
getIncomingItems
public int getIncomingItems(net.minecraft.world.item.ItemStack stack) -
setItemFilter
public void setItemFilter(int slot, net.minecraft.world.item.ItemStack stack) -
setFluidFilter
public void setFluidFilter(int filterIndex, net.minecraftforge.fluids.FluidStack stack) -
getFluidFilter
public net.minecraftforge.fluids.FluidStack getFluidFilter(int filterIndex) -
getItemFilterHandler
-
readAdditionalSaveData
protected void readAdditionalSaveData(net.minecraft.nbt.CompoundTag tag) - Overrides:
readAdditionalSaveDatain classAbstractSemiblockEntity
-
serializeNBT
public net.minecraft.nbt.CompoundTag serializeNBT(net.minecraft.nbt.CompoundTag tag) Description copied from interface:ISemiBlockWritten to the dropped item (under the "EntityTag" subtag) when the semiblock is broken, to persisted entity data byEntity#writeAdditional(), and displayed by info mods such as TOP or Waila. Use this method rather thanwriteAdditional()for fields that either need to be serialized to the dropped item, or displayed on TOP/Waila.- Specified by:
serializeNBTin interfaceISemiBlock- Overrides:
serializeNBTin classAbstractSemiblockEntity- Parameters:
tag- NBT tag to write data to
-
onPlaced
public void onPlaced(net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack stack, net.minecraft.core.Direction facing) Description copied from interface:ISemiBlockCalled immediately after the semiblock entity has been added to the world.- Specified by:
onPlacedin interfaceISemiBlock- Parameters:
player- player who is placing the semiblockstack- itemstack used to create the entityfacing- the side of the block which was clicked to place the entity
-
canFilterStack
public boolean canFilterStack() -
addTooltip
public void addTooltip(Consumer<net.minecraft.network.chat.Component> curInfo, net.minecraft.world.entity.player.Player player, net.minecraft.nbt.CompoundTag tag, boolean extended) Description copied from interface:ISemiBlockAdd tooltip information for this semiblock. This info is used by info mods such as Waila or TOP.- Specified by:
addTooltipin interfaceISemiBlock- Parameters:
curInfo- the component consumerplayer- the player looking at the entity or itemtag- NBT data as saved byISemiBlock.serializeNBT(CompoundTag)extended- true if extended data should be shown
-
onRightClickWithConfigurator
public boolean onRightClickWithConfigurator(net.minecraft.world.entity.player.Player player, net.minecraft.core.Direction side) Description copied from interface:ISemiBlockCalled when a semiblock is right-clicked with a Logistics Configurator- Specified by:
onRightClickWithConfiguratorin interfaceISemiBlock- Parameters:
player- the playerside- the side of the block being clicked- Returns:
- true if something was done, false if the semiblock doesn't care about being clicked
-
supportsBlacklisting
public boolean supportsBlacklisting() -
writeToBuf
public void writeToBuf(net.minecraft.network.FriendlyByteBuf payload) Description copied from interface:ISemiBlockWrite this semiblock to network buffer for network sync purposes.- Specified by:
writeToBufin interfaceISemiBlock- Overrides:
writeToBufin classAbstractSemiblockEntity- Parameters:
payload- the buffer
-
readFromBuf
public void readFromBuf(net.minecraft.network.FriendlyByteBuf payload) Description copied from interface:ISemiBlockRead this semiblock from network buffer for network sync purposes.- Specified by:
readFromBufin interfaceISemiBlock- Overrides:
readFromBufin classAbstractSemiblockEntity- Parameters:
payload- the buffer
-
isObstructed
public boolean isObstructed(net.minecraft.world.level.pathfinder.PathComputationType pathType)
-