aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
diff options
context:
space:
mode:
authorMuXiu1997 <MuXiu1997@Gmail.com>2022-06-04 15:54:39 +0800
committerGitHub <noreply@github.com>2022-06-04 09:54:39 +0200
commit6f2b27403a9c4f8a6fbe3b2df8accfa27311d3a8 (patch)
tree7a20bf92a85805dab3eb208115017ddc30914ed6 /src/main/java/gregtech/common/blocks/GT_Item_Machines.java
parent9bd7d42ccc830bd58dd0ab3247c734483ccf9c9a (diff)
downloadGT5-Unofficial-6f2b27403a9c4f8a6fbe3b2df8accfa27311d3a8.tar.gz
GT5-Unofficial-6f2b27403a9c4f8a6fbe3b2df8accfa27311d3a8.tar.bz2
GT5-Unofficial-6f2b27403a9c4f8a6fbe3b2df8accfa27311d3a8.zip
Refactor add secondary description (#1056)
Diffstat (limited to 'src/main/java/gregtech/common/blocks/GT_Item_Machines.java')
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Machines.java76
1 files changed, 33 insertions, 43 deletions
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 c98b37085e..18b1d073e5 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
@@ -34,6 +34,7 @@ import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
+import javax.annotation.Nullable;
import java.util.List;
import static gregtech.GT_Mod.GT_FML_LOGGER;
@@ -68,50 +69,13 @@ public class GT_Item_Machines extends ItemBlock implements IFluidContainerItem {
if (GregTech_API.METATILEENTITIES[tDamage] != null) {
final IGregTechTileEntity tTileEntity = GregTech_API.METATILEENTITIES[tDamage].getBaseMetaTileEntity();
if (!GregTech_API.sPostloadFinished && tTileEntity.getMetaTileEntity() instanceof ISecondaryDescribable) {
- final String[] secondaryDescription = ((ISecondaryDescribable) tTileEntity.getMetaTileEntity()).getSecondaryDescription();
- if (secondaryDescription != null) {
- int i = 0;
- for (String tDescription : secondaryDescription) {
- if (GT_Utility.isStringValid(tDescription)) {
- if (tDescription.contains("%%%")) {
- String[] tString = tDescription.split("%%%");
- if (tString.length >= 2) {
- StringBuilder tBuffer = new StringBuilder();
- for (int j = 0; j < tString.length; j++)
- if (j % 2 == 0) tBuffer.append(tString[j]);
- else {
- tBuffer.append(" %s");
- }
- GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Secondary" + "_Index_" + i++, tBuffer.toString(), true);
- }
- } else {
- GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + "_Secondary" + "_Index_" + i++, tDescription, true);
- }
- } else i++;
- }
- }
+ final String[] tSecondaryDescription = ((ISecondaryDescribable) tTileEntity.getMetaTileEntity()).getSecondaryDescription();
+ addDescription(null, tSecondaryDescription, tDamage, "_Secondary", true);
}
- if (tTileEntity.getDescription() != null) {
- int i = 0;
- final IMetaTileEntity metaTileEntity = tTileEntity.getMetaTileEntity();
- final String suffix = (metaTileEntity instanceof ISecondaryDescribable && ((ISecondaryDescribable) metaTileEntity).isDisplaySecondaryDescription()) ? "_Secondary" : "";
- for (String tDescription : tTileEntity.getDescription()) {
- if (GT_Utility.isStringValid(tDescription)) {
- if(tDescription.contains("%%%")){
- final String[] tString = tDescription.split("%%%");
- if(tString.length>=2){
- final StringBuilder tBuffer = new StringBuilder();
- final String[] tRep = new String[tString.length / 2];
- for (int j = 0; j < tString.length; j++)
- if (j % 2 == 0) tBuffer.append(tString[j]);
- else {tBuffer.append(" %s"); tRep[j / 2] = tString[j];}
- aList.add(String.format(GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + suffix + "_Index_" + i++, tBuffer.toString(), !GregTech_API.sPostloadFinished ), (Object[]) tRep));
- }
- }else{
- String tTranslated = GT_LanguageManager.addStringLocalization("TileEntity_DESCRIPTION_" + tDamage + suffix + "_Index_" + i++, tDescription, !GregTech_API.sPostloadFinished );
- aList.add(tTranslated.equals("") ? tDescription : tTranslated);}
- }else i++;
- }
+ {
+ final IMetaTileEntity tMetaTileEntity = tTileEntity.getMetaTileEntity();
+ final String tSuffix = (tMetaTileEntity instanceof ISecondaryDescribable && ((ISecondaryDescribable) tMetaTileEntity).isDisplaySecondaryDescription()) ? "_Secondary" : "";
+ addDescription(aList, tTileEntity.getDescription(), tDamage, tSuffix, !GregTech_API.sPostloadFinished);
}
if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
@@ -167,6 +131,32 @@ 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) {
+ if (aDescription == null) return;
+ for (int i = 0, tLength = aDescription.length; i < tLength; i++) {
+ String tDescLine = aDescription[i];
+ if (!GT_Utility.isStringValid(tDescLine)) continue;
+
+ String tKey = String.format("TileEntity_DESCRIPTION_%05d%s_Index_%02d", aDamage, aSuffix, i);
+ if (tDescLine.contains("%%%")) {
+ final String[] tSplitStrings = tDescLine.split("%%%");
+ final StringBuilder tBuffer = new StringBuilder();
+ final String[] tRep = new String[tSplitStrings.length / 2];
+ for (int j = 0; j < tSplitStrings.length; j++)
+ if (j % 2 == 0) tBuffer.append(tSplitStrings[j]);
+ else {
+ tBuffer.append(" %s");
+ tRep[j / 2] = tSplitStrings[j];
+ }
+ final String tTranslated = String.format(GT_LanguageManager.addStringLocalization(tKey, tBuffer.toString(), aWriteIntoLangFile), (Object[]) tRep);
+ if (aList != null) aList.add(tTranslated);
+ } else {
+ String tTranslated = GT_LanguageManager.addStringLocalization(tKey, tDescLine, aWriteIntoLangFile);
+ if (aList != null) aList.add(tTranslated.equals("") ? tDescLine : tTranslated);
+ }
+ }
+ }
+
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
return false;