Class JukeboxBlockEntity
java.lang.Object
net.neoforged.neoforge.attachment.AttachmentHolder
net.minecraft.world.level.block.entity.BlockEntity
net.minecraft.world.level.block.entity.JukeboxBlockEntity
- All Implemented Interfaces:
Iterable<ItemStack>,DebugValueSource,Clearable,Container,ContainerSingleItem,ContainerSingleItem.BlockContainerSingleItem,IAttachmentHolder,ContainerExtension,IBlockEntityExtension
public class JukeboxBlockEntity
extends BlockEntity
implements ContainerSingleItem.BlockContainerSingleItem
-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraft.world.level.block.entity.BlockEntity
BlockEntity.BlockEntityPathElementNested classes/interfaces inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
AttachmentHolder.AsFieldNested classes/interfaces inherited from interface net.minecraft.world.Container
Container.ContainerIteratorNested classes/interfaces inherited from interface net.minecraft.world.ticks.ContainerSingleItem
ContainerSingleItem.BlockContainerSingleItemNested classes/interfaces inherited from interface net.minecraft.util.debug.DebugValueSource
DebugValueSource.Registration, DebugValueSource.ValueGetter<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ItemStackprivate final RootCommitJournalprivate final JukeboxSongPlayerstatic final Stringstatic final StringFields inherited from class net.minecraft.world.level.block.entity.BlockEntity
level, remove, worldPositionFields inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
ATTACHMENTS_NBT_KEYFields inherited from interface net.minecraft.world.Container
DEFAULT_DISTANCE_BUFFER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancanPlaceItem(int p_273369_, ItemStack p_273689_) Returnstrueif automation is allowed to insert the given stack (ignoring stack size) into the given slot.booleancanTakeItem(Container p_273497_, int p_273168_, ItemStack p_273785_) Returnstrueif the given stack can be extracted into the target inventory.intintprivate voidprotected voidloadAdditional(ValueInput p_422647_) private voidnotifyItemChangedInJukebox(boolean pHasRecord) voidvoidonTransfer(int slot, int amountChange, TransactionContext transaction) Perform additional logic during the transaction, immediately after a successful transfer (i.e.voidvoidpreRemoveSideEffects(BlockPos p_394607_, BlockState p_393961_) protected voidsaveAdditional(ValueOutput p_421534_) voidAn extension ofContainer.setItem(int, ItemStack)that allows non-transactional side-effects to be skipped.voidvoidsetSongItemWithoutPlaying(ItemStack pStack) voidsetTheItem(ItemStack p_304781_) splitTheItem(int p_304604_) static voidtick(Level pLevel, BlockPos pPos, BlockState pState, JukeboxBlockEntity pJukebox) voidMethods inherited from class net.minecraft.world.level.block.entity.BlockEntity
addEntityType, applyComponents, applyComponentsFromItemStack, applyImplicitComponents, clearRemoved, collectComponents, collectImplicitComponents, components, fillCrashReportCategory, getBlockPos, getBlockState, getLevel, getNameForReporting, getPersistentData, getPosFromTag, getType, getUpdatePacket, getUpdateTag, hasLevel, isRemoved, isValidBlockState, loadCustomOnly, loadStatic, loadWithComponents, parseCustomNameSafe, problemPath, registerDebugValues, removeComponentsFromTag, removeData, saveCustomOnly, saveCustomOnly, saveWithFullMetadata, saveWithFullMetadata, saveWithId, saveWithoutMetadata, saveWithoutMetadata, setBlockState, setChanged, setChanged, setComponents, setData, setLevel, syncData, triggerEventMethods inherited from class net.neoforged.neoforge.attachment.AttachmentHolder
deserializeAttachments, getData, getExistingDataOrNull, hasAttachments, hasData, serializeAttachmentsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.world.Container
countItem, getEntitiesWithContainerOpen, getMaxStackSize, hasAnyMatching, hasAnyOf, iterator, setChanged, startOpen, stopOpenMethods inherited from interface net.minecraft.world.ticks.ContainerSingleItem
clearContent, getContainerSize, getItem, isEmpty, removeItem, removeItemNoUpdate, removeTheItem, setItemMethods inherited from interface net.minecraft.world.ticks.ContainerSingleItem.BlockContainerSingleItem
stillValidMethods inherited from interface net.neoforged.neoforge.attachment.IAttachmentHolder
getData, getExistingData, getExistingData, getExistingDataOrNull, hasData, removeData, setData, syncDataMethods inherited from interface net.neoforged.neoforge.common.extensions.IBlockEntityExtension
getModelData, handleUpdateTag, hasCustomOutlineRendering, invalidateCapabilities, onChunkUnloaded, onDataPacket, onLoad, requestModelDataUpdateMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
SONG_ITEM_TAG_ID
- See Also:
-
TICKS_SINCE_SONG_STARTED_TAG_ID
- See Also:
-
item
-
jukeboxSongPlayer
-
itemChangedJournal
-
-
Constructor Details
-
JukeboxBlockEntity
-
-
Method Details
-
getSongPlayer
-
onSongChanged
public void onSongChanged() -
notifyItemChangedInJukebox
private void notifyItemChangedInJukebox(boolean pHasRecord) -
popOutTheItem
public void popOutTheItem() -
tick
public static void tick(Level pLevel, BlockPos pPos, BlockState pState, JukeboxBlockEntity pJukebox) -
getComparatorOutput
public int getComparatorOutput() -
loadAdditional
- Overrides:
loadAdditionalin classBlockEntity
-
saveAdditional
- Overrides:
saveAdditionalin classBlockEntity
-
getTheItem
- Specified by:
getTheItemin interfaceContainerSingleItem
-
splitTheItem
- Specified by:
splitTheItemin interfaceContainerSingleItem
-
onTransfer
Description copied from interface:ContainerExtensionPerform additional logic during the transaction, immediately after a successful transfer (i.e. insert or extract with result > 0). Any logic performed by this method should be fully transactional, and support being rolled back. In other words, the transaction is still ongoing.- Specified by:
onTransferin interfaceContainerExtension- Parameters:
amountChange- If positive, the amount of items that were just inserted into this slot. If negative, minus the amount of items that were just extracted from this slot.
-
setItem
Description copied from interface:ContainerExtensionAn extension ofContainer.setItem(int, ItemStack)that allows non-transactional side-effects to be skipped. Non-transactional side-effects include for example callingsetChangedor making changes to the world.- Specified by:
setItemin interfaceContainerExtension- Parameters:
insideTransaction- Whentrue, non-transactional actions should be deferred. Whenfalse, non-transactional actions can be performed immediately.- See Also:
-
setTheItem
- Specified by:
setTheItemin interfaceContainerSingleItem
-
itemChanged
private void itemChanged() -
setRemoved
public void setRemoved()- Overrides:
setRemovedin classBlockEntity
-
getMaxStackSize
public int getMaxStackSize()- Specified by:
getMaxStackSizein interfaceContainer
-
getContainerBlockEntity
- Specified by:
getContainerBlockEntityin interfaceContainerSingleItem.BlockContainerSingleItem
-
canPlaceItem
Description copied from interface:ContainerReturnstrueif automation is allowed to insert the given stack (ignoring stack size) into the given slot. For guis use Slot.isItemValid- Specified by:
canPlaceItemin interfaceContainer
-
canTakeItem
Description copied from interface:ContainerReturnstrueif the given stack can be extracted into the target inventory.- Specified by:
canTakeItemin interfaceContainer- Parameters:
p_273497_- the container into which the item should be extractedp_273168_- the slot from which to extract the itemp_273785_- the item to extract- Returns:
trueif the given stack can be extracted into the target inventory
-
preRemoveSideEffects
- Overrides:
preRemoveSideEffectsin classBlockEntity
-
setSongItemWithoutPlaying
-
tryForcePlaySong
public void tryForcePlaySong()
-