From e434ca824e70dfc308f36928a9335309ae84ced0 Mon Sep 17 00:00:00 2001 From: Lanse Date: Sat, 21 Nov 2020 20:07:11 +0100 Subject: [PATCH] Started with some Serialization --- .../api/android/module/AndroidModule.java | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hrznstudio/matteroverdrive/api/android/module/AndroidModule.java b/src/main/java/com/hrznstudio/matteroverdrive/api/android/module/AndroidModule.java index d7b7e09..3e0b0c2 100644 --- a/src/main/java/com/hrznstudio/matteroverdrive/api/android/module/AndroidModule.java +++ b/src/main/java/com/hrznstudio/matteroverdrive/api/android/module/AndroidModule.java @@ -10,12 +10,13 @@ import net.minecraft.util.Util; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; +import net.minecraftforge.common.util.INBTSerializable; import net.minecraftforge.registries.ForgeRegistryEntry; import javax.annotation.Nonnull; import java.util.List; -public abstract class AndroidModule extends ForgeRegistryEntry { +public abstract class AndroidModule extends ForgeRegistryEntry implements INBTSerializable { private final int maxTier; private final int minTier; @@ -26,22 +27,27 @@ public abstract class AndroidModule extends ForgeRegistryEntry { private List tooltip; private int currentTier; + public static final String CURRENT_TIER = "currentTier"; + public AndroidModule() { this.maxTier = 1; this.minTier = 0; this.shouldAllowStackingModules = false; + this.currentTier = this.minTier; } public AndroidModule(int maxTier) { this.maxTier = maxTier; this.minTier = 0; this.shouldAllowStackingModules = true; + this.currentTier = this.minTier; } - public AndroidModule(int maxTier, int minTier) { + public AndroidModule(int maxTier, int minTier, int initTier) { this.maxTier = maxTier; this.minTier = minTier; this.shouldAllowStackingModules = true; + this.currentTier = initTier; } /** @@ -153,4 +159,31 @@ public int getTierInRange(int level) { public int getCurrentTier() { return currentTier; } + + /** + * @param currentTier Returns the current Tier of the installed Module + */ + public void setCurrentTier(int currentTier) { + this.currentTier = currentTier; + } + + /** + * @return Returns the Serialized Data of the Module + */ + @Override + public CompoundNBT serializeNBT() { + CompoundNBT nbt = new CompoundNBT(); + nbt.putInt(CURRENT_TIER, this.getCurrentTier()); + return nbt; + } + + /** + * Deserializes the Data from NBT to actual data the Module can use. + * + * @param nbt The serialized Data of the Module + */ + @Override + public void deserializeNBT(CompoundNBT nbt) { + this.setCurrentTier(nbt.getInt(CURRENT_TIER)); + } }