aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
authorDream-Master <dream-master@gmx.net>2020-03-22 19:30:45 +0100
committerDream-Master <dream-master@gmx.net>2020-03-22 19:30:45 +0100
commitf0141c74e5da9ff038760df3cca5e860ec7cd617 (patch)
tree5585c178b13bb4b4637a842df6d5beae5e000a71 /src/main/java/gregtech/api
parentddd53e3ddaf743a4059e7ce39640f0c3fa527243 (diff)
parent80ed2c8113defdb466c06a1f3aa773567c11f452 (diff)
downloadGT5-Unofficial-f0141c74e5da9ff038760df3cca5e860ec7cd617.tar.gz
GT5-Unofficial-f0141c74e5da9ff038760df3cca5e860ec7cd617.tar.bz2
GT5-Unofficial-f0141c74e5da9ff038760df3cca5e860ec7cd617.zip
Merge remote-tracking branch 'origin/experimental' into Very-Experimental
# Conflicts: # build.properties
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java745
1 files changed, 427 insertions, 318 deletions
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index 4498f52251..97d2db69e6 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -915,28 +915,242 @@ public static Materials Shadow = new Materials( 368, TextureSet
static {
initSubTags();
- Iron.mOreReRegistrations.add(AnyIron);
- PigIron.mOreReRegistrations.add(AnyIron);
- WroughtIron.mOreReRegistrations.add(AnyIron);
- Copper.mOreReRegistrations.add(AnyCopper);
- AnnealedCopper.mOreReRegistrations.add(AnyCopper);
+ setReRegistration();
+ setMaceratingInto();
+ setSmeltingInto();
+ setDirectSmelting();
+ setOthers();
+ setMultipliers();
+ setEnchantments();
+ setHeatDamage();
+ setByProducts();
+ setColors();
- Bronze.mOreReRegistrations.add(AnyBronze);
+ overrideChemicalFormulars();
+ }
- Rubber.mOreReRegistrations.add(AnyRubber);
- StyreneButadieneRubber.mOreReRegistrations.add(AnyRubber);
- Silicone.mOreReRegistrations.add(AnyRubber);
+ public final short[]
+ mRGBa = new short[]{255, 255, 255, 0},
+ mMoltenRGBa = new short[]{255, 255, 255, 0};
+ public TextureSet mIconSet;
+ public List<MaterialStack> mMaterialList = new ArrayList<>();
+ public List<Materials>
+ mOreByProducts = new ArrayList<>(),
+ mOreReRegistrations = new ArrayList<>();
+ public List<TC_Aspects.TC_AspectStack> mAspects = new ArrayList<>();
+ public ArrayList<ItemStack> mMaterialItems = new ArrayList<>();
+ public Collection<SubTag> mSubTags = new LinkedHashSet<>();
+ public Enchantment
+ mEnchantmentTools = null,
+ mEnchantmentArmors = null;
+ public boolean
+ mUnificatable,
+ mBlastFurnaceRequired = false,
+ mAutoGenerateBlastFurnaceRecipes = true,
+ mTransparent = false,
+ mHasParentMod = true,
+ mHasPlasma = false,
+ mHasGas = false,
+ mCustomOre = false;
+ public byte
+ mEnchantmentToolsLevel = 0,
+ mEnchantmentArmorsLevel = 0,
+ mToolQuality = 0;
+ public short
+ mMeltingPoint = 0,
+ mBlastFurnaceTemp = 0,
+ mGasTemp = 0;
+ public int
+ mMetaItemSubID,
+ mTypes = 0,
+ mDurability = 16,
+ mFuelPower = 0,
+ mFuelType = 0,
+ mExtraData = 0,
+ mOreValue = 0,
+ mOreMultiplier = 1,
+ mByProductMultiplier = 1,
+ mSmeltingMultiplier = 1,
+ mDensityMultiplier = 1,
+ mDensityDivider = 1;
+ public long mDensity = M;
+ public float
+ mToolSpeed = 1.0F,
+ mHeatDamage = 0.0F;
+ public String
+ mChemicalFormula = "?",
+ mName = "null",
+ mDefaultLocalName = "null",
+ mCustomID = "null",
+ mConfigSection = "null",
+ mLocalizedName = "null";
+ public Dyes mColor = Dyes._NULL;
+ public Element mElement = null;
+ public Materials
+ mDirectSmelting = this,
+ mOreReplacement = this,
+ mMacerateInto = this,
+ mSmeltInto = this,
+ mArcSmeltInto = this,
+ mHandleMaterial = this,
+ mMaterialInto;
+ public Fluid
+ mSolid = null,
+ mFluid = null,
+ mGas = null,
+ mPlasma = null;
+ /**
+ * This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, that means 144 is one Material Unit worth of fluid.
+ */
+ public Fluid mStandardMoltenFluid = null;
+ private boolean
+ hasCorrespondingFluid = false,
+ hasCorrespondingGas = false,
+ canBeCracked = false;
+ private Fluid[]
+ hydroCrackedFluids = new Fluid[3],
+ steamCrackedFluids = new Fluid[3];
- StyreneButadieneRubber.mOreReRegistrations.add(AnySyntheticRubber);
- Silicone.mOreReRegistrations.add(AnySyntheticRubber);
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, boolean aUnificatable, String aName, String aDefaultLocalName) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aUnificatable, aName, aDefaultLocalName, "ore", false, "null");
+ }
- Electrotine.mOreReRegistrations.add(Nikolite);
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, boolean aUnificatable, String aName, String aDefaultLocalName, String aConfigSection, boolean aCustomOre, String aCustomID) {
+ mMetaItemSubID = aMetaItemSubID;
+ mDefaultLocalName = aDefaultLocalName;
+ mName = aName;
+ MATERIALS_MAP.put(mName, this);
+ mCustomOre = aCustomOre;
+ mCustomID = aCustomID;
+ mConfigSection = aConfigSection;
+ mUnificatable = aUnificatable;
+ mDurability = aDurability;
+ mToolSpeed = aToolSpeed;
+ mToolQuality = (byte) aToolQuality;
+ mMaterialInto = this;
+ mIconSet = aIconSet;
+ }
- Peanutwood.setMaceratingInto(Wood);
- WoodSealed.setMaceratingInto(Wood);
- NetherBrick.setMaceratingInto(Netherrack);
+ public Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) {
+ mUnificatable = false;
+ mDefaultLocalName = aMaterialInto.mDefaultLocalName;
+ mName = aMaterialInto.mName;
+ mMaterialInto = aMaterialInto.mMaterialInto;
+ if (aReRegisterIntoThis)
+ mMaterialInto.mOreReRegistrations.add(this);
+ mChemicalFormula = aMaterialInto.mChemicalFormula;
+ mMetaItemSubID = -1;
+ mIconSet = TextureSet.SET_NONE;
+ }
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, "ore", false, "null");
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aConfigSection, false, "null");
+ }
+
+ /**
+ * @param aMetaItemSubID the Sub-ID used in my own MetaItems. Range 0-1000. -1 for no Material
+ * @param aTypes which kind of Items should be generated. Bitmask as follows:
+ * 1 = Dusts of all kinds.
+ * 2 = Dusts, Ingots, Plates, Rods/Sticks, Machine Components and other Metal specific things.
+ * 4 = Dusts, Gems, Plates, Lenses (if transparent).
+ * 8 = Dusts, Impure Dusts, crushed Ores, purified Ores, centrifuged Ores etc.
+ * 16 = Cells
+ * 32 = Plasma Cells
+ * 64 = Tool Heads
+ * 128 = Gears
+ * 256 = Designates something as empty (only used for the Empty material)
+ * @param aR, aG, aB Color of the Material 0-255 each.
+ * @param aA transparency of the Material Texture. 0 = fully visible, 255 = Invisible.
+ * @param aName The Name used as Default for localization.
+ * @param aFuelType Type of Generator to get Energy from this Material.
+ * @param aFuelPower EU generated. Will be multiplied by 1000, also additionally multiplied by 2 for Gems.
+ * @param aMeltingPoint Used to determine the smelting Costs in Furnii. >>>>**ADD 20000 to remove EBF recipes to add them MANUALLY ! :D**<<<<
+ * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii.
+ * @param aBlastFurnaceRequired If this requires a Blast Furnace.
+ * @param aColor Vanilla MC Wool Color which comes the closest to this.
+ */
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection, boolean aCustomOre, String aCustomID) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, true, aName, aDefaultLocalName, aConfigSection, aCustomOre, aCustomID);
+ mMeltingPoint = (short) aMeltingPoint;
+ mBlastFurnaceRequired = aBlastFurnaceRequired;
+ mBlastFurnaceTemp = (short) aBlastFurnaceTemp;
+ mTransparent = aTransparent;
+ mFuelPower = aFuelPower;
+ mFuelType = aFuelType;
+ mOreValue = aOreValue;
+ mDensityMultiplier = aDensityMultiplier;
+ mDensityDivider = aDensityDivider;
+ mDensity = (M * aDensityMultiplier) / aDensityDivider;
+ mColor = aColor;
+ mRGBa[0] = mMoltenRGBa[0] = (short) aR;
+ mRGBa[1] = mMoltenRGBa[1] = (short) aG;
+ mRGBa[2] = mMoltenRGBa[2] = (short) aB;
+ mRGBa[3] = mMoltenRGBa[3] = (short) aA;
+ mTypes = aTypes;
+ if (mColor != null)
+ add(SubTag.HAS_COLOR);
+ if (mTransparent)
+ add(SubTag.TRANSPARENT);
+ if ((mTypes & 2) != 0)
+ add(SubTag.SMELTING_TO_FLUID);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
+ mAspects.addAll(aAspects);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement, List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
+ mElement = aElement;
+ mElement.mLinkedMaterials.add(this);
+ if (aElement == Element._NULL) {
+ mChemicalFormula = "Empty";
+ } else {
+ mChemicalFormula = aElement.toString();
+ mChemicalFormula = mChemicalFormula.replaceAll("_", "-");
+ }
+ mAspects.addAll(aAspects);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List<MaterialStack> aMaterialList) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aExtraData, aMaterialList, null);
+ }
+
+ public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List<MaterialStack> aMaterialList, List<TC_Aspects.TC_AspectStack> aAspects) {
+ this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
+ mExtraData = aExtraData;
+ mMaterialList.addAll(aMaterialList);
+ mChemicalFormula = mMaterialList.stream().map(MaterialStack::toString).collect(Collectors.joining()).replaceAll("_", "-");
+
+ int tAmountOfComponents = 0,
+ tMeltingPoint = 0;
+ for (MaterialStack tMaterial : mMaterialList) {
+ tAmountOfComponents += tMaterial.mAmount;
+ if (tMaterial.mMaterial.mMeltingPoint > 0)
+ tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount;
+ if (aAspects == null)
+ for (TC_Aspects.TC_AspectStack tAspect : tMaterial.mMaterial.mAspects)
+ tAspect.addToAspectList(mAspects);
+ }
+
+ if (mMeltingPoint < 0)
+ mMeltingPoint = (short) (tMeltingPoint / tAmountOfComponents);
+
+ tAmountOfComponents *= aDensityMultiplier;
+ tAmountOfComponents /= aDensityDivider;
+ if (aAspects == null)
+ for (TC_Aspects.TC_AspectStack tAspect : mAspects)
+ tAspect.mAmount = Math.max(1, tAspect.mAmount / Math.max(1, tAmountOfComponents));
+ else mAspects.addAll(aAspects);
+ }
+
+ private static void setSmeltingInto() {
SamariumMagnetic.setSmeltingInto(Samarium).setMaceratingInto(Samarium).setArcSmeltingInto(Samarium);
NeodymiumMagnetic.setSmeltingInto(Neodymium).setMaceratingInto(Neodymium).setArcSmeltingInto(Neodymium);
SteelMagnetic.setSmeltingInto(Steel).setMaceratingInto(Steel).setArcSmeltingInto(Steel);
@@ -953,8 +1167,13 @@ public static Materials Shadow = new Materials( 368, TextureSet
Sand.setSmeltingInto(Glass);
Ice.setSmeltingInto(Water);
Snow.setSmeltingInto(Water);
+ }
+ private static void setOthers() {
Mercury.add(SubTag.SMELTING_TO_GEM);
+ }
+
+ private static void setDirectSmelting() {
Cinnabar.setDirectSmelting(Mercury).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.SMELTING_TO_GEM);
Tetrahedrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
Chalcopyrite.setDirectSmelting(Copper).add(SubTag.INDUCTIONSMELTING_LOW_OUTPUT).add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
@@ -978,7 +1197,9 @@ public static Materials Shadow = new Materials( 368, TextureSet
Magnesite.setDirectSmelting(Magnesium).add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
Molybdenite.setDirectSmelting(Molybdenum).add(SubTag.DONT_ADD_DEFAULT_BBF_RECIPE);
Galena.setDirectSmelting(Lead);
+ }
+ private static void setMultipliers() {
Amber.setOreMultiplier(2).setSmeltingMultiplier(2);
InfusedAir.setOreMultiplier(2).setSmeltingMultiplier(2);
InfusedFire.setOreMultiplier(2).setSmeltingMultiplier(2);
@@ -1007,14 +1228,18 @@ public static Materials Shadow = new Materials( 368, TextureSet
Sodalite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4);
Lazurite.setOreMultiplier(6).setSmeltingMultiplier(6).setByProductMultiplier(4);
Monazite.setOreMultiplier(8).setSmeltingMultiplier(8).setByProductMultiplier(2);
+ }
+ private static void setEnchantmentKnockbackTools() {
Plastic.setEnchantmentForTools(Enchantment.knockback, 1);
PolyvinylChloride.setEnchantmentForTools(Enchantment.knockback, 1);
Polystyrene.setEnchantmentForTools(Enchantment.knockback, 1);
Rubber.setEnchantmentForTools(Enchantment.knockback, 2);
StyreneButadieneRubber.setEnchantmentForTools(Enchantment.knockback, 2);
InfusedAir.setEnchantmentForTools(Enchantment.knockback, 2);
+ }
+ private static void setEnchantmentFortuneTools() {
IronWood.setEnchantmentForTools(Enchantment.fortune, 1);
Steeleaf.setEnchantmentForTools(Enchantment.fortune, 2);
// Midasium .setEnchantmentForTools(Enchantment.fortune, 2);
@@ -1022,8 +1247,9 @@ public static Materials Shadow = new Materials( 368, TextureSet
Vinteum.setEnchantmentForTools(Enchantment.fortune, 1);
Thaumium.setEnchantmentForTools(Enchantment.fortune, 2);
InfusedWater.setEnchantmentForTools(Enchantment.fortune, 3);
- Ichorium.setEnchantmentForTools(Enchantment.fortune, 3).setEnchantmentForTools(Enchantment.sharpness, 5).setEnchantmentForTools(Enchantment.unbreaking, 3);
+ }
+ private static void setEnchantmentFireAspectTools() {
Flint.setEnchantmentForTools(Enchantment.fireAspect, 1);
DarkIron.setEnchantmentForTools(Enchantment.fireAspect, 2);
Firestone.setEnchantmentForTools(Enchantment.fireAspect, 3);
@@ -1031,20 +1257,27 @@ public static Materials Shadow = new Materials( 368, TextureSet
Pyrotheum.setEnchantmentForTools(Enchantment.fireAspect, 3);
Blaze.setEnchantmentForTools(Enchantment.fireAspect, 3);
InfusedFire.setEnchantmentForTools(Enchantment.fireAspect, 3);
+ }
+ private static void setEnchantmentSilkTouchTools() {
Force.setEnchantmentForTools(Enchantment.silkTouch, 1);
Amber.setEnchantmentForTools(Enchantment.silkTouch, 1);
EnderPearl.setEnchantmentForTools(Enchantment.silkTouch, 1);
Enderium.setEnchantmentForTools(Enchantment.silkTouch, 1);
NetherStar.setEnchantmentForTools(Enchantment.silkTouch, 1);
InfusedOrder.setEnchantmentForTools(Enchantment.silkTouch, 1);
+ }
+ private static void setEnchantmentSmiteTools() {
BlackBronze.setEnchantmentForTools(Enchantment.smite, 2);
Gold.setEnchantmentForTools(Enchantment.smite, 3);
RoseGold.setEnchantmentForTools(Enchantment.smite, 4);
Platinum.setEnchantmentForTools(Enchantment.smite, 5);
InfusedVis.setEnchantmentForTools(Enchantment.smite, 5);
+ Ichorium.setEnchantmentForTools(Enchantment.smite, 8);
+ }
+ private static void setEnchantmentBaneOfArthropodsTools() {
Lead.setEnchantmentForTools(Enchantment.baneOfArthropods, 2);
Nickel.setEnchantmentForTools(Enchantment.baneOfArthropods, 2);
Invar.setEnchantmentForTools(Enchantment.baneOfArthropods, 3);
@@ -1053,7 +1286,9 @@ public static Materials Shadow = new Materials( 368, TextureSet
Bismuth.setEnchantmentForTools(Enchantment.baneOfArthropods, 4);
BismuthBronze.setEnchantmentForTools(Enchantment.baneOfArthropods, 5);
InfusedEarth.setEnchantmentForTools(Enchantment.baneOfArthropods, 5);
+ }
+ private static void setEnchantmentSharpnessTools() {
Iron.setEnchantmentForTools(Enchantment.sharpness, 1);
Bronze.setEnchantmentForTools(Enchantment.sharpness, 1);
Brass.setEnchantmentForTools(Enchantment.sharpness, 2);
@@ -1073,7 +1308,28 @@ public static Materials Shadow = new Materials( 368, TextureSet
HSSE.setEnchantmentForTools(Enchantment.sharpness, 5);
HSSG.setEnchantmentForTools(Enchantment.sharpness, 4);
HSSS.setEnchantmentForTools(Enchantment.sharpness, 5);
+ }
+
+ /**
+ * DO NOT ADD MORE THAN 1 TOOL AND ARMOR ENCHANTMENT PER MATERIL!
+ * It will get overwritten!
+ */
+ private static void setEnchantments() {
+ setToolEnchantments();
+ setArmorEnchantments();
+ }
+ private static void setToolEnchantments() {
+ setEnchantmentKnockbackTools();
+ setEnchantmentFortuneTools();
+ setEnchantmentFireAspectTools();
+ setEnchantmentSilkTouchTools();
+ setEnchantmentSmiteTools();
+ setEnchantmentBaneOfArthropodsTools();
+ setEnchantmentSharpnessTools();
+ }
+
+ private static void setArmorEnchantments() {
InfusedAir.setEnchantmentForArmors(Enchantment.respiration, 3);
InfusedFire.setEnchantmentForArmors(Enchantment.featherFalling, 4);
@@ -1092,12 +1348,37 @@ public static Materials Shadow = new Materials( 368, TextureSet
InfusedDull.setEnchantmentForArmors(Enchantment.blastProtection, 4);
InfusedVis.setEnchantmentForArmors(Enchantment.protection, 4);
+ }
+
+ private static void setMaceratingInto() {
+ Peanutwood.setMaceratingInto(Wood);
+ WoodSealed.setMaceratingInto(Wood);
+ NetherBrick.setMaceratingInto(Netherrack);
+ }
+ private static void setReRegistration() {
+ Iron.mOreReRegistrations.add(AnyIron);
+ PigIron.mOreReRegistrations.add(AnyIron);
+ WroughtIron.mOreReRegistrations.add(AnyIron);
+ Copper.mOreReRegistrations.add(AnyCopper);
+ AnnealedCopper.mOreReRegistrations.add(AnyCopper);
+ Bronze.mOreReRegistrations.add(AnyBronze);
+ Rubber.mOreReRegistrations.add(AnyRubber);
+ StyreneButadieneRubber.mOreReRegistrations.add(AnyRubber);
+ Silicone.mOreReRegistrations.add(AnyRubber);
+ StyreneButadieneRubber.mOreReRegistrations.add(AnySyntheticRubber);
+ Silicone.mOreReRegistrations.add(AnySyntheticRubber);
+ Electrotine.mOreReRegistrations.add(Nikolite);
+ }
+
+ private static void setHeatDamage() {
FryingOilHot.setHeatDamage(1.0F);
Lava.setHeatDamage(3.0F);
Firestone.setHeatDamage(5.0F);
Pyrotheum.setHeatDamage(5.0F);
+ }
+ private static void setByProducts() {
Mytryl.addOreByProducts(Samarium, Samarium, Zinc, Zinc);
Rubracium.addOreByProducts(Samarium, Samarium, Samarium, Samarium);
Chalcopyrite.addOreByProducts(Pyrite, Cobalt, Cadmium, Gold);
@@ -1253,14 +1534,9 @@ public static Materials Shadow = new Materials( 368, TextureSet
Lithium.addOreByProducts(Lithium);
Silicon.addOreByProducts(SiliconDioxide);
InfusedGold.addOreByProduct(Gold);
+ }
- Glue.mChemicalFormula = "No Horses were harmed for the Production";
- UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator";
- LiveRoot.mChemicalFormula = "";
- WoodSealed.mChemicalFormula = "";
- Wood.mChemicalFormula = "";
- FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula;
-
+ private static void setColors() {
Naquadah.mMoltenRGBa[0] = 0;
Naquadah.mMoltenRGBa[1] = 255;
Naquadah.mMoltenRGBa[2] = 0;
@@ -1273,7 +1549,15 @@ public static Materials Shadow = new Materials( 368, TextureSet
Naquadria.mMoltenRGBa[1] = 255;
Naquadria.mMoltenRGBa[2] = 128;
Naquadria.mMoltenRGBa[3] = 0;
+ }
+ private static void overrideChemicalFormulars() {
+ Glue.mChemicalFormula = "No Horses were harmed for the Production";
+ UUAmplifier.mChemicalFormula = "Accelerates the Mass Fabricator";
+ LiveRoot.mChemicalFormula = "";
+ WoodSealed.mChemicalFormula = "";
+ Wood.mChemicalFormula = "";
+ FoolsRuby.mChemicalFormula = Ruby.mChemicalFormula;
Electrotine.mChemicalFormula = "Rp";
Trinium.mChemicalFormula = "Ke";
Naquadah.mChemicalFormula = "Nq";
@@ -1312,226 +1596,6 @@ public static Materials Shadow = new Materials( 368, TextureSet
CosmicNeutronium.mChemicalFormula = "SpNt";
}
- public final short[]
- mRGBa = new short[]{255, 255, 255, 0},
- mMoltenRGBa = new short[]{255, 255, 255, 0};
- public TextureSet mIconSet;
- public List<MaterialStack> mMaterialList = new ArrayList<>();
- public List<Materials>
- mOreByProducts = new ArrayList<>(),
- mOreReRegistrations = new ArrayList<>();
- public List<TC_Aspects.TC_AspectStack> mAspects = new ArrayList<>();
- public ArrayList<ItemStack> mMaterialItems = new ArrayList<>();
- public Collection<SubTag> mSubTags = new LinkedHashSet<>();
- public Enchantment
- mEnchantmentTools = null,
- mEnchantmentArmors = null;
- public boolean
- mUnificatable,
- mBlastFurnaceRequired = false,
- mAutoGenerateBlastFurnaceRecipes = true,
- mTransparent = false,
- mHasParentMod = true,
- mHasPlasma = false,
- mHasGas = false,
- mCustomOre = false;
- public byte
- mEnchantmentToolsLevel = 0,
- mEnchantmentArmorsLevel = 0,
- mToolQuality = 0;
- public short
- mMeltingPoint = 0,
- mBlastFurnaceTemp = 0,
- mGasTemp = 0;
- public int
- mMetaItemSubID,
- mTypes = 0,
- mDurability = 16,
- mFuelPower = 0,
- mFuelType = 0,
- mExtraData = 0,
- mOreValue = 0,
- mOreMultiplier = 1,
- mByProductMultiplier = 1,
- mSmeltingMultiplier = 1,
- mDensityMultiplier = 1,
- mDensityDivider = 1;
- public long mDensity = M;
- public float
- mToolSpeed = 1.0F,
- mHeatDamage = 0.0F;
- public String
- mChemicalFormula = "?",
- mName = "null",
- mDefaultLocalName = "null",
- mCustomID = "null",
- mConfigSection = "null",
- mLocalizedName = "null";
- public Dyes mColor = Dyes._NULL;
- public Element mElement = null;
- public Materials
- mDirectSmelting = this,
- mOreReplacement = this,
- mMacerateInto = this,
- mSmeltInto = this,
- mArcSmeltInto = this,
- mHandleMaterial = this,
- mMaterialInto;
- public Fluid
- mSolid = null,
- mFluid = null,
- mGas = null,
- mPlasma = null;
- /**
- * This Fluid is used as standard Unit for Molten Materials. 1296 is a Molten Block, that means 144 is one Material Unit worth of fluid.
- */
- public Fluid mStandardMoltenFluid = null;
- private boolean
- hasCorrespondingFluid = false,
- hasCorrespondingGas = false,
- canBeCracked = false;
- private Fluid[]
- hydroCrackedFluids = new Fluid[3],
- steamCrackedFluids = new Fluid[3];
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, boolean aUnificatable, String aName, String aDefaultLocalName) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aUnificatable, aName, aDefaultLocalName, "ore", false, "null");
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, boolean aUnificatable, String aName, String aDefaultLocalName, String aConfigSection, boolean aCustomOre, String aCustomID) {
- mMetaItemSubID = aMetaItemSubID;
- mDefaultLocalName = aDefaultLocalName;
- mName = aName;
- MATERIALS_MAP.put(mName, this);
- mCustomOre = aCustomOre;
- mCustomID = aCustomID;
- mConfigSection = aConfigSection;
- mUnificatable = aUnificatable;
- mDurability = aDurability;
- mToolSpeed = aToolSpeed;
- mToolQuality = (byte) aToolQuality;
- mMaterialInto = this;
- mIconSet = aIconSet;
- }
-
- public Materials(Materials aMaterialInto, boolean aReRegisterIntoThis) {
- mUnificatable = false;
- mDefaultLocalName = aMaterialInto.mDefaultLocalName;
- mName = aMaterialInto.mName;
- mMaterialInto = aMaterialInto.mMaterialInto;
- if (aReRegisterIntoThis)
- mMaterialInto.mOreReRegistrations.add(this);
- mChemicalFormula = aMaterialInto.mChemicalFormula;
- mMetaItemSubID = -1;
- mIconSet = TextureSet.SET_NONE;
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, "ore", false, "null");
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aConfigSection, false, "null");
- }
-
- /**
- * @param aMetaItemSubID the Sub-ID used in my own MetaItems. Range 0-1000. -1 for no Material
- * @param aTypes which kind of Items should be generated. Bitmask as follows:
- * 1 = Dusts of all kinds.
- * 2 = Dusts, Ingots, Plates, Rods/Sticks, Machine Components and other Metal specific things.
- * 4 = Dusts, Gems, Plates, Lenses (if transparent).
- * 8 = Dusts, Impure Dusts, crushed Ores, purified Ores, centrifuged Ores etc.
- * 16 = Cells
- * 32 = Plasma Cells
- * 64 = Tool Heads
- * 128 = Gears
- * 256 = Designates something as empty (only used for the Empty material)
- * @param aR, aG, aB Color of the Material 0-255 each.
- * @param aA transparency of the Material Texture. 0 = fully visible, 255 = Invisible.
- * @param aName The Name used as Default for localization.
- * @param aFuelType Type of Generator to get Energy from this Material.
- * @param aFuelPower EU generated. Will be multiplied by 1000, also additionally multiplied by 2 for Gems.
- * @param aMeltingPoint Used to determine the smelting Costs in Furnii. >>>>**ADD 20000 to remove EBF recipes to add them MANUALLY ! :D**<<<<
- * @param aBlastFurnaceTemp Used to determine the needed Heat capactiy Costs in Blast Furnii.
- * @param aBlastFurnaceRequired If this requires a Blast Furnace.
- * @param aColor Vanilla MC Wool Color which comes the closest to this.
- */
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, String aConfigSection, boolean aCustomOre, String aCustomID) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, true, aName, aDefaultLocalName, aConfigSection, aCustomOre, aCustomID);
- mMeltingPoint = (short) aMeltingPoint;
- mBlastFurnaceRequired = aBlastFurnaceRequired;
- mBlastFurnaceTemp = (short) aBlastFurnaceTemp;
- mTransparent = aTransparent;
- mFuelPower = aFuelPower;
- mFuelType = aFuelType;
- mOreValue = aOreValue;
- mDensityMultiplier = aDensityMultiplier;
- mDensityDivider = aDensityDivider;
- mDensity = (M * aDensityMultiplier) / aDensityDivider;
- mColor = aColor;
- mRGBa[0] = mMoltenRGBa[0] = (short) aR;
- mRGBa[1] = mMoltenRGBa[1] = (short) aG;
- mRGBa[2] = mMoltenRGBa[2] = (short) aB;
- mRGBa[3] = mMoltenRGBa[3] = (short) aA;
- mTypes = aTypes;
- if (mColor != null)
- add(SubTag.HAS_COLOR);
- if (mTransparent)
- add(SubTag.TRANSPARENT);
- if ((mTypes & 2) != 0)
- add(SubTag.SMELTING_TO_FLUID);
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, List<TC_Aspects.TC_AspectStack> aAspects) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
- mAspects.addAll(aAspects);
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, Element aElement, List<TC_Aspects.TC_AspectStack> aAspects) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
- mElement = aElement;
- mElement.mLinkedMaterials.add(this);
- if (aElement == Element._NULL) {
- mChemicalFormula = "Empty";
- } else {
- mChemicalFormula = aElement.toString();
- mChemicalFormula = mChemicalFormula.replaceAll("_", "-");
- }
- mAspects.addAll(aAspects);
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List<MaterialStack> aMaterialList) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor, aExtraData, aMaterialList, null);
- }
-
- public Materials(int aMetaItemSubID, TextureSet aIconSet, float aToolSpeed, int aDurability, int aToolQuality, int aTypes, int aR, int aG, int aB, int aA, String aName, String aDefaultLocalName, int aFuelType, int aFuelPower, int aMeltingPoint, int aBlastFurnaceTemp, boolean aBlastFurnaceRequired, boolean aTransparent, int aOreValue, int aDensityMultiplier, int aDensityDivider, Dyes aColor, int aExtraData, List<MaterialStack> aMaterialList, List<TC_Aspects.TC_AspectStack> aAspects) {
- this(aMetaItemSubID, aIconSet, aToolSpeed, aDurability, aToolQuality, aTypes, aR, aG, aB, aA, aName, aDefaultLocalName, aFuelType, aFuelPower, aMeltingPoint, aBlastFurnaceTemp, aBlastFurnaceRequired, aTransparent, aOreValue, aDensityMultiplier, aDensityDivider, aColor);
- mExtraData = aExtraData;
- mMaterialList.addAll(aMaterialList);
- mChemicalFormula = mMaterialList.stream().map(MaterialStack::toString).collect(Collectors.joining()).replaceAll("_", "-");
-
- int tAmountOfComponents = 0,
- tMeltingPoint = 0;
- for (MaterialStack tMaterial : mMaterialList) {
- tAmountOfComponents += tMaterial.mAmount;
- if (tMaterial.mMaterial.mMeltingPoint > 0)
- tMeltingPoint += tMaterial.mMaterial.mMeltingPoint * tMaterial.mAmount;
- if (aAspects == null)
- for (TC_Aspects.TC_AspectStack tAspect : tMaterial.mMaterial.mAspects)
- tAspect.addToAspectList(mAspects);
- }
-
- if (mMeltingPoint < 0)
- mMeltingPoint = (short) (tMeltingPoint / tAmountOfComponents);
-
- tAmountOfComponents *= aDensityMultiplier;
- tAmountOfComponents /= aDensityDivider;
- if (aAspects == null)
- for (TC_Aspects.TC_AspectStack tAspect : mAspects)
- tAspect.mAmount = Math.max(1, tAspect.mAmount / Math.max(1, tAmountOfComponents));
- else mAspects.addAll(aAspects);
- }
-
private static void initSubTags() {
SubTag.ELECTROMAGNETIC_SEPERATION_NEODYMIUM.addTo(
Bastnasite,
@@ -2033,9 +2097,7 @@ public static Materials Shadow = new Materials( 368, TextureSet
new ProcessingConfig();
if (!GT_Mod.gregtechproxy.mEnableAllMaterials)
new ProcessingModSupport();
- for (IMaterialHandler aRegistrator : mMaterialHandlers) {
- aRegistrator.onMaterialsInit(); //This is where addon mods can add/manipulate materials
- }
+ mMaterialHandlers.forEach(IMaterialHandler::onMaterialsInit);//This is where addon mods can add/manipulate materials
initMaterialProperties(); //No more material addition or manipulation should be done past this point!
MATERIALS_ARRAY = MATERIALS_MAP.values().toArray(new Materials[0]); //Generate standard object array. This is a lot faster to loop over.
VALUES = Arrays.asList(MATERIALS_ARRAY);
@@ -2069,88 +2131,130 @@ public static Materials Shadow = new Materials( 368, TextureSet
}
}
- public static void initMaterialProperties() {
+ private static void addFuelValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mFuelPower = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelPower", aMaterial.mFuelPower);
+ aMaterial.mFuelType = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelType", aMaterial.mFuelType);
+ }
+
+ private static void addTemperatureValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mMeltingPoint = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "MeltingPoint", aMaterial.mMeltingPoint);
+ aMaterial.mBlastFurnaceRequired = GregTech_API.sMaterialProperties.get(aConfigPath, "BlastFurnaceRequired", aMaterial.mBlastFurnaceRequired);
+ aMaterial.mBlastFurnaceTemp = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "BlastFurnaceTemp", aMaterial.mBlastFurnaceTemp);
+ aMaterial.mGasTemp = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "GasTemp", aMaterial.mGasTemp);
+ aMaterial.setHeatDamage((float) GregTech_API.sMaterialProperties.get(aConfigPath, "HeatDamage", aMaterial.mHeatDamage));
+ }
+
+ private static void addDensityValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDensityMultiplier = GregTech_API.sMaterialProperties.get(aConfigPath, "DensityMultiplier", aMaterial.mDensityMultiplier);
+ aMaterial.mDensityDivider = GregTech_API.sMaterialProperties.get(aConfigPath, "DensityDivider", aMaterial.mDensityDivider);
+ aMaterial.mDensity = (long) GregTech_API.sMaterialProperties.get(aConfigPath, "Density", (M * aMaterial.mDensityMultiplier) / aMaterial.mDensityDivider);
+ }
+
+ private static void addColorValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mTransparent = GregTech_API.sMaterialProperties.get(aConfigPath, "Transparent", aMaterial.mTransparent);
+ String aColor = GregTech_API.sMaterialProperties.get(aConfigPath, "DyeColor", aMaterial.mColor == Dyes._NULL ? "None" : aMaterial.mColor.toString());
+ aMaterial.mColor = aColor.equals("None") ? Dyes._NULL : Dyes.get(aColor);
+ String[] aRGBA = GregTech_API.sMaterialProperties.get(aConfigPath, "MatRGBA", aMaterial.mRGBa[0] + "," + aMaterial.mRGBa[1] + "," + aMaterial.mRGBa[2] + "," + aMaterial.mRGBa[3] + ",").split(",");
+ aMaterial.mRGBa[0] = Short.parseShort(aRGBA[0]);
+ aMaterial.mRGBa[1] = Short.parseShort(aRGBA[1]);
+ aMaterial.mRGBa[2] = Short.parseShort(aRGBA[2]);
+ aMaterial.mRGBa[3] = Short.parseShort(aRGBA[3]);
+ }
+
+ private static void addToolValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDurability = GregTech_API.sMaterialProperties.get(aConfigPath, "ToolDurability", aMaterial.mDurability);
+ aMaterial.mToolSpeed = (float) GregTech_API.sMaterialProperties.get(aConfigPath, "ToolSpeed", aMaterial.mToolSpeed);
+ aMaterial.mToolQuality = (byte) GregTech_API.sMaterialProperties.get(aConfigPath, "ToolQuality", aMaterial.mToolQuality);
+ //aMaterial.mIconSet = TextureSet.valueOf(GregTech_API.sMaterialProperties.get(aConfigPath.toString(), "IconSet", aMaterial.mIconSet.mSetName));
+ /** Moved from GT_Proxy? (Not sure)**/
+ aMaterial.mHandleMaterial = (aMaterial == Desh ? aMaterial.mHandleMaterial : aMaterial == Diamond || aMaterial == Thaumium ? Wood : aMaterial.contains(SubTag.BURNING) ? Blaze : aMaterial.contains(SubTag.MAGICAL) && aMaterial.contains(SubTag.CRYSTAL) && Loader.isModLoaded(GT_Values.MOD_ID_TC) ? Thaumium : aMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel : aMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood);
+ }
+
+ private static void addEnchantmentValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mEnchantmentToolsLevel = (byte) GregTech_API.sMaterialProperties.get(aConfigPath, "EnchantmentLevel", aMaterial.mEnchantmentToolsLevel);
+ String aEnchantmentName = GregTech_API.sMaterialProperties.get(aConfigPath, "Enchantment", aMaterial.mEnchantmentTools != null ? aMaterial.mEnchantmentTools.getName() : "");
+ if (aMaterial.mEnchantmentTools != null && !aEnchantmentName.equals(aMaterial.mEnchantmentTools.getName()))
+ IntStream.range(0, Enchantment.enchantmentsList.length).filter(i -> aEnchantmentName.equals(Enchantment.enchantmentsList[i].getName())).forEach(i -> aMaterial.mEnchantmentTools = Enchantment.enchantmentsList[i]);
+ }
+
+ private static void addProcessingIntoValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mSmeltInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialSmeltInto", aMaterial.mSmeltInto.mName));
+ aMaterial.mMacerateInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialMacerateInto", aMaterial.mMacerateInto.mName));
+ aMaterial.mArcSmeltInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialArcSmeltInto", aMaterial.mArcSmeltInto.mName));
+ aMaterial.mDirectSmelting = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialDirectSmeltInto", aMaterial.mDirectSmelting.mName));
+ aMaterial.mAutoGenerateBlastFurnaceRecipes = GregTech_API.sMaterialProperties.get(aConfigPath, "AutoGenerateBlastFurnaceRecipes", aMaterial.mAutoGenerateBlastFurnaceRecipes);
+ if (GT_Mod.gregtechproxy.mTEMachineRecipes && aMaterial.mBlastFurnaceRequired && aMaterial.mBlastFurnaceTemp < 1500)
+ GT_ModHandler.ThermalExpansion.addSmelterBlastOre(aMaterial);
+ }
+
+ private static void addMultiplierValues(Materials aMaterial, String aConfigPath) {
+ aMaterial.mOreValue = GregTech_API.sMaterialProperties.get(aConfigPath, "OreValue", aMaterial.mOreValue);
+ aMaterial.setOreMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreMultiplier", aMaterial.mOreMultiplier));
+ aMaterial.setSmeltingMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreSmeltingMultiplier", aMaterial.mSmeltingMultiplier));
+ aMaterial.setByProductMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreByProductMultiplier", aMaterial.mByProductMultiplier));
+ }
+
+ private static void addHasGasFluid(Materials aMaterial, String aConfigPath) {
+ if (aMaterial.mHasPlasma = GregTech_API.sMaterialProperties.get(aConfigPath, "AddPlasma", aMaterial.mHasPlasma))
+ GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial);
+ if (aMaterial.mHasGas = GregTech_API.sMaterialProperties.get(aConfigPath, "AddGas", aMaterial.mHasGas))
+ GT_Mod.gregtechproxy.addFluid(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, 2, aMaterial.mGasTemp);
+ }
+
+ private static void addInternalStuff(Materials aMaterial, String aConfigPath) {
+ aMaterial.mMetaItemSubID = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialID", aMaterial.mCustomOre ? -1 : aMaterial.mMetaItemSubID);
+ aMaterial.mTypes = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialTypes", aMaterial.mCustomOre ? 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 : aMaterial.mTypes);
+ aMaterial.mUnificatable = GregTech_API.sMaterialProperties.get(aConfigPath, "Unificatable", aMaterial.mUnificatable);
+ aMaterial.mHasParentMod = GregTech_API.sMaterialProperties.get(aConfigPath, "HasParentMod", aMaterial.mHasParentMod);
+ }
+
+ private static void addLocalisation(Materials aMaterial, String aConfigPath) {
+ aMaterial.mDefaultLocalName = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialName", aMaterial.mCustomOre ? "CustomOre" + aMaterial.mCustomID : aMaterial.mDefaultLocalName);
+ aMaterial.mChemicalFormula = GregTech_API.sMaterialProperties.get(aConfigPath, "ChemicalFormula", aMaterial.mChemicalFormula);
+ }
+
+ private static String getConfigPath(Materials aMaterial) {
+ String cOre = aMaterial.mCustomOre ? aMaterial.mCustomID : aMaterial.mName;
+ return new StringBuilder(10 + aMaterial.mConfigSection.length() + 1 + cOre.length()).append("materials.").append(aMaterial.mConfigSection).append(".").append(cOre).toString();
+ }
+
+ private static void addHarvestLevelNerfs(Materials aMaterial, String aConfigPath) {
+ /** 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);
+ }
+ }
+
+ private static void addHarvestLevels() {
GT_Mod.gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties.get("harvestlevel", "ActivateHarvestLevelChange", false);
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();
+ }
+
+ public static void initMaterialProperties() {
+ addHarvestLevels();
for (Materials aMaterial : MATERIALS_MAP.values()) {
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();
- aMaterial.mMetaItemSubID = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialID", aMaterial.mCustomOre ? -1 : aMaterial.mMetaItemSubID);
- aMaterial.mDefaultLocalName = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialName", aMaterial.mCustomOre ? "CustomOre" + aMaterial.mCustomID : aMaterial.mDefaultLocalName);
- aMaterial.mMeltingPoint = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "MeltingPoint", aMaterial.mMeltingPoint);
- aMaterial.mBlastFurnaceRequired = GregTech_API.sMaterialProperties.get(aConfigPath, "BlastFurnaceRequired", aMaterial.mBlastFurnaceRequired);
- aMaterial.mBlastFurnaceTemp = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "BlastFurnaceTemp", aMaterial.mBlastFurnaceTemp);
- aMaterial.mAutoGenerateBlastFurnaceRecipes = GregTech_API.sMaterialProperties.get(aConfigPath, "AutoGenerateBlastFurnaceRecipes", aMaterial.mAutoGenerateBlastFurnaceRecipes);
- if (GT_Mod.gregtechproxy.mTEMachineRecipes && aMaterial.mBlastFurnaceRequired && aMaterial.mBlastFurnaceTemp < 1500)
- GT_ModHandler.ThermalExpansion.addSmelterBlastOre(aMaterial);
- aMaterial.mFuelPower = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelPower", aMaterial.mFuelPower);
- aMaterial.mFuelType = GregTech_API.sMaterialProperties.get(aConfigPath, "FuelType", aMaterial.mFuelType);
- aMaterial.mOreValue = GregTech_API.sMaterialProperties.get(aConfigPath, "OreValue", aMaterial.mOreValue);
- aMaterial.mDensityMultiplier = GregTech_API.sMaterialProperties.get(aConfigPath, "DensityMultiplier", aMaterial.mDensityMultiplier);
- aMaterial.mDensityDivider = GregTech_API.sMaterialProperties.get(aConfigPath, "DensityDivider", aMaterial.mDensityDivider);
- aMaterial.mDensity = (long) GregTech_API.sMaterialProperties.get(aConfigPath, "Density", (M * aMaterial.mDensityMultiplier) / aMaterial.mDensityDivider);
- aMaterial.mDurability = GregTech_API.sMaterialProperties.get(aConfigPath, "ToolDurability", aMaterial.mDurability);
- aMaterial.mToolSpeed = (float) GregTech_API.sMaterialProperties.get(aConfigPath, "ToolSpeed", aMaterial.mToolSpeed);
- aMaterial.mToolQuality = (byte) GregTech_API.sMaterialProperties.get(aConfigPath, "ToolQuality", aMaterial.mToolQuality);
- //aMaterial.mIconSet = TextureSet.valueOf(GregTech_API.sMaterialProperties.get(aConfigPath.toString(), "IconSet", aMaterial.mIconSet.mSetName));
- aMaterial.mTransparent = GregTech_API.sMaterialProperties.get(aConfigPath, "Transparent", aMaterial.mTransparent);
- String aColor = GregTech_API.sMaterialProperties.get(aConfigPath, "DyeColor", aMaterial.mColor == Dyes._NULL ? "None" : aMaterial.mColor.toString());
- aMaterial.mColor = aColor.equals("None") ? Dyes._NULL : Dyes.get(aColor);
- String[] aRGBA = GregTech_API.sMaterialProperties.get(aConfigPath, "MatRGBA", aMaterial.mRGBa[0] + "," + aMaterial.mRGBa[1] + "," + aMaterial.mRGBa[2] + "," + aMaterial.mRGBa[3] + ",").split(",");
- aMaterial.mRGBa[0] = Short.parseShort(aRGBA[0]);
- aMaterial.mRGBa[1] = Short.parseShort(aRGBA[1]);
- aMaterial.mRGBa[2] = Short.parseShort(aRGBA[2]);
- aMaterial.mRGBa[3] = Short.parseShort(aRGBA[3]);
- aMaterial.mTypes = GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialTypes", aMaterial.mCustomOre ? 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 : aMaterial.mTypes);
- aMaterial.mUnificatable = GregTech_API.sMaterialProperties.get(aConfigPath, "Unificatable", aMaterial.mUnificatable);
- aMaterial.mChemicalFormula = GregTech_API.sMaterialProperties.get(aConfigPath, "ChemicalFormula", aMaterial.mChemicalFormula);
- aMaterial.mGasTemp = (short) GregTech_API.sMaterialProperties.get(aConfigPath, "GasTemp", aMaterial.mGasTemp);
- aMaterial.setOreMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreMultiplier", aMaterial.mOreMultiplier));
- aMaterial.setSmeltingMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreSmeltingMultiplier", aMaterial.mSmeltingMultiplier));
- aMaterial.setByProductMultiplier(GregTech_API.sMaterialProperties.get(aConfigPath, "OreByProductMultiplier", aMaterial.mByProductMultiplier));
- aMaterial.setHeatDamage((float) GregTech_API.sMaterialProperties.get(aConfigPath, "HeatDamage", aMaterial.mHeatDamage));
- aMaterial.mSmeltInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialSmeltInto", aMaterial.mSmeltInto.mName));
- aMaterial.mMacerateInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialMacerateInto", aMaterial.mMacerateInto.mName));
- aMaterial.mArcSmeltInto = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialArcSmeltInto", aMaterial.mArcSmeltInto.mName));
- aMaterial.mDirectSmelting = MATERIALS_MAP.get(GregTech_API.sMaterialProperties.get(aConfigPath, "MaterialDirectSmeltInto", aMaterial.mDirectSmelting.mName));
- aMaterial.mHasParentMod = GregTech_API.sMaterialProperties.get(aConfigPath, "HasParentMod", aMaterial.mHasParentMod);
- if (aMaterial.mHasPlasma = GregTech_API.sMaterialProperties.get(aConfigPath, "AddPlasma", aMaterial.mHasPlasma))
- GT_Mod.gregtechproxy.addAutogeneratedPlasmaFluid(aMaterial);
- if (aMaterial.mHasGas = GregTech_API.sMaterialProperties.get(aConfigPath, "AddGas", aMaterial.mHasGas))
- GT_Mod.gregtechproxy.addFluid(aMaterial.mName.toLowerCase(), aMaterial.mDefaultLocalName, aMaterial, 2, aMaterial.mGasTemp);
- aMaterial.mEnchantmentToolsLevel = (byte) GregTech_API.sMaterialProperties.get(aConfigPath, "EnchantmentLevel", aMaterial.mEnchantmentToolsLevel);
- String aEnchantmentName = GregTech_API.sMaterialProperties.get(aConfigPath, "Enchantment", aMaterial.mEnchantmentTools != null ? aMaterial.mEnchantmentTools.getName() : "");
- if (aMaterial.mEnchantmentTools != null && !aEnchantmentName.equals(aMaterial.mEnchantmentTools.getName())) {
- IntStream.range(0, Enchantment.enchantmentsList.length).filter(i -> aEnchantmentName.equals(Enchantment.enchantmentsList[i].getName())).forEach(i -> aMaterial.mEnchantmentTools = Enchantment.enchantmentsList[i]);
- }
- /**
- * 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.
- */
+ String aConfigPath = getConfigPath(aMaterial);
+
+ addFuelValues(aMaterial, aConfigPath);
+ addTemperatureValues(aMaterial, aConfigPath);
+ addDensityValues(aMaterial, aConfigPath);
+ addColorValues(aMaterial, aConfigPath);
+ addToolValues(aMaterial, aConfigPath);
+ addEnchantmentValues(aMaterial, aConfigPath);
+ addProcessingIntoValues(aMaterial, aConfigPath);
+ addMultiplierValues(aMaterial, aConfigPath);
+ addHasGasFluid(aMaterial, aConfigPath);
+ addInternalStuff(aMaterial, aConfigPath);
+ addLocalisation(aMaterial, aConfigPath);
SubTagCalculation(aMaterial, aConfigPath);
-
- /** Same principal as SubTags **/
OreByProductsCalculation(aMaterial, aConfigPath);
-
- /** Same principal as SubTags **/
OreReRegistrationsCalculation(aMaterial, aConfigPath);
-
- /** Same principal as SubTags but with two values **/
AspectCalculation(aMaterial, aConfigPath);
-
- /** 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);
- }
- /** Moved from GT_Proxy? (Not sure)**/
- aMaterial.mHandleMaterial = (aMaterial == Desh ? aMaterial.mHandleMaterial : aMaterial == Diamond || aMaterial == Thaumium ? Wood : aMaterial.contains(SubTag.BURNING) ? Blaze : aMaterial.contains(SubTag.MAGICAL) && aMaterial.contains(SubTag.CRYSTAL) && Loader.isModLoaded(GT_Values.MOD_ID_TC) ? Thaumium : aMaterial.getMass() > Element.Tc.getMass() * 2 ? TungstenSteel : aMaterial.getMass() > Element.Tc.getMass() ? Steel : Wood);
+ addHarvestLevelNerfs(aMaterial, aConfigPath);
}
- aConfigPathSB.setLength(0);
}
}
@@ -2199,6 +2303,11 @@ public static Materials Shadow = new Materials( 368, TextureSet
}
}
+ /**
+ * 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.
+ */
private static void SubTagCalculation(Materials aMaterial, String aConfigPath) {
String aDefaultTagString = aMaterial.mSubTags.stream().map(aTag -> aTag.mName).collect(Collectors.joining(",", ",", ""));
String aConfigTagString = GregTech_API.sMaterialProperties.get(aConfigPath, "ListSubTags", aDefaultTagString);
@@ -2709,4 +2818,4 @@ public static Materials Shadow = new Materials( 368, TextureSet
public ItemStack getPlates(int amount) {
return GT_OreDictUnificator.get(OrePrefixes.plate, this, amount);
}
-} \ No newline at end of file
+}