Class ContainerAspectSettings
java.lang.Object
net.minecraft.world.inventory.AbstractContainerMenu
org.cyclops.cyclopscore.inventory.container.ContainerExtended
org.cyclops.cyclopscore.inventory.container.InventoryContainer
org.cyclops.integrateddynamics.core.inventory.container.ContainerAspectSettings
- All Implemented Interfaces:
org.cyclops.cyclopscore.inventory.container.button.IContainerButtonClickAcceptorServer<org.cyclops.cyclopscore.inventory.container.ContainerExtended>, org.cyclops.cyclopscore.inventory.IValueNotifiable, org.cyclops.cyclopscore.inventory.IValueNotifier
public class ContainerAspectSettings
extends org.cyclops.cyclopscore.inventory.container.InventoryContainer
Container for aspect settings.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassA variable slot that is only visible when its property is the active property. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final intstatic final intThe position of the variable slot of the active property.static final intFields inherited from class org.cyclops.cyclopscore.inventory.container.InventoryContainer
inventoryFields inherited from class org.cyclops.cyclopscore.inventory.container.ContainerExtended
ITEMBOX, offsetX, offsetY, playerFields inherited from class net.minecraft.world.inventory.AbstractContainerMenu
CARRIED_SLOT_SIZE, containerId, lastSlots, QUICKCRAFT_HEADER_CONTINUE, QUICKCRAFT_HEADER_END, QUICKCRAFT_HEADER_START, QUICKCRAFT_TYPE_CHARITABLE, QUICKCRAFT_TYPE_CLONE, QUICKCRAFT_TYPE_GREEDY, remoteSlots, SLOT_CLICKED_OUTSIDE, SLOT_SIZE, slots, SLOTS_PER_ROW -
Constructor Summary
ConstructorsConstructorDescriptionContainerAspectSettings(int id, net.minecraft.world.entity.player.Inventory playerInventory, net.minecraft.network.FriendlyByteBuf packetBuffer) ContainerAspectSettings(int id, net.minecraft.world.entity.player.Inventory playerInventory, net.minecraft.world.Container inventory, Optional<PartTarget> target, Optional<IPartContainer> partContainer, Optional<IPartType> partType, IAspect<?, ?> aspect) -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected voidbroadcastVariableDrivenValues(IPartState partState) Show the value that the variable of a setting currently produces, so that players can inspect what a variable-driven setting evaluates to.booleanclickMenuButton(net.minecraft.world.entity.player.Player player, int id) intgetEffectivePropertyValue(int index) com.google.common.collect.BiMap<Integer, IAspectPropertyTypeInstance> <T extends IValueType<V>, V extends IValue>
VgetPropertyValue(ValueDeseralizationContext valueDeseralizationContext, IAspectPropertyTypeInstance<T, V> property) net.minecraft.network.chat.ComponentgetPropertyVariableError(int index) protected intprotected voidbooleanisPropertyVariableDriven(int index) booleanisPropertyVariableFilled(int index) voidonUpdate(int valueId, net.minecraft.nbt.CompoundTag value) protected static IAspect<?, ?> readAspect(net.minecraft.network.FriendlyByteBuf packetBuffer) voidremoved(net.minecraft.world.entity.player.Player player) voidPersist any changes to the variable slots into the part state.protected voidsaveVariablesInventory(IPartState partState) voidsetActivePropertyIndex(int index) Indicate which property is currently being configured, so that its variable slot becomes visible.voidsetValue(ValueDeseralizationContext valueDeseralizationContext, IAspectPropertyTypeInstance property, IValue value) booleanstillValid(net.minecraft.world.entity.player.Player player) Methods inherited from class org.cyclops.cyclopscore.inventory.container.InventoryContainer
getContainerInventory, isAssertInventorySizeMethods inherited from class org.cyclops.cyclopscore.inventory.container.ContainerExtended
addInventory, addPlayerArmorInventory, addPlayerInventory, addSlot, addSlotListener, adjustPhantomSlot, clicked, createNewSlot, fillPhantomSlot, getHolderLookupProvider, getNextValueId, getPlayerIInventory, getSlotRange, getSlotStart, getValue, getValueIds, getValueNotifiableType, moveItemStackTo, onButtonClick, putButtonAction, quickMoveStack, registerSyncedVariable, resetQuickCraft, setGuiValueListener, setSlotPosX, setSlotPosY, setValueMethods inherited from class net.minecraft.world.inventory.AbstractContainerMenu
addDataSlot, addDataSlots, addInventoryExtendedSlots, addInventoryHotbarSlots, addStandardInventorySlots, broadcastFullState, canDragTo, canItemQuickReplace, canTakeItemForPickAll, checkContainerDataCount, checkContainerSize, clearContainer, findSlot, getCarried, getItems, getQuickcraftHeader, getQuickcraftMask, getQuickCraftPlaceCount, getQuickcraftType, getRedstoneSignalFromBlockEntity, getRedstoneSignalFromContainer, getSlot, getStateId, getType, incrementStateId, initializeContents, isValidQuickcraftType, isValidSlotIndex, removeSlotListener, resumeRemoteUpdates, sendAllDataToRemote, setCarried, setData, setItem, setRemoteCarried, setRemoteSlot, setRemoteSlotUnsafe, setSelectedBundleItemIndex, setSynchronizer, slotsChanged, stillValid, suppressRemoteUpdates, transferState
-
Field Details
-
BUTTON_EXIT
- See Also:
-
BUTTON_SETTINGS
public static final int BUTTON_SETTINGS- See Also:
-
VARIABLE_SLOT_X
public static final int VARIABLE_SLOT_XThe position of the variable slot of the active property.- See Also:
-
VARIABLE_SLOT_Y
public static final int VARIABLE_SLOT_Y- See Also:
-
-
Constructor Details
-
ContainerAspectSettings
public ContainerAspectSettings(int id, net.minecraft.world.entity.player.Inventory playerInventory, net.minecraft.network.FriendlyByteBuf packetBuffer) -
ContainerAspectSettings
public ContainerAspectSettings(int id, net.minecraft.world.entity.player.Inventory playerInventory, net.minecraft.world.Container inventory, Optional<PartTarget> target, Optional<IPartContainer> partContainer, Optional<IPartType> partType, IAspect<?, ?> aspect)
-
-
Method Details
-
readAspect
-
getPropertyIds
-
getPropertyTypes
-
getPartType
-
getAspect
-
getTarget
-
getActivePropertyIndex
public int getActivePropertyIndex()- Returns:
- The index of the property whose variable slot is currently visible.
-
setActivePropertyIndex
public void setActivePropertyIndex(int index) Indicate which property is currently being configured, so that its variable slot becomes visible. This must be called on both sides, as the client informs the server viaclickMenuButton(Player, int).- Parameters:
index- The property index.
-
clickMenuButton
public boolean clickMenuButton(net.minecraft.world.entity.player.Player player, int id) - Overrides:
clickMenuButtonin classnet.minecraft.world.inventory.AbstractContainerMenu
-
isPropertyVariableFilled
public boolean isPropertyVariableFilled(int index) - Parameters:
index- A property index.- Returns:
- If the variable slot of the given property holds a variable.
-
getPropertyVariableError
@Nullable public net.minecraft.network.chat.Component getPropertyVariableError(int index) - Parameters:
index- A property index.- Returns:
- The error inside the variable slot of the given property, or null if there is no error.
-
initializeValues
protected void initializeValues()- Overrides:
initializeValuesin classorg.cyclops.cyclopscore.inventory.container.ContainerExtended
-
setValue
public void setValue(ValueDeseralizationContext valueDeseralizationContext, IAspectPropertyTypeInstance property, IValue value) -
getPartState
-
stillValid
public boolean stillValid(net.minecraft.world.entity.player.Player player) - Overrides:
stillValidin classorg.cyclops.cyclopscore.inventory.container.InventoryContainer
-
getSizeInventory
protected int getSizeInventory()- Overrides:
getSizeInventoryin classorg.cyclops.cyclopscore.inventory.container.InventoryContainer
-
getPropertyValue
public <T extends IValueType<V>, V extends IValue> V getPropertyValue(ValueDeseralizationContext valueDeseralizationContext, IAspectPropertyTypeInstance<T, V> property) -
broadcastChanges
public void broadcastChanges()- Overrides:
broadcastChangesin classorg.cyclops.cyclopscore.inventory.container.ContainerExtended
-
broadcastVariableDrivenValues
Show the value that the variable of a setting currently produces, so that players can inspect what a variable-driven setting evaluates to. Settings that are not driven by a variable keep showing their statically configured value.- Parameters:
partState- The part state.
-
getEffectivePropertyValue
- Parameters:
index- A property index.- Returns:
- The value that is shown for the given property: the value that its variable produces if it is driven by one, and the statically configured value otherwise. This can only be called server-side.
-
isPropertyVariableDriven
public boolean isPropertyVariableDriven(int index) - Parameters:
index- A property index.- Returns:
- If the value of the given property is currently determined by its variable.
-
removed
public void removed(net.minecraft.world.entity.player.Player player) - Overrides:
removedin classorg.cyclops.cyclopscore.inventory.container.InventoryContainer
-
saveVariablesInventory
public void saveVariablesInventory()Persist any changes to the variable slots into the part state. -
saveVariablesInventory
-
onUpdate
public void onUpdate(int valueId, net.minecraft.nbt.CompoundTag value) - Specified by:
onUpdatein interfaceorg.cyclops.cyclopscore.inventory.IValueNotifiable- Overrides:
onUpdatein classorg.cyclops.cyclopscore.inventory.container.ContainerExtended
-