package speiger.src.coreengine.assets.language; import java.util.Map; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import speiger.src.collections.objects.maps.impl.hash.Object2ObjectOpenHashMap; import speiger.src.collections.objects.utils.maps.Object2ObjectMaps; import speiger.src.coreengine.assets.AssetLocation; import speiger.src.coreengine.assets.AssetManager; import speiger.src.coreengine.assets.MultiAsset; import speiger.src.coreengine.assets.reloader.IReloadableResource; import speiger.src.coreengine.utils.collections.iterators.IterableWrapper; public class LanguageManager implements IReloadableResource { final AssetLocation location = AssetLocation.of("lang"); Map languages = new Object2ObjectOpenHashMap(); AssetManager assets; String currentLanguage; @Override public void reload() { languages.clear(); try(MultiAsset langs = assets.getAllAsset(location.subAsset("langs.json"))) { for(int i = 0,m=langs.size();i map = new Object2ObjectOpenHashMap(); loadLanguage(loadingLang, map); if(loadingLang != "en_US") { loadLanguage("en_US", map); } lang.load(map); return true; } protected void loadLanguage(String lang, Map data) { try(MultiAsset language = assets.getAllAsset(location.subAsset(lang+".lang"))) { for(int i = 0,m=language.size();i 16) { continue; } Language lang = languages.get(key); if(lang == null) { languages.put(key, new Language(key, value)); } } } catch(Exception e) { e.printStackTrace(); } } }