aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java9
-rw-r--r--src/main/java/gregtech/api/items/GT_Generic_Item.java11
-rw-r--r--src/main/java/gregtech/api/items/GT_MetaBase_Item.java2
-rw-r--r--src/main/java/gregtech/api/items/GT_Tool_Item.java6
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java3
-rw-r--r--src/main/java/gregtech/api/util/GT_Assemblyline_Server.java16
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java164
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java2
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java3
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Machines.java67
-rw-r--r--src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalChestBase.java13
-rw-r--r--src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java13
-rw-r--r--src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java2
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java6
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_PreLoad.java34
15 files changed, 166 insertions, 185 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java
index 043cd0b763..2e39cd2181 100644
--- a/src/main/java/gregtech/api/GregTech_API.java
+++ b/src/main/java/gregtech/api/GregTech_API.java
@@ -481,8 +481,7 @@ public class GregTech_API {
return new gregtech.api.items.GT_Generic_Item(
aUnlocalized,
aEnglish,
- "Doesn't work as intended, this is a Bug",
- false);
+ "Doesn't work as intended, this is a Bug");
}
/**
@@ -528,8 +527,7 @@ public class GregTech_API {
return new gregtech.api.items.GT_Generic_Item(
aUnlocalized,
aEnglish,
- "Doesn't work as intended, this is a Bug",
- false);
+ "Doesn't work as intended, this is a Bug");
}
/**
@@ -552,8 +550,7 @@ public class GregTech_API {
return new gregtech.api.items.GT_Generic_Item(
aUnlocalized,
aEnglish,
- "Doesn't work as intended, this is a Bug",
- false);
+ "Doesn't work as intended, this is a Bug");
}
/**
diff --git a/src/main/java/gregtech/api/items/GT_Generic_Item.java b/src/main/java/gregtech/api/items/GT_Generic_Item.java
index 4410eccc26..a1e01c92c7 100644
--- a/src/main/java/gregtech/api/items/GT_Generic_Item.java
+++ b/src/main/java/gregtech/api/items/GT_Generic_Item.java
@@ -40,16 +40,11 @@ public class GT_Generic_Item extends Item implements IProjectileItem {
protected IIcon mIcon;
public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip) {
- this(aUnlocalized, aEnglish, aEnglishTooltip, true);
- }
-
- public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip,
- boolean aWriteToolTipIntoLangFile) {
super();
mName = "gt." + aUnlocalized;
GT_LanguageManager.addStringLocalization(mName + ".name", aEnglish);
- if (GT_Utility.isStringValid(aEnglishTooltip)) GT_LanguageManager
- .addStringLocalization(mTooltip = mName + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile);
+ if (GT_Utility.isStringValid(aEnglishTooltip))
+ GT_LanguageManager.addStringLocalization(mTooltip = mName + ".tooltip_main", aEnglishTooltip);
else mTooltip = null;
setCreativeTab(GregTech_API.TAB_GREGTECH);
GameRegistry.registerItem(this, mName, GregTech.ID);
@@ -154,7 +149,7 @@ public class GT_Generic_Item extends Item implements IProjectileItem {
}
public String transItem(String aKey, String aEnglish) {
- return GT_LanguageManager.addStringLocalization("Item_DESCRIPTION_Index_" + aKey, aEnglish, false);
+ return GT_LanguageManager.addStringLocalization("Item_DESCRIPTION_Index_" + aKey, aEnglish);
}
public static class GT_Item_Dispense extends BehaviorProjectileDispense {
diff --git a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
index 8a65fbc841..481c0b5a08 100644
--- a/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
+++ b/src/main/java/gregtech/api/items/GT_MetaBase_Item.java
@@ -46,7 +46,7 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item
* @param aUnlocalized The Unlocalized Name of this Item.
*/
public GT_MetaBase_Item(String aUnlocalized) {
- super(aUnlocalized, "Generated Item", null, false);
+ super(aUnlocalized, "Generated Item", null);
setHasSubtypes(true);
setMaxDamage(0);
}
diff --git a/src/main/java/gregtech/api/items/GT_Tool_Item.java b/src/main/java/gregtech/api/items/GT_Tool_Item.java
index be38896685..9f78bdc3fc 100644
--- a/src/main/java/gregtech/api/items/GT_Tool_Item.java
+++ b/src/main/java/gregtech/api/items/GT_Tool_Item.java
@@ -31,11 +31,7 @@ public class GT_Tool_Item extends GT_Generic_Item {
public GT_Tool_Item(String aUnlocalized, String aEnglish, String aTooltip, int aMaxDamage, int aEntityDamage,
boolean aSwingIfUsed, int aChargedGTID, int aDisChargedGTID, int aToolQuality, float aToolStrength) {
- super(
- aUnlocalized,
- aEnglish,
- aTooltip,
- aTooltip != null && !aTooltip.equals("Doesn't work as intended, this is a Bug"));
+ super(aUnlocalized, aEnglish, aTooltip);
setMaxDamage(aMaxDamage);
setMaxStackSize(1);
setNoRepair();
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
index a5e30fb76c..3392d1ab41 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
@@ -147,8 +147,7 @@ public class MultiTileEntityRegistry {
return null;
}
- GT_LanguageManager
- .addStringLocalization(mNameInternal + "." + aClassContainer.mID + ".name", aLocalised, false);
+ GT_LanguageManager.addStringLocalization(mNameInternal + "." + aClassContainer.mID + ".name", aLocalised);
mRegistry.put(aClassContainer.mID, aClassContainer);
mLastRegisteredID = aClassContainer.mID;
mRegistrations.add(aClassContainer);
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 1881ab015a..4c0348683a 100644
--- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
+++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
@@ -1,6 +1,5 @@
package gregtech.api.util;
-import java.io.File;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -22,24 +21,13 @@ public class GT_Assemblyline_Server {
private static HashMap<String, Property> internal = new HashMap<>();
public static void fillMap(FMLPreInitializationEvent aEvent) {
-
- String s = 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);
+ Configuration conf = GT_LanguageManager.sEnglishFile;
ConfigCategory cat = conf.getCategory("languagefile");
internal.putAll(cat.getValues());
for (Map.Entry<String, Property> entry : internal.entrySet()) {
try {
- s = entry.getValue()
+ String s = entry.getValue()
.getString()
.replaceAll("%", "");
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java
index 2ef251c599..f2c5e2a2d4 100644
--- a/src/main/java/gregtech/api/util/GT_LanguageManager.java
+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java
@@ -19,12 +19,31 @@ import gregtech.api.GregTech_API;
public class GT_LanguageManager {
- public static final HashMap<String, String> TEMPMAP = new HashMap<>(), BUFFERMAP = new HashMap<>(),
- LANGMAP = new HashMap<>();
+ /**
+ * Buffer to reduce memory allocation when injecting data to LanguageRegistry.
+ */
+ private static final HashMap<String, String> TEMPMAP = new HashMap<>();
+ /**
+ * Buffer used when something is trying to add new lang entry while config file is not set up yet.
+ */
+ public static final Map<String, String> BUFFERMAP = new HashMap<>();
+ /**
+ * Map containing all the translation data coming into this class.
+ */
+ private static final Map<String, String> LANGMAP = new HashMap<>();
+ /**
+ * Config file handler bound to GregTech.lang or GregTech_(locale_name).lang. Even though it says English file,
+ * it's not necessarily English, but on system it's always treated as English (as in, "default" language.)
+ */
public static Configuration sEnglishFile;
- public static String sLanguage = "en_US";
- public static boolean sUseEnglishFile = false;
+ /**
+ * If placeholder like %material should be used for writing lang entries to file.
+ */
public static boolean i18nPlaceholder = true;
+ /**
+ * If there's any lang entry that is not found on lang file and waiting to be written.
+ */
+ private static boolean hasUnsavedEntry = false;
// TODO: convert to enum
public static String FACE_ANY = "gt.lang.face.any", FACE_BOTTOM = "gt.lang.face.bottom",
@@ -33,7 +52,10 @@ public class GT_LanguageManager {
public static String[] FACES = { FACE_BOTTOM, FACE_TOP, FACE_LEFT, FACE_FRONT, FACE_RIGHT, FACE_BACK, FACE_NONE };
- private static Map<String, String> stringTranslateLanguageList = null;
+ /**
+ * Map referencing private field of StringTranslate, used by StatCollector. Used to inject lang entries there.
+ */
+ private static final Map<String, String> stringTranslateLanguageList;
static {
try {
@@ -45,88 +67,87 @@ public class GT_LanguageManager {
stringTranslateLanguageList = (Map<String, String>) fieldStringTranslateLanguageList
.get(fieldStringTranslateInstance.get(null));
} catch (Exception e) {
- e.printStackTrace();
+ throw new RuntimeException(e);
}
}
- public static String addStringLocalization(String aKey, String aEnglish) {
- return addStringLocalization(aKey, aEnglish, true);
+ /**
+ * @deprecated Parameter aWriteIntoLangFile is no longer used,
+ * use {@link #addStringLocalization(String, String)} or consider migrating to MC lang system instead.
+ */
+ @Deprecated
+ public static synchronized String addStringLocalization(String aKey, String aEnglish, boolean aWriteIntoLangFile) {
+ return addStringLocalization(aKey, aEnglish);
}
- public static synchronized String addStringLocalization(String aKey, String aEnglish, boolean aWriteIntoLangFile) {
- if (aKey == null) return E;
- if (aWriteIntoLangFile && (!LANGMAP.containsKey(aKey) || (sEnglishFile != null && !BUFFERMAP.isEmpty()))) {
- aEnglish = writeToLangFile(aKey, aEnglish);
- if (!LANGMAP.containsKey(aKey)) {
- LANGMAP.put(aKey, aEnglish);
- addToMCLangList(aKey, aEnglish);
+ /**
+ * If you newly use this method, please consider using MC lang system instead.
+ */
+ public static synchronized String addStringLocalization(String aKey, String aEnglish) {
+ String trimmedKey = aKey != null ? aKey.trim() : "";
+ if (trimmedKey.isEmpty()) return E; // RIP cascading class loading, don't use GT_Utility here
+ if (sEnglishFile == null) {
+ // Lang file is not set up yet
+ BUFFERMAP.put(trimmedKey, aEnglish);
+ return aEnglish;
+ }
+ if (!BUFFERMAP.isEmpty()) {
+ // Lang file is now set up, resolve all the buffers
+ // This won't be visited twice
+ for (Entry<String, String> tEntry : BUFFERMAP.entrySet()) {
+ writeToLangFile(tEntry.getKey(), tEntry.getValue());
}
+ BUFFERMAP.clear();
}
- TEMPMAP.put(aKey.trim(), aEnglish);
- LanguageRegistry.instance()
- .injectLanguage(sLanguage, TEMPMAP);
- TEMPMAP.clear();
- if (sUseEnglishFile && !aWriteIntoLangFile) {
- if (!LANGMAP.containsKey(aKey)) {
- Property tProperty = sEnglishFile.get("LanguageFile", aKey, aEnglish);
- aEnglish = tProperty.getString();
- LANGMAP.put(aKey, aEnglish);
- addToMCLangList(aKey, aEnglish);
- } else aEnglish = LANGMAP.get(aKey);
+
+ if (!LANGMAP.containsKey(trimmedKey)) {
+ String translation = writeToLangFile(trimmedKey, aEnglish);
+ LANGMAP.put(trimmedKey, translation);
+ addToMCLangList(trimmedKey, translation);
+ TEMPMAP.put(trimmedKey, translation);
+ LanguageRegistry.instance()
+ // If we use the actual user configured locale here, switching lang to others while running game
+ // turns everything into unlocalized string. So we make it "default" and call it a day.
+ .injectLanguage("en_US", TEMPMAP);
+ TEMPMAP.clear();
+ return translation;
}
- return aEnglish;
+ return LANGMAP.get(trimmedKey);
}
- private static synchronized String writeToLangFile(String aKey, String aEnglish) {
- if (aKey == null) return E;
- if (sEnglishFile == null) {
- BUFFERMAP.put(aKey.trim(), aEnglish);
- } else {
- if (!BUFFERMAP.isEmpty()) {
- for (Entry<String, String> tEntry : BUFFERMAP.entrySet()) {
- Property tProperty = sEnglishFile.get("LanguageFile", tEntry.getKey(), tEntry.getValue());
- if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save();
- }
- BUFFERMAP.clear();
- }
- Property tProperty = sEnglishFile.get("LanguageFile", aKey.trim(), aEnglish);
- if (!tProperty.wasRead() && GregTech_API.sPostloadFinished) sEnglishFile.save();
- if (sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false)
- .getBoolean(false)) {
- aEnglish = tProperty.getString();
- sUseEnglishFile = true;
+ private static synchronized String writeToLangFile(String trimmedKey, String aEnglish) {
+ Property tProperty = sEnglishFile.get("LanguageFile", trimmedKey, aEnglish);
+ if (hasUnsavedEntry && GregTech_API.sPostloadFinished) {
+ sEnglishFile.save();
+ hasUnsavedEntry = false;
+ }
+ if (!tProperty.wasRead()) {
+ if (GregTech_API.sPostloadFinished) {
+ sEnglishFile.save();
+ } else {
+ hasUnsavedEntry = true;
}
}
- return aEnglish;
+ return tProperty.getString();
}
public static String getTranslation(String aKey) {
- if (aKey == null) return E;
- String tTrimmedKey = aKey.trim(), rTranslation;
- if (sUseEnglishFile) {
- rTranslation = LanguageRegistry.instance()
- .getStringLocalization(tTrimmedKey);
+ String tTrimmedKey = aKey != null ? aKey.trim() : "";
+ if (tTrimmedKey.isEmpty()) return E;
+
+ if (StatCollector.canTranslate(tTrimmedKey)) {
+ return StatCollector.translateToLocal(tTrimmedKey);
+ }
+ String anotherKeyToTry;
+ if (tTrimmedKey.endsWith(".name")) {
+ anotherKeyToTry = tTrimmedKey.substring(0, tTrimmedKey.length() - 5);
} else {
- rTranslation = StatCollector.translateToLocal(tTrimmedKey);
+ anotherKeyToTry = tTrimmedKey + ".name";
}
- if (GT_Utility.isStringInvalid(rTranslation)) {
- rTranslation = StatCollector.translateToLocal(tTrimmedKey);
- if (GT_Utility.isStringInvalid(rTranslation) || tTrimmedKey.equals(rTranslation)) {
- if (aKey.endsWith(".name")) {
- String trimmedKeyNoName = tTrimmedKey.substring(0, tTrimmedKey.length() - 5);
- rTranslation = StatCollector.translateToLocal(trimmedKeyNoName);
- if (GT_Utility.isStringInvalid(rTranslation) || trimmedKeyNoName.equals(rTranslation)) {
- return aKey;
- }
- } else {
- rTranslation = StatCollector.translateToLocal(tTrimmedKey + ".name");
- if (GT_Utility.isStringInvalid(rTranslation) || (tTrimmedKey + ".name").equals(rTranslation)) {
- return aKey;
- }
- }
- }
+ if (StatCollector.canTranslate(anotherKeyToTry)) {
+ return StatCollector.translateToLocal(anotherKeyToTry);
}
- return rTranslation;
+ return tTrimmedKey;
}
public static String getTranslation(String aKey, String aSeperator) {
@@ -140,6 +161,7 @@ public class GT_LanguageManager {
return rTranslation;
}
+ @SuppressWarnings("unused")
public static String getTranslateableItemStackName(ItemStack aStack) {
if (GT_Utility.isStackInvalid(aStack)) return "null";
NBTTagCompound tNBT = aStack.getTagCompound();
@@ -550,9 +572,9 @@ public class GT_LanguageManager {
addStringLocalization(FACE_NONE, "None");
}
- private static void addToMCLangList(String aKey, String aEnglish) {
+ private static void addToMCLangList(String aKey, String translation) {
if (stringTranslateLanguageList != null) {
- stringTranslateLanguageList.put(aKey, aEnglish);
+ stringTranslateLanguageList.put(aKey, translation);
}
}
}
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index 64010efb99..4f2d13dd04 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -3866,7 +3866,7 @@ public class GT_Utility {
}
public static String trans(String aKey, String aEnglish) {
- return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish, false);
+ return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_" + aKey, aEnglish);
}
public static String getTrans(String aKey) {
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index 90c40a259d..4b2c227413 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -2368,8 +2368,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
aEvent.player,
GT_LanguageManager.addStringLocalization(
"Interaction_DESCRIPTION_Index_097",
- "It's dangerous to go alone! Take this.",
- false));
+ "It's dangerous to go alone! Take this."));
aEvent.player.worldObj.spawnEntityInWorld(
new EntityItem(
aEvent.player.worldObj,
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
index eb4abc3aa7..059a3fda94 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
@@ -75,29 +75,22 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
&& tTileEntity.getMetaTileEntity() instanceof ISecondaryDescribable) {
final String[] tSecondaryDescription = ((ISecondaryDescribable) tTileEntity.getMetaTileEntity())
.getSecondaryDescription();
- addDescription(null, tSecondaryDescription, tDamage, "_Secondary", true);
+ addDescription(null, tSecondaryDescription, tDamage, "_Secondary");
}
{
final IMetaTileEntity tMetaTileEntity = tTileEntity.getMetaTileEntity();
final String tSuffix = (tMetaTileEntity instanceof ISecondaryDescribable
&& ((ISecondaryDescribable) tMetaTileEntity).isDisplaySecondaryDescription()) ? "_Secondary"
: "";
- addDescription(
- aList,
- tTileEntity.getDescription(),
- tDamage,
- tSuffix,
- !GregTech_API.sPostloadFinished);
+ addDescription(aList, tTileEntity.getDescription(), tDamage, tSuffix);
tMetaTileEntity.addAdditionalTooltipInformation(aStack, aList);
}
if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
final byte inputTier = GT_Utility.getTier(tTileEntity.getInputVoltage());
aList.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_EUp_IN",
- "Voltage IN: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN
+ GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ")
+ + EnumChatFormatting.GREEN
+ GT_Utility.formatNumbers(tTileEntity.getInputVoltage())
+ " ("
+ GT_Utility.getColoredTierNameFromTier(inputTier)
@@ -108,10 +101,8 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
if (tTileEntity.getOutputVoltage() > 0L) {
final byte outputTier = GT_Utility.getTier(tTileEntity.getOutputVoltage());
aList.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_EUp_OUT",
- "Voltage OUT: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN
+ GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ")
+ + EnumChatFormatting.GREEN
+ GT_Utility.formatNumbers(tTileEntity.getOutputVoltage())
+ " ("
+ GT_Utility.getColoredTierNameFromTier(outputTier)
@@ -121,18 +112,14 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
}
if (tTileEntity.getOutputAmperage() > 1L) {
aList.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_EUp_AMOUNT",
- "Amperage: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.YELLOW
+ GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ")
+ + EnumChatFormatting.YELLOW
+ GT_Utility.formatNumbers(tTileEntity.getOutputAmperage())
+ EnumChatFormatting.GRAY);
}
aList.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_EUp_STORE",
- "Capacity: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.BLUE
+ GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ")
+ + EnumChatFormatting.BLUE
+ GT_Utility.formatNumbers(tTileEntity.getEUCapacity())
+ EnumChatFormatting.GRAY
+ " EU");
@@ -141,35 +128,24 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
final NBTTagCompound aNBT = aStack.getTagCompound();
if (aNBT != null) {
if (aNBT.getBoolean("mMuffler")) {
- aList.add(
- GT_LanguageManager.addStringLocalization(
- "GT_TileEntity_MUFFLER",
- "has Muffler Upgrade",
- !GregTech_API.sPostloadFinished));
+ aList.add(GT_LanguageManager.addStringLocalization("GT_TileEntity_MUFFLER", "has Muffler Upgrade"));
}
if (aNBT.getBoolean("mSteamConverter")) {
aList.add(
- GT_LanguageManager.addStringLocalization(
- "GT_TileEntity_STEAMCONVERTER",
- "has Steam Upgrade",
- !GregTech_API.sPostloadFinished));
+ GT_LanguageManager.addStringLocalization("GT_TileEntity_STEAMCONVERTER", "has Steam Upgrade"));
}
int tAmount = 0;
if ((tAmount = aNBT.getByte("mSteamTanks")) > 0) {
aList.add(
tAmount + " "
- + GT_LanguageManager.addStringLocalization(
- "GT_TileEntity_STEAMTANKS",
- "Steam Tank Upgrades",
- !GregTech_API.sPostloadFinished));
+ + GT_LanguageManager
+ .addStringLocalization("GT_TileEntity_STEAMTANKS", "Steam Tank Upgrades"));
}
CoverableTileEntity.addInstalledCoversInformation(aNBT, aList);
if (aNBT.hasKey("mColor") && aNBT.getByte("mColor") != -1) {
aList.add(
- GT_LanguageManager
- .addStringLocalization("GT_TileEntity_COLORED", "Colored", !GregTech_API.sPostloadFinished)
- + " ("
+ GT_LanguageManager.addStringLocalization("GT_TileEntity_COLORED", "Colored") + " ("
+ Dyes.get(aNBT.getByte("mColor") - 1).formatting
+ Dyes.get(aNBT.getByte("mColor") - 1).mName
+ EnumChatFormatting.GRAY
@@ -182,7 +158,7 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
}
private void addDescription(@Nullable List<String> aList, @Nullable String[] aDescription, int aDamage,
- String aSuffix, boolean aWriteIntoLangFile) {
+ String aSuffix) {
if (aDescription == null) return;
for (int i = 0, tLength = aDescription.length; i < tLength; i++) {
String tDescLine = aDescription[i];
@@ -198,12 +174,11 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
tBuffer.append("%s");
tRep[j / 2] = tSplitStrings[j];
}
- final String tTranslated = String.format(
- GT_LanguageManager.addStringLocalization(tKey, tBuffer.toString(), aWriteIntoLangFile),
- (Object[]) tRep);
+ final String tTranslated = String
+ .format(GT_LanguageManager.addStringLocalization(tKey, tBuffer.toString()), (Object[]) tRep);
if (aList != null) aList.add(tTranslated);
} else {
- String tTranslated = GT_LanguageManager.addStringLocalization(tKey, tDescLine, aWriteIntoLangFile);
+ String tTranslated = GT_LanguageManager.addStringLocalization(tKey, tDescLine);
if (aList != null) aList.add(tTranslated.equals("") ? tDescLine : tTranslated);
}
}
@@ -218,9 +193,9 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
if (tMetaTileEntity instanceof ISecondaryDescribable) {
final String[] tSecondaryDescription = ((ISecondaryDescribable) tMetaTileEntity)
.getSecondaryDescription();
- addDescription(null, tSecondaryDescription, aDamage, "_Secondary", true);
+ addDescription(null, tSecondaryDescription, aDamage, "_Secondary");
}
- addDescription(null, tMetaTileEntity.getDescription(), aDamage, "", true);
+ addDescription(null, tMetaTileEntity.getDescription(), aDamage, "");
}
}
diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalChestBase.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalChestBase.java
index 5f3ed20c07..fa4147f34c 100644
--- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalChestBase.java
+++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalChestBase.java
@@ -32,7 +32,6 @@ import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList;
import appeng.util.item.AEItemStack;
import appeng.util.item.ItemList;
-import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
@@ -98,17 +97,13 @@ public abstract class GT_MetaTileEntity_DigitalChestBase extends GT_MetaTileEnti
final int tSize = stack.stackTagCompound.getInteger("mItemCount");
if (tContents != null && tSize > 0) {
tooltip.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_CHEST_INFO",
- "Contains Item: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.YELLOW
+ GT_LanguageManager.addStringLocalization("TileEntity_CHEST_INFO", "Contains Item: ")
+ + EnumChatFormatting.YELLOW
+ tContents.getDisplayName()
+ EnumChatFormatting.GRAY);
tooltip.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_CHEST_AMOUNT",
- "Item Amount: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN
+ GT_LanguageManager.addStringLocalization("TileEntity_CHEST_AMOUNT", "Item Amount: ")
+ + EnumChatFormatting.GREEN
+ GT_Utility.formatNumbers(tSize)
+ EnumChatFormatting.GRAY);
}
diff --git a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
index ec14109cd1..0c640d9ace 100644
--- a/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
+++ b/src/main/java/gregtech/common/tileentities/storage/GT_MetaTileEntity_DigitalTankBase.java
@@ -35,7 +35,6 @@ import com.gtnewhorizons.modularui.common.widget.FluidSlotWidget;
import com.gtnewhorizons.modularui.common.widget.SlotWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
-import gregtech.api.GregTech_API;
import gregtech.api.gui.modularui.GT_UIInfos;
import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.ITexture;
@@ -125,17 +124,13 @@ public abstract class GT_MetaTileEntity_DigitalTankBase extends GT_MetaTileEntit
.loadFluidStackFromNBT(stack.stackTagCompound.getCompoundTag("mFluid"));
if (tContents != null && tContents.amount > 0) {
tooltip.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_TANK_INFO",
- "Contains Fluid: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.YELLOW
+ GT_LanguageManager.addStringLocalization("TileEntity_TANK_INFO", "Contains Fluid: ")
+ + EnumChatFormatting.YELLOW
+ tContents.getLocalizedName()
+ EnumChatFormatting.GRAY);
tooltip.add(
- GT_LanguageManager.addStringLocalization(
- "TileEntity_TANK_AMOUNT",
- "Fluid Amount: ",
- !GregTech_API.sPostloadFinished) + EnumChatFormatting.GREEN
+ GT_LanguageManager.addStringLocalization("TileEntity_TANK_AMOUNT", "Fluid Amount: ")
+ + EnumChatFormatting.GREEN
+ formatNumbers(tContents.amount)
+ " L"
+ EnumChatFormatting.GRAY);
diff --git a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java
index 204648194a..f25f7f11e6 100644
--- a/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java
+++ b/src/main/java/gregtech/loaders/misc/GT_BeeDefinition.java
@@ -2617,7 +2617,7 @@ public enum GT_BeeDefinition implements IBeeDefinition {
String uid = "gregtech.bee.species" + species;
String description = "for.description." + species;
String name = "for.bees.species." + lowercaseName;
- GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species, true);
+ GT_LanguageManager.addStringLocalization("for.bees.species." + lowercaseName, species);
this.branch = branch;
this.species = new GT_AlleleBeeSpecies(
diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java
index 738bac3540..a0abf686f8 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java
@@ -170,8 +170,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable {
false,
new Object[] { "sensorcard", "GregTech Sensor Card" });
ItemList.NC_SensorCard.set(
- tItem == null
- ? new GT_Generic_Item("sensorcard", "GregTech Sensor Card", "Nuclear Control not installed", false)
+ tItem == null ? new GT_Generic_Item("sensorcard", "GregTech Sensor Card", "Nuclear Control not installed")
: tItem);
Item advSensorCard = (Item) GT_Utility
@@ -181,8 +180,7 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable {
? new GT_Generic_Item(
"advancedsensorcard",
"GregTech Advanced Sensor Card",
- "Nuclear Control not installed",
- false)
+ "Nuclear Control not installed")
: advSensorCard);
ItemList.Neutron_Reflector
diff --git a/src/main/java/gregtech/loaders/preload/GT_PreLoad.java b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java
index 42bf79a102..33b023268c 100644
--- a/src/main/java/gregtech/loaders/preload/GT_PreLoad.java
+++ b/src/main/java/gregtech/loaders/preload/GT_PreLoad.java
@@ -26,12 +26,14 @@ import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import net.minecraft.client.Minecraft;
import net.minecraft.init.Blocks;
import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.common.config.Configuration;
import org.apache.commons.lang3.StringUtils;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.LoadController;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModContainer;
@@ -91,13 +93,33 @@ public class GT_PreLoad {
public static void initLocalization(File languageDir) {
GT_FML_LOGGER.info("GT_Mod: Generating Lang-File");
- GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang"));
- GT_LanguageManager.sEnglishFile.load();
- if (GT_LanguageManager.sEnglishFile.get("EnableLangFile", "UseThisFileAsLanguageFile", false)
- .getBoolean(false)) {
- GT_LanguageManager.sLanguage = GT_LanguageManager.sEnglishFile.get("EnableLangFile", "Language", "en_US")
- .getString();
+
+ if (FMLCommonHandler.instance()
+ .getEffectiveSide()
+ .isClient()) {
+ String userLang = Minecraft.getMinecraft()
+ .getLanguageManager()
+ .getCurrentLanguage()
+ .getLanguageCode();
+ GT_FML_LOGGER.info("User lang is " + userLang);
+ if (userLang.equals("en_US")) {
+ GT_FML_LOGGER.info("Loading GregTech.lang");
+ GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang"));
+ } else {
+ String l10nFileName = "GregTech_" + userLang + ".lang";
+ File l10nFile = new File(languageDir, l10nFileName);
+ if (l10nFile.isFile()) {
+ GT_FML_LOGGER.info("Loading l10n file: " + l10nFileName);
+ GT_LanguageManager.sEnglishFile = new Configuration(l10nFile);
+ } else {
+ GT_FML_LOGGER.info("Cannot find l10n file " + l10nFileName + ", fallback to GregTech.lang");
+ GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang"));
+ }
+ }
+ } else {
+ GT_LanguageManager.sEnglishFile = new Configuration(new File(languageDir, "GregTech.lang"));
}
+ GT_LanguageManager.sEnglishFile.load();
Materials.getMaterialsMap()
.values()