From 8ce5ad6bd06413f3c9148cd586fef03a17fb920d Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Fri, 15 Jun 2018 20:49:20 +0200 Subject: fix for Assline books --- .../machines/basic/GT_MetaTileEntity_Scanner.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index e102dde306..33e89a3faa 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -218,9 +218,11 @@ public class GT_MetaTileEntity_Scanner for(GT_Recipe.GT_Recipe_AssemblyLine tRecipe:GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes){ if(GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)){ + String s = tRecipe.mOutput.getDisplayName(); + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); - GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], tRecipe.mOutput.getDisplayName()+" Construction Data"); - + GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], s+" Construction Data"); + NBTTagCompound tNBT = this.mOutputItems[0].getTagCompound(); if (tNBT == null) { tNBT = new NBTTagCompound(); @@ -244,25 +246,29 @@ public class GT_MetaTileEntity_Scanner } tNBT.setString("author", "Assembling Line Recipe Generator"); NBTTagList tNBTList = new NBTTagList(); - tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+tRecipe.mOutput.getDisplayName()+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20))); + s=tRecipe.mOutput.getDisplayName(); + tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+s+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20))); for(int i=0;i 0) tNBTList.appendTag(new NBTTagString(tBuilder.toString())); } else if(tRecipe.mInputs[i]!=null){ - tNBTList.appendTag(new NBTTagString("Input Bus "+(i+1)+": "+tRecipe.mInputs[i].stackSize+" "+tRecipe.mInputs[i].getDisplayName())); + s=tRecipe.mInputs[i].getDisplayName(); + tNBTList.appendTag(new NBTTagString("Input Bus "+(i+1)+": "+tRecipe.mInputs[i].stackSize+" "+s)); } } for(int i=0;i Date: Sat, 16 Jun 2018 17:45:37 +0200 Subject: fixed SMP Assembly Line book issures. --- src/main/java/gregtech/GT_Mod.java | 6 +- .../gregtech/api/util/GT_Assemblyline_Server.java | 100 +++++++++++++++++++++ .../machines/basic/GT_MetaTileEntity_Scanner.java | 23 ++++- 3 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 src/main/java/gregtech/api/util/GT_Assemblyline_Server.java diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index ea43588016..95273f6d7e 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -585,7 +585,11 @@ public class GT_Mod implements IGT_Mod { for (Runnable tRunnable : GregTech_API.sAfterGTPreload) { tRunnable.run(); } - } catch (Throwable e) {e.printStackTrace(GT_Log.err);} + } catch (Throwable e) { + e.printStackTrace(GT_Log.err); + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) + GT_Assemblyline_Server.fillMap(aEvent); } @Mod.EventHandler diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java new file mode 100644 index 0000000000..e08cb0ea8b --- /dev/null +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -0,0 +1,100 @@ +package gregtech.api.util; + +import java.io.File; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import cpw.mods.fml.common.FMLLog; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import gregtech.api.GregTech_API; +import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +public class GT_Assemblyline_Server { + + + public static LinkedHashMap lServerNames = new LinkedHashMap(); + private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(); + private static HashMap internal = new HashMap(); + + public static void fillMap(FMLPreInitializationEvent aEvent) { + + String s = new String(aEvent.getModConfigurationDirectory().getAbsolutePath()); + s = s.substring(0, aEvent.getModConfigurationDirectory().getAbsolutePath().length()-6); + s = s + "GregTech.lang"; + File f = new File(s); + s = ""; + Configuration conf = new Configuration(f); + + ConfigCategory cat = conf.getCategory("languagefile"); + internal.putAll(cat.getValues()); + for (Map.Entry entry : internal.entrySet()) + { + s=entry.getValue().getString().replaceAll("%", ""); + /*if (s.contains("material")&&!entry.getKey().contains("metaitem")) + lServerNames.put(entry.getKey(), entry.getKey()); + else */ + if (entry.getKey().contains("metaitem")&&s.contains("material")) + internal2.put(entry.getKey(), s); + else if (entry.getKey().contains("blockmachines")&&s.contains("material")) + internal3.put(entry.getKey(), s); + else if (entry.getKey().contains("blockmetal")&&s.contains("material")) + internal4.put(entry.getKey(), s); + else + lServerNames.put(entry.getKey(), s); + } + for (Map.Entry entry : internal2.entrySet()) { + if (entry.getKey().contains("name")) { + int i = Integer.parseInt(entry.getKey().substring("gt.metaitem.01.".length(), entry.getKey().length()-".name".length())); + i=i%1000; + lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString())); + } + } + for (Map.Entry entry : internal3.entrySet()) { + if (entry.getKey().contains("cable")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.cable.".length(), entry.getKey().length()-".01.name".length()))); + else if (entry.getKey().contains("gt_frame_")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_frame_".length(), entry.getKey().length()-".name".length()))); + else if(entry.getKey().contains("gt_pipe_")) { + if( + !entry.getKey().contains("_huge") && + !entry.getKey().contains("_large") && + !entry.getKey().contains("_nonuple")&& + !entry.getKey().contains("_quadruple")&& + !entry.getKey().contains("_small")&& + !entry.getKey().contains("_tiny") + ) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-".name".length()))); + else if (entry.getKey().contains("_huge")||entry.getKey().contains("_small")||entry.getKey().contains("_tiny")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_tiny.name".length()))); + else if (entry.getKey().contains("_large")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_large.name".length()))); + else if (entry.getKey().contains("_nonuple")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_nonuple.name".length()))); + else if (entry.getKey().contains("_quadruple")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_quadruple.name".length()))); + } + else if (entry.getKey().contains("wire")) + lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.wire.".length(), entry.getKey().length()-".01.name".length()))); + else + lServerNames.put(entry.getKey(), entry.getValue()); + } + for (Map.Entry entry : internal4.entrySet()) { + if (entry.getValue().contains("blockores")) { + int i = Integer.parseInt(entry.getKey().substring("gt.blockores.".length(), entry.getKey().length()-".name".length())); + i=i%1000; + lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString())); + } + } + + internal = null; + internal2 = null; + internal3 = null; + internal4 = null; + } + +} diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 33e89a3faa..e77a9253ca 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -1,5 +1,6 @@ package gregtech.common.tileentities.machines.basic; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IIndividual; @@ -16,6 +17,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.objects.ItemData; +import gregtech.api.util.GT_Assemblyline_Server; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -219,7 +221,11 @@ public class GT_MetaTileEntity_Scanner if(GT_Utility.areStacksEqual(tRecipe.mResearchItem, aStack, true)){ String s = tRecipe.mOutput.getDisplayName(); - + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); + } this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], s+" Construction Data"); @@ -247,6 +253,11 @@ public class GT_MetaTileEntity_Scanner tNBT.setString("author", "Assembling Line Recipe Generator"); NBTTagList tNBTList = new NBTTagList(); s=tRecipe.mOutput.getDisplayName(); + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); + } tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+s+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20))); for(int i=0;i 0) tNBTList.appendTag(new NBTTagString(tBuilder.toString())); } else if(tRecipe.mInputs[i]!=null){ s=tRecipe.mInputs[i].getDisplayName(); + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { + s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mInputs[i].getDisplayName()); + if (s==null) + s=tRecipe.mInputs[i].getDisplayName(); + } tNBTList.appendTag(new NBTTagString("Input Bus "+(i+1)+": "+tRecipe.mInputs[i].stackSize+" "+s)); } } for(int i=0;i Date: Sat, 16 Jun 2018 17:51:29 +0200 Subject: fixed minor sorting issure --- src/main/java/gregtech/api/util/GT_Assemblyline_Server.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java index e08cb0ea8b..5ede304298 100644 --- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -69,9 +69,9 @@ public class GT_Assemblyline_Server { !entry.getKey().contains("_tiny") ) lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-".name".length()))); - else if (entry.getKey().contains("_huge")||entry.getKey().contains("_small")||entry.getKey().contains("_tiny")) + else if (entry.getKey().contains("_huge")||entry.getKey().contains("_tiny")) lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_tiny.name".length()))); - else if (entry.getKey().contains("_large")) + else if (entry.getKey().contains("_large")||entry.getKey().contains("_small")) lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_large.name".length()))); else if (entry.getKey().contains("_nonuple")) lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_nonuple.name".length()))); -- cgit From dac1e2ac021991d1f73e64eea33ffcfb6737f27e Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Sat, 16 Jun 2018 22:00:03 +0200 Subject: fixed Multiple items on one page --- .../gregtech/api/util/GT_Assemblyline_Server.java | 2 +- .../machines/basic/GT_MetaTileEntity_Scanner.java | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java index 5ede304298..712699b760 100644 --- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -96,5 +96,5 @@ public class GT_Assemblyline_Server { internal3 = null; internal4 = null; } - + } diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index e77a9253ca..4fa4059108 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -223,8 +223,8 @@ public class GT_MetaTileEntity_Scanner String s = tRecipe.mOutput.getDisplayName(); if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); - if (s==null) - s=tRecipe.mOutput.getDisplayName(); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); } this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], s+" Construction Data"); @@ -255,8 +255,8 @@ public class GT_MetaTileEntity_Scanner s=tRecipe.mOutput.getDisplayName(); if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mOutput.getDisplayName()); - if (s==null) - s=tRecipe.mOutput.getDisplayName(); + if (s==null) + s=tRecipe.mOutput.getDisplayName(); } tNBTList.appendTag(new NBTTagString("Construction plan for "+tRecipe.mOutput.stackSize+" "+s+". Needed EU/t: "+tRecipe.mEUt+" Production time: "+(tRecipe.mDuration/20))); for(int i=0;i Date: Sun, 17 Jun 2018 00:04:45 +0200 Subject: added GT BlockOres, BlockMetals, BlockGems for Assemblyline --- .../gregtech/api/util/GT_Assemblyline_Server.java | 245 ++++++++++++++++++++- 1 file changed, 240 insertions(+), 5 deletions(-) diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java index 712699b760..d5a47621ac 100644 --- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -10,6 +10,7 @@ import com.google.common.collect.ImmutableMap; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; @@ -18,7 +19,7 @@ public class GT_Assemblyline_Server { public static LinkedHashMap lServerNames = new LinkedHashMap(); - private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(); + private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(),internal5= new LinkedHashMap(); private static HashMap internal = new HashMap(); public static void fillMap(FMLPreInitializationEvent aEvent) { @@ -35,15 +36,14 @@ public class GT_Assemblyline_Server { for (Map.Entry entry : internal.entrySet()) { s=entry.getValue().getString().replaceAll("%", ""); - /*if (s.contains("material")&&!entry.getKey().contains("metaitem")) - lServerNames.put(entry.getKey(), entry.getKey()); - else */ if (entry.getKey().contains("metaitem")&&s.contains("material")) internal2.put(entry.getKey(), s); else if (entry.getKey().contains("blockmachines")&&s.contains("material")) internal3.put(entry.getKey(), s); - else if (entry.getKey().contains("blockmetal")&&s.contains("material")) + else if (entry.getKey().contains("blockores")&&s.contains("material")) internal4.put(entry.getKey(), s); + else if ((entry.getKey().contains("blockmetal")||entry.getKey().contains("blockgem"))&&s.contains("material")) + internal5.put(entry.getKey(), s); else lServerNames.put(entry.getKey(), s); } @@ -91,6 +91,241 @@ public class GT_Assemblyline_Server { } } + for (Map.Entry entry : internal5.entrySet()) { + if(entry.getKey().contains("blockmetal")) { + Materials[] mMats = null; + String t = entry.getKey().substring("gt.blockmetal".length()); + t=t.substring(0,1); + int i = Integer.parseInt(t); + switch (i) { + case 1: + mMats=new Materials[]{ + Materials.Adamantium, + Materials.Aluminium, + Materials.Americium, + Materials.AnnealedCopper, + Materials.Antimony, + Materials.Arsenic, + Materials.AstralSilver, + Materials.BatteryAlloy, + Materials.Beryllium, + Materials.Bismuth, + Materials.BismuthBronze, + Materials.BlackBronze, + Materials.BlackSteel, + Materials.BlueAlloy, + Materials.BlueSteel, + Materials.Brass + }; + break; + case 2: + mMats=new Materials[]{ + Materials.Bronze, + Materials.Caesium, + Materials.Cerium, + Materials.Chrome, + Materials.ChromiumDioxide, + Materials.Cobalt, + Materials.CobaltBrass, + Materials.Copper, + Materials.Cupronickel, + Materials.DamascusSteel, + Materials.DarkIron, + Materials.DeepIron, + Materials.Desh, + Materials.Duranium, + Materials.Dysprosium, + Materials.Electrum + }; + break; + case 3: + mMats=new Materials[]{ + Materials.ElectrumFlux, + Materials.Enderium, + Materials.Erbium, + Materials.Europium, + Materials.FierySteel, + Materials.Gadolinium, + Materials.Gallium, + Materials.Holmium, + Materials.HSLA, + Materials.Indium, + Materials.InfusedGold, + Materials.Invar, + Materials.Iridium, + Materials.IronMagnetic, + Materials.IronWood, + Materials.Kanthal + }; + break; + case 4: + mMats=new Materials[]{ + Materials.Knightmetal, + Materials.Lanthanum, + Materials.Lead, + Materials.Lutetium, + Materials.Magnalium, + Materials.Magnesium, + Materials.Manganese, + Materials.MeteoricIron, + Materials.MeteoricSteel, + Materials.Trinium, + Materials.Mithril, + Materials.Molybdenum, + Materials.Naquadah, + Materials.NaquadahAlloy, + Materials.NaquadahEnriched, + Materials.Naquadria + }; + break; + case 5: + mMats=new Materials[]{ + Materials.Neodymium, + Materials.NeodymiumMagnetic, + Materials.Neutronium, + Materials.Nichrome, + Materials.Nickel, + Materials.Niobium, + Materials.NiobiumNitride, + Materials.NiobiumTitanium, + Materials.Osmiridium, + Materials.Osmium, + Materials.Palladium, + Materials.PigIron, + Materials.Platinum, + Materials.Plutonium, + Materials.Plutonium241, + Materials.Praseodymium + }; + break; + case 6: + mMats=new Materials[]{ + Materials.Promethium, + Materials.RedAlloy, + Materials.RedSteel, + Materials.RoseGold, + Materials.Rubidium, + Materials.Samarium, + Materials.Scandium, + Materials.ShadowIron, + Materials.ShadowSteel, + Materials.Silicon, + Materials.Silver, + Materials.SolderingAlloy, + Materials.StainlessSteel, + Materials.Steel, + Materials.SteelMagnetic, + Materials.SterlingSilver + }; + break; + case 7: + mMats=new Materials[]{ + Materials.Sunnarium, + Materials.Tantalum, + Materials.Tellurium, + Materials.Terbium, + Materials.Thaumium, + Materials.Thorium, + Materials.Thulium, + Materials.Tin, + Materials.TinAlloy, + Materials.Titanium, + Materials.Tritanium, + Materials.Tungsten, + Materials.TungstenSteel, + Materials.Ultimet, + Materials.Uranium, + Materials.Uranium235 + }; + break; + case 8: + mMats=new Materials[]{ + Materials.Vanadium, + Materials.VanadiumGallium, + Materials.WroughtIron, + Materials.Ytterbium, + Materials.Yttrium, + Materials.YttriumBariumCuprate, + Materials.Zinc, + Materials.TungstenCarbide, + Materials.VanadiumSteel, + Materials.HSSG, + Materials.HSSE, + Materials.HSSS, + Materials.Steeleaf, + Materials.Ichorium + }; + break; + } + t = entry.getKey().substring("gt.blockmetal1.".length(), entry.getKey().length()-".name".length()); + i = Integer.parseInt(t); + lServerNames.put(entry.getKey(),"Block of "+mMats[i].toString()); + mMats = null; + } + else if(entry.getKey().contains("blockgem")) { + Materials[] mMats = null; + String t = entry.getKey().substring("gt.blockgem".length()); + t=t.substring(0,1); + int i = Integer.parseInt(t); + switch (i) { + case 1: + mMats=new Materials[]{ + Materials.InfusedAir, + Materials.Amber, + Materials.Amethyst, + Materials.InfusedWater, + Materials.BlueTopaz, + Materials.CertusQuartz, + Materials.Dilithium, + Materials.EnderEye, + Materials.EnderPearl, + Materials.FoolsRuby, + Materials.Force, + Materials.Forcicium, + Materials.Forcillium, + Materials.GreenSapphire, + Materials.InfusedFire, + Materials.Jasper + }; + break; + case 2: + mMats=new Materials[]{ + Materials.Lazurite, + Materials.Lignite, + Materials.Monazite, + Materials.Niter, + Materials.Olivine, + Materials.Opal, + Materials.InfusedOrder, + Materials.InfusedEntropy, + Materials.Phosphorus, + Materials.Quartzite, + Materials.GarnetRed, + Materials.Ruby, + Materials.Sapphire, + Materials.Sodalite, + Materials.Tanzanite, + Materials.InfusedEarth + }; + break; + case 3: + mMats=new Materials[]{ + Materials.Topaz, + Materials.Vinteum, + Materials.GarnetYellow, + Materials.NetherStar, + Materials.Charcoal, + Materials.Blaze + }; + break; + } + t = entry.getKey().substring("gt.blockgem1.".length(), entry.getKey().length()-".name".length()); + i = Integer.parseInt(t); + lServerNames.put(entry.getKey(),"Block of "+mMats[i].toString()); + mMats = null; + } + } + internal = null; internal2 = null; internal3 = null; -- cgit From a59d2fbaed3057b8f5ad4961ee65b4ef7a5e0693 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Mon, 18 Jun 2018 02:35:47 +0200 Subject: fix for #2152 fix for reused DataSticks keep parts of old NBTTagCompound fixed blockores and removed one hashmap --- .../java/gregtech/api/util/GT_Assemblyline_Server.java | 18 +++++++----------- .../machines/basic/GT_MetaTileEntity_Scanner.java | 10 +++++++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java index d5a47621ac..13bac88f91 100644 --- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java +++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java @@ -19,7 +19,7 @@ public class GT_Assemblyline_Server { public static LinkedHashMap lServerNames = new LinkedHashMap(); - private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(),internal5= new LinkedHashMap(); + private static LinkedHashMap internal2= new LinkedHashMap(),internal3 = new LinkedHashMap(),internal4= new LinkedHashMap(); private static HashMap internal = new HashMap(); public static void fillMap(FMLPreInitializationEvent aEvent) { @@ -36,14 +36,12 @@ public class GT_Assemblyline_Server { for (Map.Entry entry : internal.entrySet()) { s=entry.getValue().getString().replaceAll("%", ""); - if (entry.getKey().contains("metaitem")&&s.contains("material")) + if (entry.getKey().contains("metaitem") && s.contains("material")) internal2.put(entry.getKey(), s); - else if (entry.getKey().contains("blockmachines")&&s.contains("material")) + else if (entry.getKey().contains("blockmachines") && s.contains("material")) internal3.put(entry.getKey(), s); - else if (entry.getKey().contains("blockores")&&s.contains("material")) + else if ((entry.getKey().contains("blockores")||(entry.getKey().contains("blockmetal")||entry.getKey().contains("blockgem"))) && s.contains("material")) internal4.put(entry.getKey(), s); - else if ((entry.getKey().contains("blockmetal")||entry.getKey().contains("blockgem"))&&s.contains("material")) - internal5.put(entry.getKey(), s); else lServerNames.put(entry.getKey(), s); } @@ -84,15 +82,13 @@ public class GT_Assemblyline_Server { lServerNames.put(entry.getKey(), entry.getValue()); } for (Map.Entry entry : internal4.entrySet()) { - if (entry.getValue().contains("blockores")) { + if (entry.getKey().contains("blockores")) { int i = Integer.parseInt(entry.getKey().substring("gt.blockores.".length(), entry.getKey().length()-".name".length())); i=i%1000; lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString())); } - } - - for (Map.Entry entry : internal5.entrySet()) { - if(entry.getKey().contains("blockmetal")) { + + else if(entry.getKey().contains("blockmetal")) { Materials[] mMats = null; String t = entry.getKey().substring("gt.blockmetal".length()); t=t.substring(0,1); diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java index 4fa4059108..c5dfb5483f 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java @@ -105,8 +105,8 @@ public class GT_MetaTileEntity_Scanner } if (ItemList.Tool_DataOrb.isStackEqual(getSpecialSlot(), false, true)) { if (ItemList.Tool_DataOrb.isStackEqual(aStack, false, true)) { - aStack.stackSize -= 1; - this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{ItemList.Tool_DataStick.get(1, new Object[]{})}); + aStack.stackSize -= 1; + this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); calculateOverclockedNess(30,512); //In case recipe is too OP for that machine if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1) @@ -227,12 +227,16 @@ public class GT_MetaTileEntity_Scanner s=tRecipe.mOutput.getDisplayName(); } this.mOutputItems[0] = GT_Utility.copyAmount(1L, new Object[]{getSpecialSlot()}); + + //remove possible old NBTTagCompound + this.mOutputItems[0].setTagCompound(new NBTTagCompound()); GT_Utility.ItemNBT.setBookTitle(this.mOutputItems[0], s+" Construction Data"); NBTTagCompound tNBT = this.mOutputItems[0].getTagCompound(); if (tNBT == null) { tNBT = new NBTTagCompound(); - } + } + tNBT.setTag("output", tRecipe.mOutput.writeToNBT(new NBTTagCompound())); tNBT.setInteger("time", tRecipe.mDuration); tNBT.setInteger("eu", tRecipe.mEUt); -- cgit