Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
77becee
convert IValueTransformer to abstract class
gustovafing Jan 22, 2026
4f09453
reorganise files
gustovafing Jan 22, 2026
5eb99f8
update main transformer code
gustovafing Jan 22, 2026
98ab6ed
add generic transformers for registries and codecs
gustovafing Jan 22, 2026
0612a2b
cleanup the ClassSyncData class
gustovafing Jan 23, 2026
fd79c6e
rename field
gustovafing Jan 23, 2026
307c01a
add transformer context record
gustovafing Jan 23, 2026
9004d17
remove unneeded value transformer function
gustovafing Jan 23, 2026
4ff9eea
implement generic handling for value transformers
gustovafing Jan 23, 2026
367f457
fix up generic transformer
gustovafing Jan 23, 2026
8115fc4
more jdoc & spotless
gustovafing Jan 23, 2026
160fa55
switch to fast collections
gustovafing Jan 23, 2026
8ea6922
remove custom data field annotations
gustovafing Jan 23, 2026
762bf14
docs update
gustovafing Jan 23, 2026
d6d08bb
fix varhandle bug
gustovafing Jan 23, 2026
16e3ad6
fix collection transformer bug
gustovafing Jan 23, 2026
30d16e4
remove interface from custom fluid tank
gustovafing Jan 24, 2026
4a40981
spotless
gustovafing Jan 24, 2026
1c0ee19
Merge branch '1.20.1-v8.0.0' into gus/syncsystem-fixes
gustovafing Jan 25, 2026
1c1200d
spotless and annotations
gustovafing Jan 26, 2026
7ffb85a
remove unneeded assignment
gustovafing Jan 26, 2026
614c2eb
fix cover bug
gustovafing Jan 26, 2026
d46ff4a
Merge branch '1.20.1-v8.0.0' into gus/syncsystem-fixes
gustovafing Jan 26, 2026
c658137
better error handling
gustovafing Jan 26, 2026
6fbdaaa
switch get material call
gustovafing Jan 26, 2026
bae3247
spotless
gustovafing Jan 26, 2026
bb46f3e
fix null field name
gustovafing Jan 27, 2026
cda3638
Update ObjectArrayTransformer.java
gustovafing Jan 27, 2026
6274aab
Update ListTransformer.java
gustovafing Jan 27, 2026
de4a60f
Update SetTransformer.java
gustovafing Jan 27, 2026
540fcc3
oops
gustovafing Jan 27, 2026
4a17ea1
spotless
gustovafing Jan 27, 2026
e963ab0
fix
gustovafing Jan 27, 2026
da227bf
american english
gustovafing Jan 28, 2026
905a279
Update src/main/java/com/gregtechceu/gtceu/api/machine/trait/RecipeLo…
gustovafing Jan 28, 2026
72a38f5
more english
gustovafing Jan 28, 2026
071f793
Merge branch 'gus/syncsystem-fixes' of https://github.com/GregTechCEu…
gustovafing Jan 28, 2026
aaaeda1
Update src/main/java/com/gregtechceu/gtceu/common/machine/electric/Hu…
gustovafing Jan 28, 2026
f30fdcb
minor fixes
gustovafing Jan 28, 2026
04f225b
Update src/main/java/com/gregtechceu/gtceu/syncsystem/ClassSyncData.java
gustovafing Jan 28, 2026
20d953b
docs
gustovafing Jan 28, 2026
0bc1d97
Merge branch 'gus/syncsystem-fixes' of https://github.com/GregTechCEu…
gustovafing Jan 28, 2026
42e13b7
Update src/main/java/com/gregtechceu/gtceu/syncsystem/ClassSyncData.java
gustovafing Jan 28, 2026
26b75e1
move field sync data to its own class
gustovafing Jan 28, 2026
be6cae7
cover transformer changes
gustovafing Jan 28, 2026
5868e14
spotless
gustovafing Jan 28, 2026
7143ed3
extract simple class transformer
gustovafing Jan 28, 2026
ec01054
switch field sync data from map to set
gustovafing Jan 28, 2026
d57aaf5
fix nested generic support
gustovafing Jan 28, 2026
eb5432d
add a log message when deserialising a null map k/v
gustovafing Jan 28, 2026
df07d52
fix blank save key
gustovafing Jan 29, 2026
fc16a64
fix generic type handling
gustovafing Jan 29, 2026
79566d4
switch to using normal forge update packet
gustovafing Jan 29, 2026
f5c7268
switch fluid tank transformer
gustovafing Jan 29, 2026
c1911b3
minor formatting changes
gustovafing Jan 29, 2026
c5e2b26
formatting
gustovafing Jan 29, 2026
9314def
reorganise files
gustovafing Jan 31, 2026
60d65da
remove broken imports
gustovafing Jan 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions docs/content/Development/Data-Sync-System/Annotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,32 +58,4 @@ public boolean isWorkingEnabled = true;
public void isWorkingChanged() {
setRenderState(getRenderState().setValue(GTMachineModelProperties.IS_WORKING_ENABLED, isWorkingEnabled));
}
```

### `@FieldDataModifier` and `@CustomDataField`



The `@FieldDataModifier`annotation defines custom processing to be performed on the NBT for a field, e.g. for compatibility reasons.

The `@CustomDataField`annotation defines a field with a type too complex to be serialised using the normal system. Custom data fields must have exactly one load modifier and one data modifier.

Field data modifiers on non-custom fields will be applied *after* standard serialisation/deserialisation, and will be called with an argument containing the current tag.

```java
@CustomDataField
@SaveField
public VeryComplexType myVeryComplexValue = new VeryComplexType();

