diff --git a/fml/client/net/minecraft/src/ModLoader.java b/fml/client/net/minecraft/src/ModLoader.java index e6f4a3a93..00578821b 100644 --- a/fml/client/net/minecraft/src/ModLoader.java +++ b/fml/client/net/minecraft/src/ModLoader.java @@ -95,7 +95,7 @@ public class ModLoader */ public static void addLocalization(String key, String value) { - // TODO + addLocalization(key, "en_US", value); } /** @@ -107,7 +107,7 @@ public class ModLoader */ public static void addLocalization(String key, String lang, String value) { - // TODO + FMLCommonHandler.instance().addStringLocalization(key, lang, value); } /** @@ -118,7 +118,7 @@ public class ModLoader */ public static void addName(Object instance, String name) { - // TODO + addName(instance,"en_US",name); } /** @@ -130,7 +130,18 @@ public class ModLoader */ public static void addName(Object instance, String lang, String name) { - // TODO + String objectName; + if (instance instanceof Item) { + objectName=((Item)instance).func_20009_a(); + } else if (instance instanceof Block) { + objectName=((Block)instance).func_20013_i(); + } else if (instance instanceof ItemStack) { + objectName=Item.field_233_c[((ItemStack)instance).field_1617_c].func_21011_b((ItemStack)instance); + } else { + throw new IllegalArgumentException(String.format("Illegal object for naming %s",instance)); + } + objectName+=".name"; + addLocalization(objectName, lang, name); } /** diff --git a/fml/common/cpw/mods/fml/common/FMLCommonHandler.java b/fml/common/cpw/mods/fml/common/FMLCommonHandler.java index 925bd00f9..10e2d10ad 100644 --- a/fml/common/cpw/mods/fml/common/FMLCommonHandler.java +++ b/fml/common/cpw/mods/fml/common/FMLCommonHandler.java @@ -18,9 +18,12 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.logging.Logger; +import net.minecraft.src.StringTranslate; + /** * The main class for non-obfuscated hook handling code * @@ -271,4 +274,37 @@ public class FMLCommonHandler { return uniqueEntityListId++; } + + private Map modLanguageData=new HashMap(); + /** + * @param key + * @param lang + * @param value + */ + public void addStringLocalization(String key, String lang, String value) + { + Properties langPack=modLanguageData.get(lang); + if (langPack==null) { + langPack=new Properties(); + modLanguageData.put(lang, langPack); + } + langPack.put(key,value); + + if (StringTranslate.func_20162_a().func_44024_c().equals(lang)) { + handleLanguageLoad(langPack, lang); + } + } + + /** + * @param languagePack + * @param lang + */ + public void handleLanguageLoad(Properties languagePack, String lang) + { + Properties langPack=modLanguageData.get(lang); + if (langPack==null) { + return; + } + languagePack.putAll(langPack); + } } diff --git a/fml/eclipse/simpletestmod/.classpath b/fml/eclipse/simpletestmod/.classpath index 4f6aaa99b..331ad7823 100644 --- a/fml/eclipse/simpletestmod/.classpath +++ b/fml/eclipse/simpletestmod/.classpath @@ -2,7 +2,6 @@ - - + diff --git a/fml/eclipse/simpletestmod/src/mod_testMod.java b/fml/eclipse/simpletestmod/src/net/minecraft/src/mod_testMod.java similarity index 97% rename from fml/eclipse/simpletestmod/src/mod_testMod.java rename to fml/eclipse/simpletestmod/src/net/minecraft/src/mod_testMod.java index f84837b63..43c5c3852 100644 --- a/fml/eclipse/simpletestmod/src/mod_testMod.java +++ b/fml/eclipse/simpletestmod/src/net/minecraft/src/mod_testMod.java @@ -1,3 +1,4 @@ +package net.minecraft.src; public class mod_testMod extends BaseMod { diff --git a/fml/patches/minecraft/net/minecraft/src/StringTranslate.java.patch b/fml/patches/minecraft/net/minecraft/src/StringTranslate.java.patch new file mode 100644 index 000000000..502c7e266 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/src/StringTranslate.java.patch @@ -0,0 +1,20 @@ +--- ../src-base/minecraft/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000 ++++ ../src-work/minecraft/net/minecraft/src/StringTranslate.java 0000-00-00 00:00:00.000000000 -0000 +@@ -7,6 +7,9 @@ + import java.util.Properties; + import java.util.TreeMap; + ++import cpw.mods.fml.client.FMLClientHandler; ++import cpw.mods.fml.common.FMLCommonHandler; ++ + public class StringTranslate + { + private static StringTranslate field_20165_a = new StringTranslate(); +@@ -76,6 +79,7 @@ + } + } + } ++ FMLCommonHandler.instance().handleLanguageLoad(p_44025_1_,p_44025_2_); + } + + public void func_44023_a(String p_44023_1_)