diff options
Diffstat (limited to 'src')
6 files changed, 126 insertions, 5 deletions
diff --git a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java index 4704b369ba..a92a5a663d 100644 --- a/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java +++ b/src/main/java/com/github/technus/tectech/loader/ThingsLoader.java @@ -8,6 +8,7 @@ import com.github.technus.tectech.thing.casing.GT_Block_HintTT; import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.thing.item.ConstructibleTriggerItem; import com.github.technus.tectech.thing.item.DebugContainer_EM; +import com.github.technus.tectech.thing.item.DefinitionContainer_EM; import com.github.technus.tectech.thing.item.ParametrizerMemoryCard; import cpw.mods.fml.common.Loader; import openmodularturrets.blocks.turretbases.TurretBaseEM; @@ -36,9 +37,12 @@ public class ThingsLoader implements Runnable { TecTech.Logger.info("TurretBaseEM registered"); } - DebugContainer_EM.run(); ConstructibleTriggerItem.run(); ParametrizerMemoryCard.run(); + TecTech.Logger.info("Useful item registered"); + + DefinitionContainer_EM.run(); + DebugContainer_EM.run(); TecTech.Logger.info("Debug Items registered"); } } diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java index 4f8fa30452..5b18af2bb0 100644 --- a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java +++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java @@ -1,6 +1,5 @@ package com.github.technus.tectech.recipe; -import com.github.technus.tectech.TecTech; import com.github.technus.tectech.auxiliary.TecTechConfig; import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStack; import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap; @@ -212,9 +211,7 @@ public class TT_recipe extends GT_Recipe { try { return mRecipeMap.get(cElementalDefinitionStack.fromNBT(dataHandler.stackTagCompound.getCompoundTag(E_RECIPE_ID))); }catch (Exception e){ - if (TecTechConfig.DEBUG_MODE) - TecTech.Logger.debug("EM INSTANTIATION FAULT"); - TecTech.Logger.debug(e.getMessage()); + if (TecTechConfig.DEBUG_MODE) e.printStackTrace(); return null; } } diff --git a/src/main/java/com/github/technus/tectech/thing/item/DefinitionContainer_EM.java b/src/main/java/com/github/technus/tectech/thing/item/DefinitionContainer_EM.java new file mode 100644 index 0000000000..99535b8e23 --- /dev/null +++ b/src/main/java/com/github/technus/tectech/thing/item/DefinitionContainer_EM.java @@ -0,0 +1,114 @@ +package com.github.technus.tectech.thing.item; + +import com.github.technus.tectech.CommonValues; +import com.github.technus.tectech.auxiliary.TecTechConfig; +import com.github.technus.tectech.elementalMatter.classes.cElementalDefinitionStackMap; +import com.github.technus.tectech.elementalMatter.classes.tElementalException; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import java.util.Collections; +import java.util.List; + +import static com.github.technus.tectech.auxiliary.Reference.MODID; + +/** + * Created by Tec on 15.03.2017. + */ +public class DefinitionContainer_EM extends Item { + public static DefinitionContainer_EM INSTANCE; + + private DefinitionContainer_EM() { + super(); + setMaxStackSize(1); + setUnlocalizedName("em.definitionContainer"); + setTextureName(MODID + ":itemDefinitionContainer"); + } + + //return previous thing + public static cElementalDefinitionStackMap setContent(ItemStack containerItem, cElementalDefinitionStackMap definitions){ + if(containerItem.getItem() instanceof DefinitionContainer_EM) { + NBTTagCompound tNBT = containerItem.stackTagCompound; + if (tNBT == null) tNBT=containerItem.stackTagCompound=new NBTTagCompound(); + + cElementalDefinitionStackMap oldMap=null; + if (tNBT.hasKey("content")) { + try { + oldMap=cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content")); + } catch (tElementalException e) { + if (TecTechConfig.DEBUG_MODE) e.printStackTrace(); + } + } + tNBT.setTag("info", definitions.getInfoNBT()); + tNBT.setTag("content", definitions.toNBT()); + return oldMap; + } + return null; + } + + public static cElementalDefinitionStackMap getContent(ItemStack containerItem){ + if(containerItem.getItem() instanceof DefinitionContainer_EM){ + NBTTagCompound tNBT = containerItem.stackTagCompound; + + if (tNBT == null || !tNBT.hasKey("content")) return null; + try { + return cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content")); + } catch (tElementalException e) { + if (TecTechConfig.DEBUG_MODE) e.printStackTrace(); + } + } + return null; + } + + public static cElementalDefinitionStackMap clearContent(ItemStack containerItem){ + if(containerItem.getItem() instanceof DefinitionContainer_EM){ + NBTTagCompound tNBT = containerItem.stackTagCompound; + if (tNBT == null) return null; + + cElementalDefinitionStackMap oldMap=null; + if (tNBT.hasKey("content")) { + try { + oldMap=cElementalDefinitionStackMap.fromNBT(tNBT.getCompoundTag("content")); + } catch (tElementalException e) { + if (TecTechConfig.DEBUG_MODE) e.printStackTrace(); + } + } + tNBT.removeTag("info"); + tNBT.removeTag("content"); + return oldMap; + } + return null; + } + + @Override + public void addInformation(ItemStack aStack, EntityPlayer ep, List aList, boolean boo) { + aList.add(CommonValues.tecMark); + try { + NBTTagCompound tNBT = aStack.getTagCompound(); + if (tNBT != null && tNBT.hasKey("info")) { + aList.add("Should Contain:"); + Collections.addAll(aList, cElementalDefinitionStackMap.infoFromNBT(tNBT.getCompoundTag("info"))); + } else { + aList.add("Recipe Hint"); + } + } catch (Exception e) { + aList.add("---Unexpected Termination---"); + } + } + + public static void run() { + INSTANCE = new DefinitionContainer_EM(); + GameRegistry.registerItem(INSTANCE, INSTANCE.getUnlocalizedName()); + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + ItemStack that = new ItemStack(this, 1); + that.setTagCompound(new NBTTagCompound()); + list.add(that); + } +} diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang index e272e43eaa..5d041a12e9 100644 --- a/src/main/resources/assets/tectech/lang/en_US.lang +++ b/src/main/resources/assets/tectech/lang/en_US.lang @@ -2,6 +2,7 @@ itemGroup.TecTech=TecTech Interdimensional tile.quantumGlass.name=Quantum Glass tile.quantumStuff.name=Quantum Stuff item.em.debugContainer.name=Debug EM Container +item.em.definitionContainer.name=EM Recipe Hint item.em.debugBuilder.name=Multiblock Machine Blueprint item.em.parametrizerMemoryCard.name=Parametrizer Memory Card diff --git a/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png b/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png Binary files differnew file mode 100644 index 0000000000..173d0c4e6c --- /dev/null +++ b/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png diff --git a/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png.mcmeta b/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png.mcmeta new file mode 100644 index 0000000000..24f863c95e --- /dev/null +++ b/src/main/resources/assets/tectech/textures/items/itemDefinitionContainer.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation":{ + "frametime":3 + } +}
\ No newline at end of file |