Skip to content

Commit 3f6b66c

Browse files
authored
fix drum/crate drops (#5073)
1 parent fa49b23 commit 3f6b66c

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

docs/content/Development/Data-Sync-System/Migrating-From-LDLib-SyncData.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,10 @@ Client sync fields **do not** automatically detect changes. When changing a clie
6969
- `@RequireRerender` -> `@RerenderOnChanged`
7070
- `@Persisted` -> `@SaveField`
7171
- `@UpdateListener` -> `@ClientFieldChangeListener` on listener method.
72-
- `@DropSaved` - Removed, make machines implement `IDropSaveMachine` instead
72+
- `@DropSaved` - Replaced with overriding the `loadFromItem`/`saveToItem` methods on `MetaMachine`
7373
- `@ReadOnlyManaged` and `@LazyManaged` See usage docs for instructions on complex sync objects
7474

75+
7576
### Other changes
7677

7778
- `saveCustomPersistedData` & `loadCustomPersistedData` methods, and serialization of custom data types - See `ValueTransformer<T>` and `ValueTransformers` classes.

src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ public CrateMachine(BlockEntityCreationInfo info, Material material, int invento
5252
this.inventory = attachTrait(new NotifiableItemStackHandler(inventorySize, IO.BOTH));
5353
}
5454

55+
@Override
56+
public void onLoad() {
57+
super.onLoad();
58+
inventory.shouldDropInventoryInWorld(!isTaped);
59+
}
60+
5561
@Override
5662
public MachineUIPanelBuilder getPanelBuilder(PosGuiData data, PanelSyncManager syncManager, UISettings settings) {
5763
return MachineUIPanelBuilder.panelBuilder(this).addTitleBar(false);

src/main/java/com/gregtechceu/gtceu/common/machine/storage/DrumMachine.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ public void saveToItem(CompoundTag tag, boolean clone) {
102102

103103
@Override
104104
public void loadFromItem(CompoundTag tag) {
105-
if (!tag.contains("Fluid")) {
105+
if (tag.contains("Fluid")) {
106+
stored = FluidStack.loadFluidStackFromNBT(tag.getCompound("Fluid"));
107+
} else {
106108
stored = FluidStack.EMPTY;
107109
}
108110
// "stored" may not be same as cache (due to item's fluid cap). we should update it.

0 commit comments

Comments
 (0)