Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Localization improve #1251

Merged
merged 2 commits into from
Nov 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/gregtech/GT_Mod.java
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,10 @@ public void onPreLoad(FMLPreInitializationEvent aEvent) {
GT_Log.out.println("GT_Mod: Generating Lang-File");
GT_LanguageManager.sEnglishFile = new Configuration(new File(aEvent.getModConfigurationDirectory().getParentFile(), "GregTech.lang"));
GT_LanguageManager.sEnglishFile.load();
for (Materials aMaterial : Materials.values()) {
if (aMaterial != null)
aMaterial.mLocalizedName = GT_LanguageManager.addStringLocalization("Material." + aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName);
}

GT_Log.out.println("GT_Mod: Removing all original Scrapbox Drops.");
try {
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/gregtech/api/enums/Materials.java
Original file line number Diff line number Diff line change
Expand Up @@ -818,7 +818,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public byte mEnchantmentToolsLevel = 0, mEnchantmentArmorsLevel = 0;
public boolean mBlastFurnaceRequired = false, mTransparent = false;
public float mToolSpeed = 1.0F, mHeatDamage = 0.0F;
public String mChemicalFormula = "?", mName = "null", mDefaultLocalName = "null", mCustomID = "null", mConfigSection = "null";
public String mChemicalFormula = "?", mName = "null", mDefaultLocalName = "null", mCustomID = "null", mConfigSection = "null", mLocalizedName = "null";
public Dyes mColor = Dyes._NULL;
public short mMeltingPoint = 0, mBlastFurnaceTemp = 0, mGasTemp = 0;
public int mTypes = 0;
Expand Down Expand Up @@ -1984,6 +1984,19 @@ public FluidStack getMolten(long aAmount) {
return new GT_FluidStack(mStandardMoltenFluid, (int) aAmount);
}

public String getLocalizedNameForItem(String aFormat) {
return String.format(aFormat.replace("%s", "%temp").replace("%material", "%s"), this.mLocalizedName).replace("%temp", "%s");
}

public static String getLocalizedNameForItem(String aFormat, int aMaterialID) {
if (aMaterialID >= 0 && aMaterialID < 1000) {
Materials aMaterial = GregTech_API.sGeneratedMaterials[aMaterialID];
if (aMaterial != null)
return aMaterial.getLocalizedNameForItem(aFormat);
}
return aFormat;
}

@Override
public short[] getRGBA() {
return mRGBa;
Expand Down
67 changes: 36 additions & 31 deletions src/main/java/gregtech/api/enums/OrePrefixes.java
Original file line number Diff line number Diff line change
Expand Up @@ -898,26 +898,31 @@ public Object get(Object aMaterial) {
return name() + aMaterial;
}

@SuppressWarnings("incomplete-switch")
@Deprecated
public String getDefaultLocalNameForItem(Materials aMaterial) {
return aMaterial.getLocalizedNameForItem(getDefaultLocalNameFormatForItem(aMaterial));
}

@SuppressWarnings("incomplete-switch")
public String getDefaultLocalNameFormatForItem(Materials aMaterial) {
// Certain Materials have slightly different Localizations.
switch (this) {
case crateGtDust:
return mLocalizedMaterialPre + OrePrefixes.dust.getDefaultLocalNameForItem(aMaterial);
return mLocalizedMaterialPre + OrePrefixes.dust.getDefaultLocalNameFormatForItem(aMaterial);
case crateGtIngot:
return mLocalizedMaterialPre + OrePrefixes.ingot.getDefaultLocalNameForItem(aMaterial);
return mLocalizedMaterialPre + OrePrefixes.ingot.getDefaultLocalNameFormatForItem(aMaterial);
case crateGtGem:
return mLocalizedMaterialPre + OrePrefixes.gem.getDefaultLocalNameForItem(aMaterial);
return mLocalizedMaterialPre + OrePrefixes.gem.getDefaultLocalNameFormatForItem(aMaterial);
case crateGtPlate:
return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameForItem(aMaterial);
return mLocalizedMaterialPre + OrePrefixes.plate.getDefaultLocalNameFormatForItem(aMaterial);
}
switch (aMaterial.mName) {
case "Glass":
case "BorosilicateGlass":
if (name().startsWith("gem")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal";
if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pane";
if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Bar";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip";
if (name().startsWith("gem")) return mLocalizedMaterialPre + "%material" + " Crystal";
if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Pane";
if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material" + " Bar";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
break;
case "Wheat":
if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour";
Expand All @@ -927,11 +932,11 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
break;
case "Wood":
case "WoodSealed":
if (name().startsWith("bolt")) return "Short " + aMaterial.mDefaultLocalName + " Stick";
if (name().startsWith("stick")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Stick";
if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip";
if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Plank";
if (name().startsWith("bolt")) return "Short " + "%material" + " Stick";
if (name().startsWith("stick")) return mLocalizedMaterialPre + "%material" + " Stick";
if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Pulp";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Plank";
break;
case "Plastic":
case "Rubber":
Expand All @@ -946,17 +951,17 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
case "PolyvinylChloride":
case "Polystyrene":
case "StyreneButadieneRubber":
if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Pulp";
if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Sheet";
if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Bar";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Chip";
if (name().startsWith("foil")) return "Thin " + aMaterial.mDefaultLocalName + " Sheet";
if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Pulp";
if (name().startsWith("plate")) return mLocalizedMaterialPre + "%material" + " Sheet";
if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material" + " Bar";
if (name().startsWith("nugget")) return mLocalizedMaterialPre + "%material" + " Chip";
if (name().startsWith("foil")) return "Thin " + "%material" + " Sheet";
break;
case "FierySteel":
if (mIsContainer) return mLocalizedMaterialPre + "Fiery Blood" + mLocalizedMaterialPost;
break;
case "Steeleaf":
if (name().startsWith("ingot")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName;
if (name().startsWith("ingot")) return mLocalizedMaterialPre + "%material";
break;
case "Bone":
if (name().startsWith("dust")) return mLocalizedMaterialPre + "Bone Meal";
Expand All @@ -969,7 +974,7 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
case "Chili":
case "Cheese":
case "Snow":
if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Powder";
if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material" + " Powder";
break;
case "Paper":
if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad";
Expand All @@ -996,7 +1001,7 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
case "RockSalt":
case "VolcanicAsh":
case "RareEarth":
if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName;
if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material";
break;
case "Vermiculite":
case "Bentonite":
Expand All @@ -1010,13 +1015,13 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
case "QuartzSand":
case "Pitchblende":
case "FullersEarth":
if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName;
if (name().startsWith("dust")) return mLocalizedMaterialPre + "%material";
switch (this) {
case crushedCentrifuged:
case crushedPurified:
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName;
return mLocalizedMaterialPre + "%material";
case crushed:
return "Ground " + aMaterial.mDefaultLocalName;
return "Ground " + "%material";
}
break;
}
Expand All @@ -1030,22 +1035,22 @@ public String getDefaultLocalNameForItem(Materials aMaterial) {
case "InfusedOrder":
case "InfusedVis":
case "InfusedWater":
if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName;
if (name().startsWith("crystal")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName;
if (name().startsWith("gem")) return mLocalizedMaterialPre + "Shard of " + "%material";
if (name().startsWith("crystal")) return mLocalizedMaterialPre + "Shard of " + "%material";
if (name().startsWith("plate"))
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate";
return mLocalizedMaterialPre + "%material" + " Crystal Plate";
if (name().startsWith("dust"))
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder";
return mLocalizedMaterialPre + "%material" + " Crystal Powder";
switch (this) {
case crushedCentrifuged:
case crushedPurified:
case crushed:
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals";
return mLocalizedMaterialPre + "%material" + " Crystals";
}
break;
}
}
// Use Standard Localization
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + mLocalizedMaterialPost;
return mLocalizedMaterialPre + "%material" + mLocalizedMaterialPost;
}
}
17 changes: 16 additions & 1 deletion src/main/java/gregtech/api/items/GT_CoolantCell_Item.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;

import java.util.List;
Expand Down Expand Up @@ -50,7 +51,21 @@ protected void setHeatForStack(ItemStack aStack, int aHeat) {

public void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) {
super.addAdditionalToolTips(aList, aStack, aPlayer);
aList.add("Stored Heat: " + getHeatOfStack(aStack));
int rHeat = getHeatOfStack(aStack) * 10 / this.heatStorage;
EnumChatFormatting color;
switch (rHeat) {
case 0: color = EnumChatFormatting.BLUE; break;
case 1:
case 2: color = EnumChatFormatting.GREEN; break;
case 3:
case 4:
case 5:
case 6: color = EnumChatFormatting.YELLOW; break;
case 7:
case 8: color = EnumChatFormatting.RED; break;
default: color = EnumChatFormatting.DARK_RED; break;
}
aList.add(EnumChatFormatting.WHITE + String.format(trans("000", "Stored Heat: %s"), "" + color + getHeatOfStack(aStack)));
switch (getControlTagOfStack(aStack)) {
case 1:
aList.add(StatCollector.translateToLocal("ic2.reactoritem.heatwarning.line1"));
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/gregtech/api/items/GT_Generic_Item.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,8 @@ protected IProjectile getProjectileEntity(World aWorld, IPosition aPosition) {
return null;
}
}

public String trans(String aKey, String aEnglish){
return GT_LanguageManager.addStringLocalization("Item_DESCRIPTION_Index_"+aKey, aEnglish, false);
}
}
10 changes: 5 additions & 5 deletions src/main/java/gregtech/api/items/GT_MetaBase_Item.java
Original file line number Diff line number Diff line change
Expand Up @@ -198,22 +198,22 @@ public final void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aL
tStats = getElectricStats(aStack);
if (tStats != null) {
if (tStats[3] > 0) {
aList.add(EnumChatFormatting.AQUA + "Contains " + GT_Utility.formatNumbers(tStats[3]) + " EU Tier: " + (tStats[2] >= 0 ? tStats[2] : 0) + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.AQUA + String.format(trans("009", "Contains %s EU Tier: %s"), GT_Utility.formatNumbers(tStats[3]), "" + (tStats[2] >= 0 ? tStats[2] : 0)) + EnumChatFormatting.GRAY);
} else {
long tCharge = getRealCharge(aStack);
if (tStats[3] == -2 && tCharge <= 0) {
aList.add(EnumChatFormatting.AQUA + "Empty. You should recycle it properly." + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.AQUA + trans("010", "Empty. You should recycle it properly.") + EnumChatFormatting.GRAY);
} else {
aList.add(String.valueOf(EnumChatFormatting.AQUA) + GT_Utility.formatNumbers(tCharge) + " / " + GT_Utility.formatNumbers(Math.abs(tStats[0])) + " EU - Voltage: " + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)] + EnumChatFormatting.GRAY);
aList.add(String.valueOf(EnumChatFormatting.AQUA) + String.format(trans("011", "%s / %s EU - Voltage: %s"), GT_Utility.formatNumbers(tCharge), GT_Utility.formatNumbers(Math.abs(tStats[0])), "" + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)]) + EnumChatFormatting.GRAY);
}
}
}

tStats = getFluidContainerStats(aStack);
if (tStats != null && tStats[0] > 0) {
FluidStack tFluid = getFluidContent(aStack);
aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? "No Fluids Contained" : GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? 0 : tFluid.amount) + "L / " + tStats[0] + "L") + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.BLUE + ((tFluid == null ? trans("012", "No Fluids Contained") : GT_Utility.getFluidName(tFluid, true))) + EnumChatFormatting.GRAY);
aList.add(EnumChatFormatting.BLUE + String.format(trans("013", "%sL / %sL"), "" + (tFluid == null ? 0 : tFluid.amount), "" + tStats[0]) + EnumChatFormatting.GRAY);
}