@FieldDataModifier(fieldName="myVeryComplexValue", target=FieldDataModifier.MODIFY_TARGET.LOAD_NBT)
public void loadVeryComplexValue(CompoundTag tag) {
// Process tag here.
myVeryComplexValue = new VeryComplexType();
}

@FieldDataModifier(fieldName="myVeryComplexValue", target=FieldDataModifier.MODIFY_TARGET.SAVE_NBT)
public CompoundTag saveVeryComplexValue(CompoundTag tag, boolean isSendingToClient) {
// Save data here.
return tag;
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ Client sync fields **do not** automatically detect changes. When changing a clie

### Other changes

- `saveCustomPersistedData` & `loadCustomPersistedData` methods: Use `@CustomDataModifier` & `@FieldDataModifier`
- `saveCustomPersistedData` & `loadCustomPersistedData` methods, and serialization of custom data types - See `ValueTransformer<T>` and `ValueTransformers` classes.
65 changes: 35 additions & 30 deletions docs/content/Development/Data-Sync-System/Usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,41 +58,46 @@ The following field types are supported by default:

### Adding support for additional types

To add support for an additional type, call `ValueTransformers.registerClassTransformer(Class<?> cls, IValueTransformer<?> transformer)` or `ValueTransformers.registerInterfaceTransformer(Class<?> cls, IValueTransformer<?> transformer)`
The `ValueTransformer<T>` abstract class defines how a value of type `T` should be serialized.

The `IValueTransformer<T>` interface defines how a value of type `T` should be serialised.
To add support for an additional type, call `ValueTransformers.registerTransformer(Class<T> cls, ValueTransformer<T> transformer)` or `ValueTransformers.registerTransformerSupplier(Class<T> cls, Supplier<ValueTransformer<T>> func)`

Additionally, fields can be explicitly directed to use a specific value transformer:
```java
public interface IValueTransformer<T> {

// If this type cannot be instanced purely from a serialised tag.
// All complex type typically have mustProvideObject true
default boolean mustProvideObject() {
return false;
}

// A method for serialising a value into a tag
// Called when serialising a value to be sent to the client
default Tag serializeClientSyncNBT(@Nullable T value, ISyncManaged holder) {
return serializeNBT(value, holder);
/**
* Example from HullMachine.java. This example shows serialization of an AE2 class which may or may not be loaded at runtime.
*/

@SaveField(nbtKey = "grid_node")
private final Object gridNodeHost;

private static class GridNodeHostTransformer implements ValueTransformer<Object> {

@Override
public Tag serializeNBT(Object value, TransformerContext<Object> context) {
if (GTCEu.Mods.isAE2Loaded() &&
(context.currentValue()) instanceof IGridConnectedBlockEntity connectedBlockEntity) {
var compound = new CompoundTag();
connectedBlockEntity.getMainNode().saveToNBT(compound);
return compound;
}

// A method for deserialising a value from a tag
// Called when deserialising a value on the client.
// If mustProvideObject == true, currentVal is the currently saved value.
default T deserializeClientNBT(Tag tag, ISyncManaged holder, @Nullable T currentVal) {
return deserializeNBT(tag, holder, currentVal);
return new CompoundTag();
}

@Override
public @Nullable Object deserializeNBT(Tag tag, TransformerContext<Object> context) {
if (GTCEu.Mods.isAE2Loaded() &&
context.currentValue() instanceof IGridConnectedBlockEntity connectedBlockEntity &&
tag instanceof CompoundTag c) {
connectedBlockEntity.getMainNode().loadFromNBT(c);
}
return null;
}
}


// A method for serialising a value into a tag.
// The holder param is the object this sync value is attached to
Tag serializeNBT(T value, ISyncManaged holder);

// A method for deserialising a value from a tag
// If mustProvideObject == true, currentVal is the currently saved value.
T deserializeNBT(Tag tag, ISyncManaged holder, @Nullable T currentVal);
static {
ClassSyncData.getClassData(HullMachine.class).setCustomTransformerForField("gridNodeHost",
new GridNodeHostTransformer());
}
```

Some types may be too complex to be processed using this system. For more complex NBT interactions, use the `@FieldDataModifier` and `@CustomDataField` annotations.
```
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition;
import com.gregtechceu.gtceu.api.machine.feature.*;
import com.gregtechceu.gtceu.api.machine.trait.feature.IInteractionTrait;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.common.data.GTItems;
import com.gregtechceu.gtceu.common.machine.owner.MachineOwner;
import com.gregtechceu.gtceu.syncsystem.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.utils.GTUtil;

import net.minecraft.MethodsReturnNonnullByDefault;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
import com.gregtechceu.gtceu.api.pipenet.IPipeType;
import com.gregtechceu.gtceu.api.pipenet.LevelPipeNet;
import com.gregtechceu.gtceu.api.pipenet.PipeNet;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.client.model.PipeModel;
import com.gregtechceu.gtceu.client.renderer.block.PipeBlockRenderer;
import com.gregtechceu.gtceu.common.data.GTItems;
import com.gregtechceu.gtceu.common.data.GTMaterialBlocks;
import com.gregtechceu.gtceu.common.item.CoverPlaceBehavior;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.data.recipe.VanillaRecipeHelper;
import com.gregtechceu.gtceu.syncsystem.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.utils.GTUtil;

import com.lowdragmc.lowdraglib.client.renderer.IBlockRendererProvider;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.gregtechceu.gtceu.api.blockentity;

import com.gregtechceu.gtceu.GTCEu;
import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;

import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
import com.gregtechceu.gtceu.api.item.tool.IToolGridHighlight;
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
import com.gregtechceu.gtceu.api.pipenet.*;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.common.data.GTMaterialBlocks;
import com.gregtechceu.gtceu.common.data.GTMaterials;
import com.gregtechceu.gtceu.syncsystem.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.syncsystem.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.utils.GTUtil;

import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import com.gregtechceu.gtceu.api.cover.CoverDefinition;
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
import com.gregtechceu.gtceu.api.registry.GTRegistries;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.utils.GTUtil;

import net.minecraft.core.BlockPos;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/gregtechceu/gtceu/api/cover/CoverBehavior.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
import com.gregtechceu.gtceu.api.item.tool.GTToolType;
import com.gregtechceu.gtceu.api.item.tool.IToolGridHighlight;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.api.sync_system.SyncDataHolder;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.client.renderer.cover.ICoverRenderer;
import com.gregtechceu.gtceu.client.renderer.cover.IDynamicCoverRenderer;
import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.syncsystem.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.syncsystem.SyncDataHolder;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;

import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import com.gregtechceu.gtceu.api.gui.widget.SlotWidget;
import com.gregtechceu.gtceu.api.machine.MachineCoverContainer;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;
import com.gregtechceu.gtceu.api.sync_system.SyncDataHolder;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.transfer.item.CustomItemStackHandler;
import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.syncsystem.SyncDataHolder;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;

import com.lowdragmc.lowdraglib.gui.texture.GuiTextureGroup;
import com.lowdragmc.lowdraglib.gui.widget.Widget;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.gregtechceu.gtceu.api.cover.filter;

import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;

import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ public interface IMaterialRegistryManager {
*/
Material getMaterial(String name);

Material getMaterial(ResourceLocation resourceLocation);

ResourceLocation getKey(Material material);

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
import com.gregtechceu.gtceu.api.capability.ICoverable;
import com.gregtechceu.gtceu.api.cover.CoverBehavior;
import com.gregtechceu.gtceu.api.cover.CoverDefinition;
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;
import com.gregtechceu.gtceu.api.sync_system.SyncDataHolder;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.syncsystem.ISyncManaged;
import com.gregtechceu.gtceu.syncsystem.SyncDataHolder;
import com.gregtechceu.gtceu.syncsystem.annotations.*;

import net.minecraft.core.Direction;
import net.minecraft.world.phys.shapes.VoxelShape;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/gregtechceu/gtceu/api/machine/MetaMachine.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@
import com.gregtechceu.gtceu.api.machine.trait.feature.IRenderingTrait;
import com.gregtechceu.gtceu.api.misc.*;
import com.gregtechceu.gtceu.api.pattern.util.RelativeDirection;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.api.sync_system.SyncDataHolder;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.transfer.fluid.IFluidHandlerModifiable;
import com.gregtechceu.gtceu.client.model.IBlockEntityRendererBakedModel;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
Expand All @@ -39,11 +44,6 @@
import com.gregtechceu.gtceu.common.item.tool.behavior.ToolModeSwitchBehavior;
import com.gregtechceu.gtceu.common.machine.owner.MachineOwner;
import com.gregtechceu.gtceu.common.machine.owner.PlayerOwner;
import com.gregtechceu.gtceu.syncsystem.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.syncsystem.SyncDataHolder;
import com.gregtechceu.gtceu.syncsystem.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.utils.GTUtil;

import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
import com.gregtechceu.gtceu.api.machine.trait.NotifiableItemStackHandler;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
import com.gregtechceu.gtceu.api.recipe.ui.GTRecipeTypeUI;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.transfer.item.CustomItemStackHandler;
import com.gregtechceu.gtceu.common.item.IntCircuitBehaviour;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.data.lang.LangHandler;
import com.gregtechceu.gtceu.syncsystem.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.utils.GTTransferUtils;
import com.gregtechceu.gtceu.utils.ISubscription;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import com.gregtechceu.gtceu.api.machine.feature.IExplosionMachine;
import com.gregtechceu.gtceu.api.machine.feature.ITieredMachine;
import com.gregtechceu.gtceu.api.machine.trait.NotifiableEnergyContainer;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.config.ConfigHolder;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;

import com.lowdragmc.lowdraglib.gui.texture.IGuiTexture;
import com.lowdragmc.lowdraglib.gui.texture.ProgressTexture;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import com.gregtechceu.gtceu.api.machine.feature.*;
import com.gregtechceu.gtceu.api.machine.trait.*;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.utils.GTUtil;
import com.gregtechceu.gtceu.utils.ISubscription;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties;
import com.gregtechceu.gtceu.api.pattern.MultiblockState;
import com.gregtechceu.gtceu.api.pattern.MultiblockWorldSavedData;
import com.gregtechceu.gtceu.api.sync_system.annotations.ClientFieldChangeListener;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
import com.gregtechceu.gtceu.syncsystem.annotations.ClientFieldChangeListener;
import com.gregtechceu.gtceu.syncsystem.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;

import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.gregtechceu.gtceu.api.blockentity.BlockEntityCreationInfo;
import com.gregtechceu.gtceu.api.machine.feature.IOverclockMachine;
import com.gregtechceu.gtceu.api.machine.feature.ITieredMachine;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;

import net.minecraft.MethodsReturnNonnullByDefault;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
import com.gregtechceu.gtceu.api.misc.EnergyContainerList;
import com.gregtechceu.gtceu.api.recipe.modifier.RecipeModifierList;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.common.data.GTRecipeModifiers;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.utils.GTUtil;

import com.lowdragmc.lowdraglib.gui.modular.ModularUI;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.utils.ISubscription;

import net.minecraft.MethodsReturnNonnullByDefault;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties;
import com.gregtechceu.gtceu.api.machine.trait.IRecipeHandlerTrait;
import com.gregtechceu.gtceu.api.machine.trait.RecipeHandlerList;
import com.gregtechceu.gtceu.api.sync_system.annotations.ClientFieldChangeListener;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
import com.gregtechceu.gtceu.syncsystem.annotations.ClientFieldChangeListener;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;

import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import com.gregtechceu.gtceu.api.blockentity.BlockEntityCreationInfo;
import com.gregtechceu.gtceu.api.capability.IControllable;
import com.gregtechceu.gtceu.api.capability.recipe.IO;
import com.gregtechceu.gtceu.syncsystem.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;
import com.gregtechceu.gtceu.syncsystem.annotations.SyncToClient;
import com.gregtechceu.gtceu.api.sync_system.annotations.RerenderOnChanged;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;

import net.minecraft.MethodsReturnNonnullByDefault;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
import com.gregtechceu.gtceu.api.recipe.RecipeHelper;
import com.gregtechceu.gtceu.api.recipe.modifier.ModifierFunction;
import com.gregtechceu.gtceu.api.recipe.modifier.RecipeModifier;
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
import com.gregtechceu.gtceu.common.recipe.condition.VentCondition;
import com.gregtechceu.gtceu.syncsystem.annotations.SaveField;

import com.lowdragmc.lowdraglib.gui.modular.ModularUI;
import com.lowdragmc.lowdraglib.gui.widget.LabelWidget;
Expand Down
Loading