From a0066b4a261acd9ddcdf60531e9dc72b53a97f4c Mon Sep 17 00:00:00 2001 From: Muramasa Date: Sun, 21 Aug 2016 11:57:36 +0100 Subject: General cleanup & MaterialProcessing --- .../materialprocessing/ProcessingConfig.java | 21 ++++++++++++++++++ .../loaders/materialprocessing/ProcessingTest.java | 25 ++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java create mode 100644 src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java (limited to 'src/main/java/gregtech/loaders/materialprocessing') diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java new file mode 100644 index 0000000000..96dab0776c --- /dev/null +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java @@ -0,0 +1,21 @@ +package gregtech.loaders.materialprocessing; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TextureSet; + +public class ProcessingConfig implements gregtech.api.interfaces.IMaterialRegistrator { + public ProcessingConfig() { + Materials.add(this); + } + + @Override + public void onMaterialsInit() { + int i = 0; + for (int j = GregTech_API.sMaterialProperties.get("general", "AmountOfCustomMaterialSlots", 16); i < j; i++) { + String aID = (i < 10 ? "0" : "") + i; + new Materials(-1, TextureSet.SET_METALLIC, 1.0F, 0, 0, 0, 255, 255, 255, 0, "CustomMat" + aID, 0, 0, 0, 0, false, false, 1, 1, 1, Dyes._NULL, "custom", true, aID); + } + } +} diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java new file mode 100644 index 0000000000..afa95f5f1c --- /dev/null +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java @@ -0,0 +1,25 @@ +package gregtech.loaders.materialprocessing; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Materials; +import gregtech.api.enums.TextureSet; + +public class ProcessingTest implements gregtech.api.interfaces.IMaterialRegistrator { + public ProcessingTest() { + Materials.add(this); + } + + /** + * Just a test class to fill the empty spaces in sGeneratedMaterials for performance testing. + * This is disabled in GT_Loader_MaterialProcessing, but can be enabled for testing. + */ + @Override + public void onMaterialsInit() { + for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (!Materials.USED_IDS.contains(i)) { + new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); + } + } + } +} -- cgit From a987228a6a1b4faae950edb5c4ba3a3df620b9e4 Mon Sep 17 00:00:00 2001 From: Muramasa Date: Mon, 22 Aug 2016 11:39:04 +0100 Subject: Small fixes --- src/main/java/gregtech/api/enums/Materials.java | 63 ++++++++++++---------- src/main/java/gregtech/api/enums/OrePrefixes.java | 39 ++++++++------ .../loaders/materialprocessing/ProcessingTest.java | 4 +- 3 files changed, 58 insertions(+), 48 deletions(-) (limited to 'src/main/java/gregtech/loaders/materialprocessing') diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index f950ec3f90..b97872f5d3 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -19,9 +19,9 @@ import java.util.*; import static gregtech.api.enums.GT_Values.M; public class Materials implements IColorModulationContainer, ISubTagContainer { - public static Materials[] MATERIALS_ARRAY = new Materials[]{}; - public static final Map MATERIALS_MAP = new HashMap(); - public static final List USED_IDS = new ArrayList(); + private static Materials[] MATERIALS_ARRAY = new Materials[50000]; + private static final Map MATERIALS_MAP = new HashMap(); + private static final List USED_IDS = new ArrayList(); private static final List mMaterialRegistrators = new ArrayList(); /** @@ -1264,22 +1264,19 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } public static void init() { - Materials Muranium = new Materials(378, TextureSet.SET_NONE, 1.0F, 999999999, 2, 1|2|8|32|64|128, 92, 0, 168, 0, "Muranium", 1, 50, 1337, 1337, true, false, 3, 1, 1, Dyes.dyePurple); - Muranium.add(SubTag.METAL); - Muranium.addOreByProduct(Muranium); - Muranium.mExtraData = 1; + Materials Muranium = new Materials(378, TextureSet.SET_NONE, 1.0F, 9999, 2, 1|2|8|32|64|128, 92, 0, 168, 0, "Muranium", 1, 50, 1337, 1337, true, false, 3, 1, 1, Dyes.dyePurple); for (IMaterialRegistrator aRegistrator : mMaterialRegistrators) { aRegistrator.onMaterialsInit(); } - initMaterialProperties(); //No more material addition or manipulation past this point! + initMaterialProperties(); /** No more material addition or manipulation past this point! **/ MATERIALS_ARRAY = MATERIALS_MAP.values().toArray(new Materials[MATERIALS_MAP.size()]); - for (Materials aMaterial : values()) { + for (Materials aMaterial : MATERIALS_ARRAY) { if (aMaterial.mMetaItemSubID >= 0) { if (aMaterial.mMetaItemSubID < 1000) { if (GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] == null) { GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] = aMaterial; - } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " is already used!"); - } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " is/over the maximum of 1000"); + } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " for " + aMaterial.mName + "is already used!"); + } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " for " + aMaterial.mName + " is/over the maximum of 1000"); } } } @@ -1289,7 +1286,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { GT_Mod.gregtechproxy.mMaxHarvestLevel = Math.min(15, GregTech_API.sMaterialProperties.get("harvestlevel", "MaxHarvestLevel",7)); GT_Mod.gregtechproxy.mGraniteHavestLevel = GregTech_API.sMaterialProperties.get("harvestlevel", "GraniteHarvestLevel", 3); StringBuilder aConfigPathSB = new StringBuilder(); - for (Materials aMaterial : MATERIALS_MAP.values()) { //The only place where MATERIALS_MAP should be used to loop over all materials. + for (Materials aMaterial : MATERIALS_MAP.values()) { /** The only place where MATERIALS_MAP should be used to loop over all materials. **/ if (aMaterial != null && aMaterial != Materials._NULL && aMaterial != Materials.Empty) { aConfigPathSB.append("materials.").append(aMaterial.mConfigSection).append(".").append(aMaterial.mCustomOre ? aMaterial.mCustomID : aMaterial.mName); String aConfigPath = aConfigPathSB.toString(); @@ -1337,8 +1334,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } } /** - * Converts the pre-defined list of SubTags from out material into a list of SubTag names for setting/getting to/from the config. - * Then converts that List of names into a singular string[] for insertion into the config + * Converts the pre-defined list of SubTags from a material into a list of SubTag names for setting/getting to/from the config. + * It is then converted to a String[] and finally to a singular String for insertion into the config * If the config string is different from the default, we then want to clear the Materials SubTags and insert new ones from the config string. */ List aSubTags = new ArrayList<>(); @@ -1385,7 +1382,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } } } - /** Same principal as SubTags **/ + /** Same principal as SubTags but with two values **/ List aAspects = new ArrayList<>(); ArrayList aAspectAmounts = new ArrayList<>(); for (TC_Aspects.TC_AspectStack aAspectStack : aMaterial.mAspects) { @@ -1408,7 +1405,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } } } - /** Moved the harvest level changes from GT_Mod to have less thing iterating over materials **/ + /** Moved the harvest level changes from GT_Mod to have less things iterating over MATERIALS_ARRAY **/ if (GT_Mod.gregtechproxy.mChangeHarvestLevels && aMaterial.mToolQuality > 0 && aMaterial.mMetaItemSubID < GT_Mod.gregtechproxy.mHarvestLevel.length && aMaterial.mMetaItemSubID >= 0) { GT_Mod.gregtechproxy.mHarvestLevel[aMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties.get(aConfigPath, "HarvestLevel", aMaterial.mToolQuality); } @@ -1527,10 +1524,28 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { else mAspects.addAll(aAspects); } + /** This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ + public String name() { + return mName; + } + + /** This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ + public static Materials[] values() { + return MATERIALS_ARRAY; + } + + /** This should only be used for getting a Material by its name as a String. Do not loop over this map, use values(). **/ + public static Map getMaterialsMap() { + return MATERIALS_MAP; + } + + /** Useful for checking if a Material ID is already being used. This is a List so the 'contains()' method can be used. **/ + public static List getUsedIds() { + return USED_IDS; + } + public static Materials get(String aMaterialName) { - Object tObject = GT_Utility.getFieldContent(Materials.class, aMaterialName, false, false); - if (tObject instanceof Materials) return (Materials) tObject; - return _NULL; + return getMaterialsMap().get(aMaterialName); } public static Materials getRealMaterial(String aMaterialName) { @@ -1805,15 +1820,5 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { return mRGBa; } - /** This is for keeping compatiblity with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ - public String name() { - return mName; - } - - /** This is for keeping compatiblity with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ - public static Materials[] values() { - return MATERIALS_ARRAY; - } - public static volatile int VERSION = 509; } diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java index 845b03258f..63dd390479 100644 --- a/src/main/java/gregtech/api/enums/OrePrefixes.java +++ b/src/main/java/gregtech/api/enums/OrePrefixes.java @@ -737,18 +737,17 @@ public enum OrePrefixes { 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("crystal")) return mLocalizedMaterialPre + "Shard of " + aMaterial.mDefaultLocalName; if (name().startsWith("plate")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Plate"; if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystal Powder"; - if (this == OrePrefixes.crushedCentrifuged) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushedPurified) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; - if (this == OrePrefixes.crushed) - return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + switch (this) { + case crushedCentrifuged: + case crushedPurified: + case crushed: + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + " Crystals"; + } break; case "Wheat": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Flour"; @@ -793,12 +792,14 @@ public enum OrePrefixes { break; case "Paper": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Chad"; - if (this == OrePrefixes.plate) return "Sheet of Paper"; - if (this == OrePrefixes.plateDouble) return "Paperboard"; - if (this == OrePrefixes.plateTriple) return "Carton"; - if (this == OrePrefixes.plateQuadruple) return "Cardboard"; - if (this == OrePrefixes.plateQuintuple) return "Thick Cardboard"; - if (this == OrePrefixes.plateDense) return "Strong Cardboard"; + switch (this) { + case plate: return "Sheet of Paper"; + case plateDouble: return "Paperboard"; + case plateTriple: return "Carton"; + case plateQuadruple: return "Cardboard"; + case plateQuintuple: return "Thick Cardboard"; + case plateDense: return "Strong Cardboard"; + } break; case "MeatRaw": if (name().startsWith("dust")) return mLocalizedMaterialPre + "Mince Meat"; @@ -829,9 +830,13 @@ public enum OrePrefixes { case "Pitchblende": case "FullersEarth": if (name().startsWith("dust")) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedCentrifuged) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushedPurified) return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; - if (this == OrePrefixes.crushed) return "Ground " + aMaterial.mDefaultLocalName; + switch (this) { + case crushedCentrifuged: + case crushedPurified: + return mLocalizedMaterialPre + aMaterial.mDefaultLocalName; + case crushed: + return "Ground " + aMaterial.mDefaultLocalName; + } break; } // Use Standard Localization diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java index afa95f5f1c..f3ac6d0dcb 100644 --- a/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java @@ -17,8 +17,8 @@ public class ProcessingTest implements gregtech.api.interfaces.IMaterialRegistra @Override public void onMaterialsInit() { for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { - if (!Materials.USED_IDS.contains(i)) { - new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); + if (!Materials.getUsedIds().contains(i)) { + new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1|2|4|8|16|32|64|128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); } } } -- cgit From 5a94ea039ba265d966aaa7872aecb79a4851769d Mon Sep 17 00:00:00 2001 From: Muramasa Date: Mon, 22 Aug 2016 22:31:19 +0100 Subject: Some cleanup --- src/main/java/gregtech/api/enums/Materials.java | 30 ++++++++++++---------- .../gregtech/loaders/load/GT_ItemIterator.java | 3 --- .../loaders/materialprocessing/ProcessingTest.java | 25 ------------------ .../preload/GT_Loader_MaterialProcessing.java | 1 - 4 files changed, 17 insertions(+), 42 deletions(-) delete mode 100644 src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java (limited to 'src/main/java/gregtech/loaders/materialprocessing') diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index b97872f5d3..cd0a28d084 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -19,9 +19,8 @@ import java.util.*; import static gregtech.api.enums.GT_Values.M; public class Materials implements IColorModulationContainer, ISubTagContainer { - private static Materials[] MATERIALS_ARRAY = new Materials[50000]; + private static Materials[] MATERIALS_ARRAY = new Materials[]{}; private static final Map MATERIALS_MAP = new HashMap(); - private static final List USED_IDS = new ArrayList(); private static final List mMaterialRegistrators = new ArrayList(); /** @@ -1264,7 +1263,6 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { } public static void init() { - Materials Muranium = new Materials(378, TextureSet.SET_NONE, 1.0F, 9999, 2, 1|2|8|32|64|128, 92, 0, 168, 0, "Muranium", 1, 50, 1337, 1337, true, false, 3, 1, 1, Dyes.dyePurple); for (IMaterialRegistrator aRegistrator : mMaterialRegistrators) { aRegistrator.onMaterialsInit(); } @@ -1275,10 +1273,16 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { if (aMaterial.mMetaItemSubID < 1000) { if (GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] == null) { GregTech_API.sGeneratedMaterials[aMaterial.mMetaItemSubID] = aMaterial; - } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " for " + aMaterial.mName + "is already used!"); + } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " for " + aMaterial.mName + " is already used!"); } else throw new IllegalArgumentException("The Material Index " + aMaterial.mMetaItemSubID + " for " + aMaterial.mName + " is/over the maximum of 1000"); } } + // Fills empty spaces with materials, causes horrible load times. + /*for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { + if (GregTech_API.sGeneratedMaterials[i] == null) { + GregTech_API.sGeneratedMaterials[i] = new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1|2|4|8|16|32|64|128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); + } + }*/ } public static void initMaterialProperties() { @@ -1423,7 +1427,6 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { mDefaultLocalName = aDefaultLocalName; mName = aDefaultLocalName.contains(" ") ? aDefaultLocalName.replaceAll(" ", "") : aDefaultLocalName; MATERIALS_MAP.put(mName, this); - USED_IDS.add(aMetaItemSubID); mCustomOre = aCustomOre; mCustomID = aCustomID; mConfigSection = aConfigSection; @@ -1524,26 +1527,27 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { else mAspects.addAll(aAspects); } - /** This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ + /** + * This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum + */ public String name() { return mName; } - /** This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum **/ + /** + * This is for keeping compatibility with addons mods (Such as TinkersGregworks) that looped over the old materials enum + */ public static Materials[] values() { return MATERIALS_ARRAY; } - /** This should only be used for getting a Material by its name as a String. Do not loop over this map, use values(). **/ + /** + * This should only be used for getting a Material by its name as a String. Do not loop over this map, use values(). + */ public static Map getMaterialsMap() { return MATERIALS_MAP; } - /** Useful for checking if a Material ID is already being used. This is a List so the 'contains()' method can be used. **/ - public static List getUsedIds() { - return USED_IDS; - } - public static Materials get(String aMaterialName) { return getMaterialsMap().get(aMaterialName); } diff --git a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java index 28683708ff..651b8e86d6 100644 --- a/src/main/java/gregtech/loaders/load/GT_ItemIterator.java +++ b/src/main/java/gregtech/loaders/load/GT_ItemIterator.java @@ -22,7 +22,6 @@ import java.util.Iterator; public class GT_ItemIterator implements Runnable { public void run() { - System.out.println("##### Started Item Iter"); GT_Log.out.println("GT_Mod: Scanning for certain kinds of compatible Machineblocks."); ItemStack tStack2; ItemStack tStack; @@ -181,9 +180,7 @@ public class GT_ItemIterator GT_OreDictUnificator.registerOre("bookThaumonomicon", new ItemStack(tItem, 1, 32767)); } if (tName.equals("item.ligniteCoal")) { - System.out.println("#### Started Lignite"); GT_OreDictUnificator.set(OrePrefixes.gem, Materials.Lignite, new ItemStack(tItem, 1, 0)); - System.out.println("#### Ended Lignite"); } if ((tName.equals("tile.extrabiomes.redrock")) || (tName.equals("tile.bop.redRocks"))) { GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Redrock, new ItemStack(tItem, 1, 0)); diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java deleted file mode 100644 index f3ac6d0dcb..0000000000 --- a/src/main/java/gregtech/loaders/materialprocessing/ProcessingTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package gregtech.loaders.materialprocessing; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; -import gregtech.api.enums.Materials; -import gregtech.api.enums.TextureSet; - -public class ProcessingTest implements gregtech.api.interfaces.IMaterialRegistrator { - public ProcessingTest() { - Materials.add(this); - } - - /** - * Just a test class to fill the empty spaces in sGeneratedMaterials for performance testing. - * This is disabled in GT_Loader_MaterialProcessing, but can be enabled for testing. - */ - @Override - public void onMaterialsInit() { - for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) { - if (!Materials.getUsedIds().contains(i)) { - new Materials(i, TextureSet.SET_NONE, 1.0F, 0, 2, 1|2|4|8|16|32|64|128, 92, 0, 168, 0, "TestMat" + i, 0, 0, -1, 0, false, false, 3, 1, 1, Dyes._NULL, "testmat"); - } - } - } -} diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MaterialProcessing.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MaterialProcessing.java index c7b4c14e6b..d7ec2365e1 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_MaterialProcessing.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MaterialProcessing.java @@ -7,6 +7,5 @@ public class GT_Loader_MaterialProcessing implements Runnable { public void run() { GT_Log.out.println("GT_Mod: Register Material processing."); new ProcessingConfig(); - //new ProcessingTest(); } } -- cgit