aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/GT_Mod.java6
-rw-r--r--src/main/java/gregtech/api/util/GT_Assemblyline_Server.java335
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java46
3 files changed, 380 insertions, 7 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..d5a47621ac
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
@@ -0,0 +1,335 @@
+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 gregtech.api.enums.Materials;
+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>(),internal5= 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 (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("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);
+ }
+ 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("_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")||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())));
+ 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()));
+ }
+ }
+
+ for (Map.Entry<String, String> 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;
+ 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 e102dde306..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
@@ -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;
@@ -218,9 +220,15 @@ 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();
+ 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], 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 +252,51 @@ 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();
+ 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) {
int count = 0;
StringBuilder tBuilder = new StringBuilder("Input Bus "+(i+1)+": ");
for (ItemStack tStack : tRecipe.mOreDictAlt[i]) {
if (tStack != null) {
- tBuilder.append((count == 0 ? "" : "\nOr ") + tStack.stackSize+" "+tStack.getDisplayName());
+ s=tStack.getDisplayName();
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
+ s=GT_Assemblyline_Server.lServerNames.get(tStack.getDisplayName());
+ if (s==null)
+ s=tStack.getDisplayName();
+ }
+
+
+ tBuilder.append((count == 0 ? "" : "\nOr ") + tStack.stackSize+" "+s);
count++;
}
}
if (count > 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();
+ 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){
- tNBTList.appendTag(new NBTTagString("Input Hatch "+(i+1)+": "+tRecipe.mFluidInputs[i].amount+"L "+tRecipe.mFluidInputs[i].getLocalizedName()));
+ 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));
}
}
tNBT.setTag("pages", tNBTList);