ArrayList<IItemBehaviour<GT_MetaBase_Item>> tList = mItemBehaviors.get((short) getDamage(aStack));
Expand Down
22 changes: 21 additions & 1 deletion src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X01.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public GT_MetaGenerated_Item_X01(String aUnlocalized, OrePrefixes aGeneratedPref
if (tMaterial == null) continue;
if (mPrefix.doGenerateItem(tMaterial)) {
ItemStack tStack = new ItemStack(this, 1, i);
GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalization(tPrefix, tMaterial, i));
GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".name", getDefaultLocalizationFormat(tPrefix, tMaterial, i));
GT_LanguageManager.addStringLocalization(getUnlocalizedName(tStack) + ".tooltip", tMaterial.getToolTip(tPrefix.mMaterialAmount / M));
String tOreName = getOreDictString(tPrefix, tMaterial);
tPrefix = OrePrefixes.getOrePrefix(tOreName);
Expand All @@ -75,10 +75,21 @@ public GT_MetaGenerated_Item_X01(String aUnlocalized, OrePrefixes aGeneratedPref
* @param aMetaData a Index from [0 - 31999]
* @return the Localized Name when default LangFiles are used.
*/
@Deprecated
public String getDefaultLocalization(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) {
return aPrefix.getDefaultLocalNameForItem(aMaterial);
}

/**
* @param aPrefix the OreDict Prefix
* @param aMaterial the Material
* @param aMetaData a Index from [0 - 31999]
* @return the Localized Name Format when default LangFiles are used.
*/
public String getDefaultLocalizationFormat(OrePrefixes aPrefix, Materials aMaterial, int aMetaData) {
return aPrefix.getDefaultLocalNameFormatForItem(aMaterial);
}

/**
* @param aPrefix always != null
* @param aMaterial always != null
Expand All @@ -102,6 +113,15 @@ public IIconContainer getIconContainer(int aMetaData, Materials aMaterial) {

/* ---------- INTERNAL OVERRIDES ---------- */

@Override
public String getItemStackDisplayName(ItemStack aStack) {
String aName = super.getItemStackDisplayName(aStack);
int aDamage = getDamage(aStack);
if (aDamage < 32000 && aDamage >= 0)
return Materials.getLocalizedNameForItem(aName, aDamage % 1000);
return aName;
}

@Override
public ItemStack getContainerItem(ItemStack aStack) {
int aMetaData = aStack.getItemDamage();
Expand Down
Loading