diff options
Diffstat (limited to 'src/main')
3 files changed, 127 insertions, 2 deletions
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<String,String> lServerNames = new LinkedHashMap<String,String>(); + private static LinkedHashMap<String,String> internal2= new LinkedHashMap<String,String>(),internal3 = new LinkedHashMap<String,String>(),internal4= new LinkedHashMap<String,String>(); + private static HashMap<String, Property> internal = new HashMap<String, Property>(); + + 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<String, Property> 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<String, String> 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<String, String> 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<String, String> 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<tRecipe.mInputs.length;i++){
if (tRecipe.mOreDictAlt[i] != null) {
@@ -262,12 +273,22 @@ public class GT_MetaTileEntity_Scanner if (count > 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<tRecipe.mFluidInputs.length;i++){
if(tRecipe.mFluidInputs[i]!=null){
s=tRecipe.mFluidInputs[i].getLocalizedName();
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
+ s = GT_Assemblyline_Server.lServerNames.get(tRecipe.mFluidInputs[i].getLocalizedName());
+ if (s==null)
+ s=tRecipe.mFluidInputs[i].getLocalizedName();
+ }
tNBTList.appendTag(new NBTTagString("Input Hatch "+(i+1)+": "+tRecipe.mFluidInputs[i].amount+"L "+s));
}
}
|