From 7833ab87fffbfd73138b91f774d538a161ab4c5c Mon Sep 17 00:00:00 2001 From: Pahimar Date: Thu, 12 May 2016 21:46:56 -0400 Subject: [PATCH] Work on "better" json serialization of data objects --- .../com/pahimar/ee3/EquivalentExchange3.java | 2 ++ .../ee3/exchange/NewEnergyValueRegistry.java | 35 ++++++++++++++++--- .../NewEnergyValueRegistrySerializer.java | 1 + 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/pahimar/ee3/EquivalentExchange3.java b/src/main/java/com/pahimar/ee3/EquivalentExchange3.java index bd3eef9f..f6ea2aa7 100644 --- a/src/main/java/com/pahimar/ee3/EquivalentExchange3.java +++ b/src/main/java/com/pahimar/ee3/EquivalentExchange3.java @@ -121,6 +121,8 @@ public class EquivalentExchange3 CachedOreDictionary.getInstance(); Abilities.initNotLearnables(); + NewEnergyValueRegistry.INSTANCE.load(); + try { NewEnergyValueRegistry.INSTANCE.save(); } catch (IOException e) { diff --git a/src/main/java/com/pahimar/ee3/exchange/NewEnergyValueRegistry.java b/src/main/java/com/pahimar/ee3/exchange/NewEnergyValueRegistry.java index cc6b211e..ea08ccfb 100644 --- a/src/main/java/com/pahimar/ee3/exchange/NewEnergyValueRegistry.java +++ b/src/main/java/com/pahimar/ee3/exchange/NewEnergyValueRegistry.java @@ -3,14 +3,12 @@ package com.pahimar.ee3.exchange; import com.pahimar.ee3.api.exchange.EnergyValue; import com.pahimar.ee3.util.LogHelper; import com.pahimar.ee3.util.SerializationHelper; +import net.minecraft.init.Items; import net.minecraft.nbt.NBTTagCompound; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; import java.util.Map; import java.util.TreeMap; @@ -28,6 +26,14 @@ public class NewEnergyValueRegistry { private NewEnergyValueRegistry() { preCalculationMappings = new TreeMap<>(); + + // Loading up some dummy values for testing serialization + preCalculationMappings.put(WrappedStack.wrap(Items.apple), new EnergyValue(1)); + preCalculationMappings.put(WrappedStack.wrap(Items.arrow), new EnergyValue(2)); + preCalculationMappings.put(WrappedStack.wrap(Items.baked_potato), new EnergyValue(3)); + preCalculationMappings.put(WrappedStack.wrap(Items.bed), new EnergyValue(4)); + preCalculationMappings.put(WrappedStack.wrap(new OreStack("oreIron")), new EnergyValue(5)); + postCalculationMappings = new TreeMap<>(); } @@ -65,5 +71,26 @@ public class NewEnergyValueRegistry { public void load() { + File file = energyValuesDataFile; + + StringBuilder stringBuilder = new StringBuilder(); + try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) { + + stringBuilder = new StringBuilder(); + String line; + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + String jsonRegistryString = stringBuilder.toString(); + LogHelper.info(jsonRegistryString); + + NewEnergyValueRegistry newEnergyValueRegistry = SerializationHelper.GSON.fromJson(jsonRegistryString, NewEnergyValueRegistry.class); + + LogHelper.info(newEnergyValueRegistry); } } diff --git a/src/main/java/com/pahimar/ee3/util/serialize/NewEnergyValueRegistrySerializer.java b/src/main/java/com/pahimar/ee3/util/serialize/NewEnergyValueRegistrySerializer.java index c8615cdd..14fc1024 100644 --- a/src/main/java/com/pahimar/ee3/util/serialize/NewEnergyValueRegistrySerializer.java +++ b/src/main/java/com/pahimar/ee3/util/serialize/NewEnergyValueRegistrySerializer.java @@ -16,6 +16,7 @@ public class NewEnergyValueRegistrySerializer implements JsonSerializer