Stuff and things

This commit is contained in:
pahimar 2015-01-29 23:38:10 -05:00
parent b2581ac65c
commit 80b718db37
4 changed files with 38 additions and 24 deletions

View file

@ -8,7 +8,6 @@ import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.handler.*;
import com.pahimar.ee3.init.*;
import com.pahimar.ee3.knowledge.SkillRegistry;
import com.pahimar.ee3.knowledge.TransmutationKnowledge;
import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.proxy.IProxy;
import com.pahimar.ee3.recipe.RecipeRegistry;
@ -16,7 +15,6 @@ import com.pahimar.ee3.recipe.RecipesAludel;
import com.pahimar.ee3.reference.Messages;
import com.pahimar.ee3.reference.Reference;
import com.pahimar.ee3.util.LogHelper;
import com.pahimar.ee3.util.NBTHelper;
import com.pahimar.ee3.util.SerializationHelper;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
@ -26,8 +24,6 @@ import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import java.io.File;
@ -110,14 +106,6 @@ public class EquivalentExchange3
{
RecipeRegistry.getInstance().registerVanillaRecipes();
RecipesAludel.registerRecipes();
TransmutationKnowledge transmutationKnowledge = new TransmutationKnowledge();
transmutationKnowledge.learnTransmutation(Items.apple);
transmutationKnowledge.learnTransmutation(Items.arrow);
transmutationKnowledge.learnTransmutation(Items.baked_potato);
ItemStack testStack = new ItemStack(Items.blaze_powder);
NBTHelper.setString(testStack, "test_string", "This is a test string");
transmutationKnowledge.learnTransmutation(testStack);
LogHelper.info(transmutationKnowledge.toJson());
}
@EventHandler
@ -125,6 +113,7 @@ public class EquivalentExchange3
{
if (EnergyValueRegistry.getInstance().getShouldRegenNextRestart())
{
// TODO Use the SerializationHelper to save this and reduce File objects
File dataDirectory = new File(FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getSaveHandler().getWorldDirectory(), "data" + File.separator + Reference.MOD_ID.toLowerCase());
File energyValueRegistryFile = new File(dataDirectory, SerializationHelper.getModListMD5() + "." + Reference.MOD_ID.toLowerCase());

View file

@ -1,6 +1,5 @@
package com.pahimar.ee3.knowledge;
import com.pahimar.ee3.util.LogHelper;
import com.pahimar.ee3.util.SerializationHelper;
import net.minecraft.entity.player.EntityPlayer;
@ -46,13 +45,12 @@ public class KnowledgeRegistry
public void loadPlayerFromDisk(EntityPlayer entityPlayer)
{
TransmutationKnowledge playerTransmutationKnowledge = new TransmutationKnowledge();
LogHelper.error(entityPlayer.getUniqueID());
File playerKnowledgeFile = new File(knowledgeDirectory, entityPlayer.getUniqueID().toString() + ".transmutation");
LogHelper.info(playerKnowledgeFile.getAbsolutePath());
File playerKnowledgeFile = new File(knowledgeDirectory, entityPlayer.getUniqueID().toString() + ".json");
if (playerKnowledgeFile.exists() && playerKnowledgeFile.isFile())
{
// TODO Load from disk as JSON and not as NBT
playerTransmutationKnowledge = TransmutationKnowledge.readTransmutationKnowledgeFromNBT(SerializationHelper.readNBTFromFile(playerKnowledgeFile));
}
@ -61,6 +59,7 @@ public class KnowledgeRegistry
public void savePlayerKnowledgeToDisk(EntityPlayer entityPlayer)
{
// TODO Save to disk as JSON and not as NBT
SerializationHelper.writeNBTToFile(knowledgeDirectory, entityPlayer.getUniqueID().toString() + ".json", playerKnowledgeMap.get(entityPlayer.getUniqueID()));
}
}

View file

@ -12,11 +12,10 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.Collection;
import java.util.Set;
import java.util.TreeSet;
import java.util.*;
// TODO Think up of an interface for predictable loading/saving of JSON files for use in SerializationHelper
// TODO While I'm here, also remember to modify the build script to upload to CurseForge
public class TransmutationKnowledge implements INBTTaggable, JsonSerializer<TransmutationKnowledge>, JsonDeserializer<TransmutationKnowledge>
{
private static final Gson jsonSerializer = (new GsonBuilder()).setPrettyPrinting().registerTypeAdapter(TransmutationKnowledge.class, new TransmutationKnowledge()).create();
@ -111,7 +110,6 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer<Tran
{
if (nbtTagCompound != null && nbtTagCompound.hasKey(Names.NBT.ITEM_TRANSMUTATION_KNOWLEDGE))
{
// Read in the ItemStacks in the inventory from NBT
if (nbtTagCompound.hasKey(Names.NBT.ITEM_TRANSMUTATION_KNOWLEDGE))
{
NBTTagList tagList = nbtTagCompound.getTagList(Names.NBT.ITEM_TRANSMUTATION_KNOWLEDGE, 10);
@ -134,7 +132,6 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer<Tran
public void writeToNBT(NBTTagCompound nbtTagCompound)
{
// Write the ItemStacks in the set to NBT
NBTTagList tagList = new NBTTagList();
for (ItemStack itemStack : knownTransmutations)
{
@ -199,7 +196,32 @@ public class TransmutationKnowledge implements INBTTaggable, JsonSerializer<Tran
@Override
public TransmutationKnowledge deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
{
// TODO
if (json.isJsonArray()) {
JsonArray jsonArray = (JsonArray) json;
Set<ItemStack> itemStackSet = new TreeSet<ItemStack>(ItemHelper.comparator);
Iterator<JsonElement> iterator = jsonArray.iterator();
while (iterator.hasNext()) {
JsonElement jsonElement = iterator.next();
if (jsonElement.isJsonObject()) {
JsonItemStack jsonItemStack = jsonSerializer.fromJson(jsonElement, JsonItemStack.class);
ItemStack itemStack = null;
Item item = (Item) Item.itemRegistry.getObject(jsonItemStack.itemName);
if (item != null) {
itemStack = new ItemStack(item, 1, jsonItemStack.itemDamage);
if (jsonItemStack.nbtTagCompound != null) {
itemStack.stackTagCompound = jsonItemStack.nbtTagCompound;
}
}
itemStackSet.add(itemStack);
}
}
return new TransmutationKnowledge(itemStackSet);
}
return null;
}

View file

@ -146,7 +146,11 @@ public class ItemHelper
{
if (itemStack != null)
{
return String.format("%sxitemStack[%s@%s]", itemStack.stackSize, itemStack.getUnlocalizedName(), itemStack.getItemDamage());
if (itemStack.hasTagCompound()) {
return String.format("%sxitemStack[%s@%s:%s]", itemStack.stackSize, itemStack.getUnlocalizedName(), itemStack.getItemDamage(), itemStack.getTagCompound());
} else {
return String.format("%sxitemStack[%s@%s]", itemStack.stackSize, itemStack.getUnlocalizedName(), itemStack.getItemDamage());
}
}
return "null";