aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-12-13 22:00:33 +0100
committerGitHub <noreply@github.com>2021-12-13 22:00:33 +0100
commit628fe2f0da60e08dcb3a6f900ce8e48278b8e639 (patch)
treee3f0a65ec0616d0492be2a12b9e20f0fc320b88d /src
parentc2b4f33d9e7b3dbfdb430a33349741eb1e6f2758 (diff)
parenta52711dc135c700b0e72f49330e513523ff49d0f (diff)
downloadGT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.tar.gz
GT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.tar.bz2
GT5-Unofficial-628fe2f0da60e08dcb3a6f900ce8e48278b8e639.zip
Merge pull request #67 from GTNewHorizons/Misc2
Rare Earth Changes + Minor bug fixes
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java14
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java16
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java7
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java8
-rw-r--r--src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java4
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java57
-rw-r--r--src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java2
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java114
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java49
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java77
-rw-r--r--src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java30
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java131
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java224
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java68
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java29
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java39
-rw-r--r--src/resources/assets/miscutils/lang/en_US.lang18
17 files changed, 589 insertions, 298 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index a70ce24e45..9787a38504 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -512,7 +512,7 @@ public class GTplusplus implements ActionListener {
sMissingItemMappings.put("miscutils:Krypton", GameRegistry.findItem(CORE.MODID, "itemCellKrypton"));
sMissingItemMappings.put("miscutils:itemCellZirconiumTetrafluoride", GameRegistry.findItem(CORE.MODID, "ZirconiumTetrafluoride"));
sMissingItemMappings.put("miscutils:Li2BeF4", GameRegistry.findItem(CORE.MODID, "itemCellLithiumTetrafluoroberyllate"));
-
+
// Cryolite
sMissingBlockMappings.put("miscutils:oreCryolite", GameRegistry.findBlock(CORE.MODID, "oreCryoliteF"));
sMissingItemMappings.put("miscutils:itemDustTinyCryolite", GameRegistry.findItem(CORE.MODID, "itemDustTinyCryoliteF"));
@@ -524,6 +524,18 @@ public class GTplusplus implements ActionListener {
sMissingItemMappings.put("miscutils:crushedPurifiedCryolite", GameRegistry.findItem(CORE.MODID, "crushedPurifiedCryoliteF"));
sMissingItemMappings.put("miscutils:crushedCentrifugedCryolite", GameRegistry.findItem(CORE.MODID, "crushedCentrifugedCryoliteF"));
sMissingItemMappings.put("miscutils:oreCryolite", GameRegistry.findItem(CORE.MODID, "oreCryoliteF"));
+
+ // Fluorite
+ sMissingBlockMappings.put("miscutils:oreFluorite", GameRegistry.findBlock(CORE.MODID, "oreFluoriteF"));
+ sMissingItemMappings.put("miscutils:itemDustTinyFluorite", GameRegistry.findItem(CORE.MODID, "itemDustTinyFluoriteF"));
+ sMissingItemMappings.put("miscutils:itemDustSmallFluorite", GameRegistry.findItem(CORE.MODID, "itemDustSmallFluoriteF"));
+ sMissingItemMappings.put("miscutils:itemDustFluorite", GameRegistry.findItem(CORE.MODID, "itemDustFluoriteF"));
+ sMissingItemMappings.put("miscutils:dustPureFluorite", GameRegistry.findItem(CORE.MODID, "dustPureFluoriteF"));
+ sMissingItemMappings.put("miscutils:dustImpureFluorite", GameRegistry.findItem(CORE.MODID, "dustImpureFluoriteF"));
+ sMissingItemMappings.put("miscutils:crushedFluorite", GameRegistry.findItem(CORE.MODID, "crushedFluoriteF"));
+ sMissingItemMappings.put("miscutils:crushedPurifiedFluorite", GameRegistry.findItem(CORE.MODID, "crushedPurifiedFluoriteF"));
+ sMissingItemMappings.put("miscutils:crushedCentrifugedFluorite", GameRegistry.findItem(CORE.MODID, "crushedCentrifugedFluoriteF"));
+ sMissingItemMappings.put("miscutils:oreFluorite", GameRegistry.findItem(CORE.MODID, "oreFluoriteF"));
}
@Mod.EventHandler
diff --git a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
index fda7760607..10dea8a7bf 100644
--- a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
+++ b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
@@ -6,8 +6,10 @@ import gtPlusPlus.GTplusplus;
import gtPlusPlus.GTplusplus.INIT_PHASE;
import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.sys.KeyboardUtils;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
@@ -22,7 +24,7 @@ public class GeneralTooltipEventHandler {
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event){
-
+
if (GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.STARTED && GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.SERVER_START) {
return;
}
@@ -68,8 +70,16 @@ public class GeneralTooltipEventHandler {
event.toolTip.add(EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.AQUA+"128000L");
}
}
-
-
+
+ // Custom Flasks
+
+ if (GregtechItemList.VOLUMETRIC_FLASK_8k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_8k.getItem()) {
+ event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(8000)+"L");
+ }
+ if (GregtechItemList.VOLUMETRIC_FLASK_32k.hasBeenSet() && event.itemStack.getItem() == GregtechItemList.VOLUMETRIC_FLASK_32k.getItem()) {
+ event.toolTip.add("Max Capacity: "+MathUtils.formatNumbers(32000)+"L");
+ }
+
if (CORE.ConfigSwitches.enableAnimatedTurbines) {
boolean shift = false;
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index 4c6f0dc712..47278c559d 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -523,6 +523,9 @@ public final class ModItems {
MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().POLONIUM210, false);
MaterialGenerator.generateNuclearMaterial(ELEMENT.getInstance().AMERICIUM241, false);
+ if (!CORE.GTNH) {
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.getInstance().TRINIUM);
+ }
//Custom Materials that will have standalone refinery processes
MaterialGenerator.generate(ELEMENT.STANDALONE.ADVANCED_NITINOL, false);
@@ -534,8 +537,8 @@ public final class ModItems {
//Custom Materials that are from Runescape
MaterialGenerator.generate(ELEMENT.STANDALONE.BLACK_METAL);
MaterialGenerator.generate(ELEMENT.STANDALONE.WHITE_METAL);
- MaterialGenerator.generate(ELEMENT.STANDALONE.GRANITE, false, false);
- MaterialGenerator.generate(ELEMENT.STANDALONE.RUNITE, false);
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.GRANITE);
+ MaterialGenerator.generateOreMaterialWithAllExcessComponents(ELEMENT.STANDALONE.RUNITE);
MaterialGenerator.generate(ELEMENT.STANDALONE.DRAGON_METAL, false);
MISC_MATERIALS.run();
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
index dfc85c533b..8dd2cd1187 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java
@@ -243,10 +243,10 @@ public class MilledOreProcessing extends ItemPackage {
//milledMonazite TODO
registerOreDataForMilledType(
MonaziteFlotationFroth,
- ELEMENT.getInstance().ERBIUM, 96,
- ELEMENT.getInstance().LANTHANUM, 96,
- ELEMENT.getInstance().PRASEODYMIUM, 96,
- ELEMENT.getInstance().EUROPIUM, 32
+ ELEMENT.getInstance().ERBIUM, 64,
+ ELEMENT.getInstance().LANTHANUM, 32,
+ ELEMENT.getInstance().LUTETIUM, 16,
+ ELEMENT.getInstance().EUROPIUM, 8
);
diff --git a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
index aaee1cc790..0b93e7dd9c 100644
--- a/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
+++ b/src/Java/gtPlusPlus/core/material/MISC_MATERIALS.java
@@ -138,8 +138,8 @@ public final class MISC_MATERIALS {
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.NetherQuartz), 1),
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Galena), 1),
new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Chalcopyrite), 1),
- new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Cobaltite), 1),
- new MaterialStack(ELEMENT.STANDALONE.GRANITE, 1)
+ new MaterialStack(ORES.CRYOLITE, 1),
+ new MaterialStack(ELEMENT.getInstance().YTTRIUM, 1)
});
public static final Material RARE_EARTH_MID = new Material(
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index 8425ed89be..d1ea784b81 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -46,6 +46,7 @@ import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_FluidCanning;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluids;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Fluorite;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MaterialProcessing;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MetalRecipe;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Ore;
@@ -397,13 +398,67 @@ public class MaterialGenerator {
temp = new BaseItemPurifiedDust(matInfo);
Logger.MATERIALS("Generated all ore components for "+matInfo.getLocalizedName()+", now generating processing recipes.");
- new RecipeGen_Ore(matInfo);
+
+ if (matInfo == FLUORIDES.FLUORITE){
+ new RecipeGen_Fluorite(matInfo);
+ }
+ else {
+ new RecipeGen_Ore(matInfo);
+ }
} catch (final Throwable t){
Logger.MATERIALS("[Error] "+(matInfo != null ? matInfo.getLocalizedName() : "Null Material")+" failed to generate.");
t.printStackTrace();
}
}
+
+ public static boolean generateOreMaterialWithAllExcessComponents(final Material matInfo){
+ try {
+ if (matInfo == null){
+ Logger.DEBUG_MATERIALS("Invalid Material while constructing null material.");
+ return false;
+ }
+ final short[] C = matInfo.getRGBA();
+ final Integer Colour = Utils.rgbtoHexValue(C[0], C[1], C[2]);
+
+ tempBlock = new BlockBaseOre(matInfo, BlockTypes.ORE, Colour.intValue());
+ tempBlock = new BlockBaseModular(matInfo,BlockTypes.STANDARD);
+ temp = new BaseItemIngot(matInfo);
+ temp = new BaseItemDust(matInfo);
+ temp = new BaseItemNugget(matInfo);
+ temp = new BaseItemPlate(matInfo);
+ temp = new BaseItemPlateDouble(matInfo);
+
+
+ temp = new BaseItemCrushedOre(matInfo);
+ temp = new BaseItemCentrifugedCrushedOre(matInfo);
+ temp = new BaseItemPurifiedCrushedOre(matInfo);
+ temp = new BaseItemImpureDust(matInfo);
+ temp = new BaseItemPurifiedDust(matInfo);
+
+ Logger.MATERIALS("Generated all ore & base components for "+matInfo.getLocalizedName()+", now generating processing recipes.");
+
+ new RecipeGen_Ore(matInfo, true);
+ new RecipeGen_AlloySmelter(matInfo);
+ new RecipeGen_Assembler(matInfo);
+ new RecipeGen_BlastSmelter(matInfo);
+ new RecipeGen_MetalRecipe(matInfo);
+ new RecipeGen_Extruder(matInfo);
+ new RecipeGen_Fluids(matInfo);
+ new RecipeGen_Plates(matInfo);
+ new RecipeGen_ShapedCrafting(matInfo);
+ new RecipeGen_MaterialProcessing(matInfo);
+ new RecipeGen_DustGeneration(matInfo);
+ new RecipeGen_Recycling(matInfo);
+ return true;
+ }
+ catch (final Throwable t){
+ Logger.MATERIALS(""+matInfo.getLocalizedName()+" failed to generate.");
+ t.printStackTrace();
+ return false;
+ }
+
+ }
}
diff --git a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
index 5872587872..d5c6e4a6bf 100644
--- a/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
+++ b/src/Java/gtPlusPlus/core/material/nuclear/FLUORIDES.java
@@ -10,7 +10,7 @@ import gtPlusPlus.core.material.state.MaterialState;
public class FLUORIDES {
public static final Material FLUORITE = new Material(
- "Fluorite", //Material Name
+ "Fluorite (F)", //Material Name
MaterialState.ORE, //State
null, //Material Colour
Materials.Fluorine.mMeltingPoint, //Melting Point in C
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 5156b938db..3d0e6aebfd 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -390,6 +390,28 @@ public class RECIPES_GREGTECH {
20 * 20,
MaterialUtils.getVoltageForTier(aBotmiumTier-2),
6);
+
+
+ //Refine GT HF into GT++ HF
+ if (FluidUtils.doesHydrofluoricAcidGtExist()) {
+ CORE.RA.addChemicalPlantRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(22),
+ },
+ new FluidStack[] {
+ FluidUtils.getHydrofluoricAcid(2000),
+ FluidUtils.getHydrofluoricAcidGT(5000)
+ },
+ new ItemStack[] {
+
+ },
+ new FluidStack[] {
+ FluidUtils.getHydrofluoricAcid(6000)
+ },
+ 30 * 20,
+ 480,
+ 3);
+ }
}
@@ -1268,30 +1290,6 @@ public class RECIPES_GREGTECH {
2 * 20,
500); // EU
- // CaF2 + H2SO4 → CaSO4(solid) + 2 HF
- FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000);
- if (aGregtechHydro == null) {
- aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000);
- }
-
- CORE.RA.addDehydratorRecipe(
- new ItemStack[] {
- CI.getNumberedAdvancedCircuit(5),
- ItemUtils.getItemStackOfAmountFromOreDict("dustFluorite", 37),
- },
- FluidUtils.getFluidStack("sulfuricacid", 56 * 144),
- aGregtechHydro, // Fluid output (slot 2)
- new ItemStack[] {
- ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 30),
- ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1),
- ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2),
- ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1),
- ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2)
- },
- new int[] { 10000, 100, 100, 300, 200 },
- 10 * 60 * 20,
- 230); // EU
-
CORE.RA.addDehydratorRecipe(
new ItemStack[] {
@@ -1662,19 +1660,35 @@ public class RECIPES_GREGTECH {
* so if you dissolve aparite in sulphuric acid you'll get a mixture of
* SO2, H2O, HF and HCl
*/
- final FluidStack[] apatiteOutput = { FluidUtils.getFluidStack("sulfurousacid", 3800),
- FluidUtils.getFluidStack("hydrogenchloride", 1000), FluidUtils.getFluidStack("hydrofluoricacid", 400) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfuricapatite", 5200), apatiteOutput, null,
- 45 * 20, 256);
+ final FluidStack[] apatiteOutput = {
+ FluidUtils.getFluidStack("sulfurousacid", 3800),
+ FluidUtils.getFluidStack("hydrogenchloride", 1000),
+ FluidUtils.getFluidStack("hydrofluoricacid", 400) };
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfuricapatite", 5200),
+ apatiteOutput, null,
+ 45 * 20,
+ 120);
- final FluidStack[] sulfurousacidOutput = { FluidUtils.getFluidStack("sulfurdioxide", 500),
+ final FluidStack[] sulfurousacidOutput = {
+ FluidUtils.getFluidStack("sulfurdioxide", 500),
FluidUtils.getFluidStack("water", 500) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurousacid", 1000), sulfurousacidOutput,
- null, 10 * 20, 60);
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfurousacid", 1000),
+ sulfurousacidOutput,
+ null,
+ 10 * 20,
+ 60);
- final FluidStack[] sulfurdioxideOutput = { FluidUtils.getFluidStack("oxygen", 144 * 2) };
- GT_Values.RA.addDistillationTowerRecipe(FluidUtils.getFluidStack("sulfurdioxide", 144 * 3), sulfurdioxideOutput,
- ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1), 5 * 20, 30);
+ final FluidStack[] sulfurdioxideOutput = {
+ FluidUtils.getFluidStack("oxygen", 2000)
+ };
+ GT_Values.RA.addDistillationTowerRecipe(
+ FluidUtils.getFluidStack("sulfurdioxide", 144 * 3),
+ sulfurdioxideOutput,
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSulfur", 1),
+ 5 * 20,
+ 30);
}
private static void addFuels() {
@@ -1735,16 +1749,6 @@ public class RECIPES_GREGTECH {
}
private static void chemicalBathRecipes() {
-
- GT_Values.RA.addChemicalBathRecipe(
- FLUORIDES.FLUORITE.getCrushed(2),
- FluidUtils.getFluidStack("hydrogen", 2000),
- FLUORIDES.FLUORITE.getCrushedPurified(8),
- FLUORIDES.FLUORITE.getDustImpure(4),
- FLUORIDES.FLUORITE.getDustPurified(2),
- new int[] { 10000, 5000, 1000 },
- 30 * 20,
- 240);
}
@@ -1787,25 +1791,13 @@ public class RECIPES_GREGTECH {
10 * 20);
GT_Values.RA.addChemicalRecipe(
- ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 16),
- null,
- FluidUtils.getFluidStack("sulfuricacid", 144 * 32),
- FluidUtils.getFluidStack("sulfuricapatite", 144 * 8),
- ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 1),
+ CI.getNumberedAdvancedCircuit(21),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustApatite", 32),
+ FluidUtils.getFluidStack("sulfuricacid", 4000),
+ FluidUtils.getFluidStack("sulfuricapatite", 8000),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSmallSulfur", 8),
20 * 20);
- ItemStack temp_GT5u_SA = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellHydrofluoricAcid_GT5U", 5);
- if (temp_GT5u_SA != null) {
- //Refine GT HF into GT++ HF
- GT_Values.RA.addChemicalRecipe(
- ItemUtils.getItemStackOfAmountFromOreDict("cellHydrofluoricAcid", 2),
- temp_GT5u_SA,
- null, // Fluid Input
- FluidUtils.getFluidStack("hydrofluoricacid", 6000), // Fluid Output
- CI.emptyCells(7),
- 2 * 20);
- }
-
}
private static void blastFurnaceRecipes() {
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
index 97636e9e65..864d0bcca8 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_RareEarthProcessing.java
@@ -168,34 +168,47 @@ public class RECIPES_RareEarthProcessing {
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 3),
FluidUtils.getFluidStack(aSulfuric, 1000),
- RARE_EARTH_LOW.getCrushed(1),
- RARE_EARTH_LOW.getCrushed(1),
- RARE_EARTH_LOW.getCrushed(1),
- new int[] {10000, 10000, 9000},
+ RARE_EARTH_LOW.getCrushed(2),
+ RARE_EARTH_LOW.getCrushed(2),
+ RARE_EARTH_LOW.getCrushed(2),
+ new int[] {10000, 10000, 10000},
20 * 30,
- (int) GT_Values.V[1]);
+ MaterialUtils.getVoltageForTier(1));
// HV Rare Earth
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 6),
- FluidUtils.getFluidStack(aHydrocholric, 3000),
- RARE_EARTH_MID.getCrushed(2),
- RARE_EARTH_MID.getCrushed(2),
- RARE_EARTH_MID.getCrushed(2),
+ FluidUtils.getFluidStack(aHydrocholric, 2000),
+ RARE_EARTH_MID.getCrushed(4),
+ RARE_EARTH_MID.getCrushed(4),
+ RARE_EARTH_MID.getCrushed(4),
new int[] {10000, 9000, 8000},
- 20 * 60,
- (int) GT_Values.V[3]);
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(3));
// IV Rare Earth
GT_Values.RA.addChemicalBathRecipe(
ItemUtils.getSimpleStack(aRareEarth, 9),
- FluidUtils.getFluidStack(aNitric, 6000),
- RARE_EARTH_HIGH.getCrushed(3),
- RARE_EARTH_HIGH.getCrushed(3),
- RARE_EARTH_HIGH.getCrushed(3),
- new int[] {9000, 8000, 7000},
- 20 * 90,
- (int) GT_Values.V[5]);
+ FluidUtils.getHydrofluoricAcid(3000),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ new int[] {10000, 9000, 8000},
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(5));
+
+ if (FluidUtils.doesHydrofluoricAcidGtExist()) {
+ // IV Rare Earth
+ GT_Values.RA.addChemicalBathRecipe(
+ ItemUtils.getSimpleStack(aRareEarth, 9),
+ FluidUtils.getHydrofluoricAcidGT(6000),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ RARE_EARTH_HIGH.getCrushed(6),
+ new int[] {9000, 8000, 7000},
+ 20 * 30,
+ MaterialUtils.getVoltageForTier(5));
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index a6bd50ff17..73fa919731 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -1,5 +1,7 @@
package gtPlusPlus.core.util.minecraft;
+import java.util.HashMap;
+
import gregtech.api.enums.Dyes;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
@@ -24,7 +26,9 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
public class FluidUtils {
-
+
+ private static HashMap<String, Fluid> sFluidCache = new HashMap<String, Fluid>();
+
public static FluidStack getWater(final int amount){
return FluidUtils.getFluidStack("water", amount);
}
@@ -87,44 +91,67 @@ public class FluidUtils {
return FluidUtils.getFluidStack("ic2uumatter", amount);
}
- public static FluidStack getFluidStack(final String fluidName, final int amount){
- Logger.WARNING("Trying to get a fluid stack of "+fluidName);
- try {
- FluidStack x = FluidRegistry.getFluidStack(fluidName, amount);
- return x != null ? x.copy() : null;
+ public static FluidStack getHydrofluoricAcid(int amount) {
+ return FluidUtils.getFluidStack("hydrofluoricacid", amount);
+ }
+
+ public static Fluid sGregtechHydrofluoricAcid = null;
+
+ public static FluidStack getHydrofluoricAcidGT(int amount) {
+ if (sGregtechHydrofluoricAcid == null) {
+ FluidStack aGTHF = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 1);
+ sGregtechHydrofluoricAcid = aGTHF != null ? aGTHF.getFluid() : getHydrofluoricAcid(1).getFluid();
}
- catch (final Throwable e){
- return null;
+ return FluidUtils.getFluidStack(sGregtechHydrofluoricAcid, amount);
+ }
+
+ public static boolean doesHydrofluoricAcidGtExist() {
+ if (sGregtechHydrofluoricAcid == null) {
+ getHydrofluoricAcidGT(1);
}
-
+ return sGregtechHydrofluoricAcid != null && sGregtechHydrofluoricAcid != getHydrofluoricAcid(1).getFluid();
}
-
- public static FluidStack getFluidStack(final FluidStack vmoltenFluid, final int fluidAmount) {
- Logger.WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName());
- try {
- FluidStack x = FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount);
- return x != null ? x.copy() : null;
+
+ private static FluidStack createFluidStack(Fluid aFluid, int aAmount) {
+ if (aFluid != null) {
+ return new FluidStack(aFluid, aAmount);
}
- catch (final Throwable e){
- return null;
+ return null;
+ }
+
+ public static FluidStack getFluidStack(final String aFluidName, final int aAmount){
+ Fluid aFluid = sFluidCache.get(aFluidName);
+ if (aFluid != null) {
+ return createFluidStack(aFluid, aAmount);
}
+ else {
+ Fluid aLookupFluid = FluidRegistry.getFluid(aFluidName);
+ if (aLookupFluid != null) {
+ sFluidCache.put(aFluidName, aLookupFluid);
+ return createFluidStack(aLookupFluid, aAmount);
+ }
+ }
+ return null;
}
- public static FluidStack getFluidStack(final Fluid vFluid, final int fluidAmount) {
- Logger.WARNING("Trying to get a fluid stack of "+vFluid.getName());
- try {
- FluidStack x = FluidRegistry.getFluidStack(vFluid.getName(), fluidAmount);
- return x != null ? x.copy() : null;
+ public static FluidStack getFluidStack(final FluidStack aFluidStack, final int aAmount) {
+ if (aFluidStack == null) {
+ return null;
}
- catch (final Throwable e){
+ return new FluidStack(aFluidStack, aAmount);
+ }
+
+ public static FluidStack getFluidStack(final Fluid aFluid, final int aAmount) {
+ if (aFluid == null) {
return null;
}
+ return new FluidStack(aFluid, aAmount);
}
public static FluidStack[] getFluidStackArray(final String fluidName, final int amount){
Logger.WARNING("Trying to get a fluid stack of "+fluidName);
try {
- final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName, amount)};
+ final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)};
return singleFluid;
}
catch (final Throwable e){
@@ -136,7 +163,7 @@ public class FluidUtils {
public static FluidStack[] getFluidStackArray(final FluidStack fluidName, final int amount){
Logger.WARNING("Trying to get a fluid stack of "+fluidName);
try {
- final FluidStack[] singleFluid = {FluidRegistry.getFluidStack(fluidName.getLocalizedName(), amount)};
+ final FluidStack[] singleFluid = {getFluidStack(fluidName, amount)};
return singleFluid;
}
catch (final Throwable e){
diff --git a/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java b/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java
index 0709f0b1ff..ef8aa080c2 100644
--- a/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java
+++ b/src/Java/gtPlusPlus/everglades/GTplusplus_Everglades.java
@@ -126,36 +126,6 @@ public class GTplusplus_Everglades implements ActionListener {
if (LoadedMods.Big_Reactors) {
MaterialGenerator.generateOreMaterial(ELEMENT.getInstance().YELLORIUM, false, false, true, new short[] {255, 242, 10});
}
-
- if (!CORE.GTNH) {
- MaterialGenerator.generateOreMaterial(
- ELEMENT.getInstance().TRINIUM,
- true,
- false,
- false,
- ELEMENT.getInstance().TRINIUM_REFINED.getRGBA());
- }
-
-
-
- /*
- * OSRS Materials
- */
-
- MaterialGenerator.generateOreMaterial(
- ELEMENT.STANDALONE.GRANITE,
- true,
- false,
- false,
- ELEMENT.STANDALONE.GRANITE.getRGBA());
- MaterialGenerator.generateOreMaterial(
- ELEMENT.STANDALONE.RUNITE,
- true,
- false,
- false,
- ELEMENT.STANDALONE.RUNITE.getRGBA());
-
-
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
index e6fd5dc797..5fb3b11d08 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
@@ -1,30 +1,30 @@
package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
-import net.minecraft.world.World;
-import net.minecraft.item.ItemStack;
+import java.lang.reflect.Field;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
+import gregtech.api.objects.GT_RenderedTexture;
import gtPlusPlus.api.objects.random.XSTR;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-
-import gregtech.api.metatileentity.MetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-
-import java.lang.reflect.Field;
-
import net.minecraft.entity.player.EntityPlayer;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.ITexture;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_Input {
+
private static XSTR floatGen;
+ public int mProgresstime = 0, mMaxProgresstime = 0;
public GT_MetaTileEntity_Hatch_AirIntake(final int aID, final String aName, final String aNameRegional,
final int aTier) {
@@ -127,17 +127,42 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
super.onPostTick(aBaseMetaTileEntity, aTick);
- if (this.getBaseMetaTileEntity().isActive() && addAirToHatch(aTick)) {
- if (aTick % 8 == 0) {
- if (aBaseMetaTileEntity.isClientSide()) {
- this.pollutionParticles(this.getBaseMetaTileEntity().getWorld(), "cloud");
- }
+
+ if (!aBaseMetaTileEntity.isAllowedToWork()) {
+ aBaseMetaTileEntity.setActive(false);
+ mProgresstime = 0;
+ mMaxProgresstime = 0;
+ }
+ else {
+ aBaseMetaTileEntity.setActive(true);
+ mMaxProgresstime = 4;
+ if (++mProgresstime >= mMaxProgresstime) {
+ addAirToHatch(aTick);
+ mProgresstime = 0;
}
- }
+ }
}
+
+ @Override
+ public int getProgresstime() {
+ return mProgresstime;
+ }
+
+ @Override
+ public int maxProgresstime() {
+ return mMaxProgresstime;
+ }
+
+ @Override
+ public int increaseProgress(int aProgress) {
+ mProgresstime += aProgress;
+ return mMaxProgresstime - mProgresstime;
+ }
public void pollutionParticles(final World aWorld, final String name) {
-
+ if (this.getBaseMetaTileEntity().isServerSide()) {
+ return;
+ }
final float ran1 = GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat();
float ran2 = 0.0f;
float ran3 = 0.0f;
@@ -159,14 +184,13 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
zSpd = (float) Math.cos(temp) * 0.1f;
ySpd = -ySpd;
yPos = yPos - 0.8f;
- } else {
+ }
+ else {
xSpd = aDir.offsetX * (0.1f + 0.2f * GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat());
zSpd = aDir.offsetZ * (0.1f + 0.2f * GT_MetaTileEntity_Hatch_AirIntake.floatGen.nextFloat());
xSpd = -xSpd;
zSpd = -zSpd;
-
-
}
aWorld.spawnParticle(name, (double) (xPos + ran1 * 0.5f),
@@ -210,49 +234,24 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
if (AIR == this.mFluid.getFluid()) {
return true;
}
- else return false;
}
- return true;
+ return false;
}
public boolean addAirToHatch(long aTick) {
if (!this.getBaseMetaTileEntity().getAirAtSide(this.getBaseMetaTileEntity().getFrontFacing())) {
return false;
}
- boolean a1 = canTankBeFilled();
- if (aTick % 4 != 0 && a1) {
- return true;
- }
- else if (aTick % 4 != 0 && !a1) {
- return false;
+ boolean didFill = this.fill(FluidUtils.getAir(1000), true) > 0;
+ if (didFill) {
+ this.pollutionParticles(this.getBaseMetaTileEntity().getWorld(), "cloud");
}
- else {
- if (!isAirInHatch()) {
- return false;
- }
- if (this.mFluid != null && a1) {
- this.mFluid.amount += 1000;
- return true;
- }
- else if (this.mFluid != null && !a1) {
- return false;
- }
- else {
- if (this.mFluid == null) {
- this.mFluid = FluidUtils.getFluidStack("air", 1000);
- return true;
- }
- else {
- //Not sure how any other fluid got in here
- return false;
- }
- }
- }
+ return didFill;
}
@Override
public boolean canTankBeFilled() {
- if (this.mFluid == null || (this.mFluid != null && ((this.mFluid.amount+1000) <= this.getCapacity()))) {
+ if (this.mFluid == null || (this.mFluid != null && (this.mFluid.amount <= this.getCapacity()))) {
return true;
}
return false;
@@ -265,12 +264,12 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
@Override
public boolean doesFillContainers() {
- return false;
+ return true;
}
@Override
public int fill(FluidStack aFluid, boolean doFill) {
- return 0;
+ return super.fill(aFluid, doFill);
}
@Override
@@ -287,4 +286,18 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) {
return 0;
}
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setInteger("mProgresstime", mProgresstime);
+ aNBT.setInteger("mMaxProgresstime", mMaxProgresstime);
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ mProgresstime = aNBT.getInteger("mProgresstime");
+ mMaxProgresstime = aNBT.getInteger("mMaxProgresstime");
+ super.loadNBTData(aNBT);
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java
new file mode 100644
index 0000000000..b285d41652
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluorite.java
@@ -0,0 +1,224 @@
+package gtPlusPlus.xmod.gregtech.loaders;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_ModHandler;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.data.Pair;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
+import gtPlusPlus.core.material.MaterialStack;
+import gtPlusPlus.core.material.nuclear.FLUORIDES;
+import gtPlusPlus.core.material.state.MaterialState;
+import gtPlusPlus.core.recipe.common.CI;
+import gtPlusPlus.core.util.minecraft.FluidUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
+import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+public class RecipeGen_Fluorite extends RecipeGen_Base {
+
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
+
+ public RecipeGen_Fluorite(final Material material){
+ this.toGenerate = material;
+ mRecipeGenMap.add(this);
+
+
+ /**
+ * Shaped Crafting
+ */
+ RecipeUtils.addShapedRecipe(
+ CI.craftingToolHammer_Hard, null, null,
+ material.getCrushedPurified(1), null, null,
+ null, null, null,
+ material.getDustPurified(1));
+
+ RecipeUtils.addShapedRecipe(
+ CI.craftingToolHammer_Hard, null, null,
+ material.getCrushed(1), null, null,
+ null, null, null,
+ material.getDustImpure(1));
+
+ RecipeUtils.addShapedRecipe(
+ CI.craftingToolHammer_Hard, null, null,
+ material.getCrushedCentrifuged(1), null, null,
+ null, null, null,
+ material.getDust(1));
+
+
+
+ final ItemStack normalDust = material.getDust(1);
+ final ItemStack smallDust = material.getSmallDust(1);
+ final ItemStack tinyDust = material.getTinyDust(1);
+
+ if (RecipeUtils.addShapedRecipe(
+ tinyDust, tinyDust, tinyDust,
+ tinyDust, tinyDust, tinyDust,
+ tinyDust, tinyDust, tinyDust,
+ normalDust)){
+ Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ if (RecipeUtils.addShapedRecipe(
+ normalDust, null, null,
+ null, null, null,
+ null, null, null,
+ material.getTinyDust(9))){
+ Logger.WARNING("9 Tiny dust from 1 Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("9 Tiny dust from 1 Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ if (RecipeUtils.addShapedRecipe(
+ smallDust, smallDust, null,
+ smallDust, smallDust, null,
+ null, null, null,
+ normalDust)){
+ Logger.WARNING("4 Small dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("4 Small dust to 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+
+ if (RecipeUtils.addShapedRecipe(
+ null, normalDust, null,
+ null, null, null,
+ null, null, null,
+ material.getSmallDust(4))){
+ Logger.WARNING("4 Small dust from 1 Dust Recipe: "+material.getLocalizedName()+" - Success");
+ }
+ else {
+ Logger.WARNING("4 Small dust from 1 Dust Recipe: "+material.getLocalizedName()+" - Failed");
+ }
+ }
+
+ @Override
+ public void run() {
+ generateRecipes(this.toGenerate);
+ }
+
+ public static void generateRecipes(final Material material){
+
+ int tVoltageMultiplier = MaterialUtils.getVoltageForTier(material.vTier);
+
+ final ItemStack dustStone = ItemUtils.getItemStackOfAmountFromOreDict("dustStone", 1);
+
+
+ ItemStack tinyDustA = FLUORIDES.FLUORITE.getTinyDust(1);
+ ItemStack tinyDustB = FLUORIDES.FLUORITE.getTinyDust(1);
+ ItemStack matDust = FLUORIDES.FLUORITE.getDust(1);
+ ItemStack matDustA = FLUORIDES.FLUORITE.getDust(1);
+
+ /**
+ * Package
+ */
+ //Allow ore dusts to be packaged
+ if (ItemUtils.checkForInvalidItems(material.getSmallDust(1)) && ItemUtils.checkForInvalidItems(material.getTinyDust(1))) {
+ RecipeGen_DustGeneration.generatePackagerRecipes(material);
+ }
+
+
+ /**
+ * Macerate
+ */
+ //Macerate ore to Crushed
+ if (GT_Values.RA.addPulveriserRecipe(material.getOre(1), new ItemStack[]{material.getCrushed(2)}, new int[]{10000}, 20*20, tVoltageMultiplier/2)){
+ Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate ore to Crushed ore'");
+ }
+ //Macerate Centrifuged to Pure Dust
+ if (GT_Values.RA.addPulveriserRecipe(material.getCrushedCentrifuged(1), new ItemStack[]{matDust, matDustA}, new int[]{10000, 1000}, 20*20, tVoltageMultiplier/2)){
+ Logger.MATERIALS("[Macerator] Added Recipe: 'Macerate Centrifuged ore to Pure Dust'");
+ }
+ if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustA, dustStone)){
+ Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: "+material.getCrushedPurified(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustA.getDisplayName()+", "+dustStone.getDisplayName()+".");
+ }
+
+ GT_Values.RA.addChemicalBathRecipe(
+ FLUORIDES.FLUORITE.getCrushed(2),
+ FluidUtils.getFluidStack("hydrogen", 2000),
+ FLUORIDES.FLUORITE.getCrushedPurified(8),
+ FLUORIDES.FLUORITE.getDustImpure(4),
+ FLUORIDES.FLUORITE.getDustPurified(2),
+ new int[] { 10000, 5000, 1000 },
+ 30 * 20,
+ 240);
+
+ /**
+ * Forge Hammer
+ */
+ if (GT_Values.RA.addForgeHammerRecipe(material.getCrushedCentrifuged(1), matDust, 10, tVoltageMultiplier/4)){
+ Logger.MATERIALS("[ForgeHammer] Added Recipe: 'Crushed Centrifuged to Pure Dust'");
+ }
+
+ /**
+ * Centrifuge
+ */
+ //Purified Dust to Clean
+ if (GT_Values.RA.addCentrifugeRecipe(
+ material.getDustPurified(1), null,
+ null, //In Fluid
+ null, //Out Fluid
+ matDust, tinyDustA,null,
+ null, null,null,
+ new int[]{10000, 10000}, //Chances
+ (int) Math.max(1L, material.getMass() * 8L), //Time
+ tVoltageMultiplier/2)){ //Eu
+ Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust");
+ }
+
+ //Impure Dust to Clean
+ if (GT_Values.RA.addCentrifugeRecipe(
+ material.getDustImpure(1), null,
+ null, //In Fluid
+ null, //Out Fluid
+ matDust, tinyDustB,null,
+ null, null,null,
+ new int[]{10000, 10000}, //Chances
+ (int) Math.max(1L, material.getMass() * 8L), //Time
+ tVoltageMultiplier/2)){ //Eu
+ Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust");
+ }
+
+ // CaF2 + H2SO4 → CaSO4(solid) + 2 HF
+ FluidStack aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid_gt5u", 16000);
+ if (aGregtechHydro == null) {
+ aGregtechHydro = FluidUtils.getFluidStack("hydrofluoricacid", 16000);
+ }
+
+ CORE.RA.addDehydratorRecipe(
+ new ItemStack[] {
+ CI.getNumberedAdvancedCircuit(5),
+ FLUORIDES.FLUORITE.getDust(37),
+ },
+ FluidUtils.getFluidStack("sulfuricacid", 8000),
+ aGregtechHydro, // Fluid output (slot 2)
+ new ItemStack[] {
+ ItemUtils.getItemStackOfAmountFromOreDict("dustCalciumSulfate", 15),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustSilver", 1),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustGold", 2),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustTin", 1),
+ ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 2)
+ },
+ new int[] { 10000, 1000, 1000, 3000, 2000 },
+ 10 * 60 * 20,
+ 240); // EU
+
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
index f8108852f4..92d7f73ba4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
@@ -3,12 +3,7 @@ package gtPlusPlus.xmod.gregtech.loaders;
import java.util.HashSet;
import java.util.Set;
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Recipe;
-
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -20,6 +15,7 @@ import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
@@ -30,16 +26,24 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
}
public RecipeGen_MaterialProcessing(final Material M){
- this.toGenerate = M;
+ this(M, false);
+ }
+
+ public RecipeGen_MaterialProcessing(final Material M, final boolean O){
+ this.toGenerate = M;
+ this.disableOptional = O;
mRecipeGenMap.add(this);
}
@Override
public void run() {
- generateRecipes(this.toGenerate);
+ generateRecipes(this.toGenerate, this.disableOptional);
}
- private void generateRecipes(final Material material){
+ private void generateRecipes(final Material material, final boolean disableOptional){
+ if (disableOptional) {
+ return;
+ }
if (material.getMaterialComposites().length > 1){
Logger.MATERIALS("[Recipe Generator Debug] ["+material.getLocalizedName()+"]");
@@ -65,7 +69,7 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
/**
- * Electrolyzer
+ * Centrifuge
*/
//Process Dust
@@ -79,14 +83,14 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
int mCounter = 0;
for (Pair<Integer, Material> f : componentMap){
if (f.getValue().getState() != MaterialState.SOLID){
- Logger.MATERIALS("[Electrolyzer] Found Fluid Component, adding "+f.getKey()+" cells of "+f.getValue().getLocalizedName()+".");
+ Logger.MATERIALS("[Centrifuge] Found Fluid Component, adding "+f.getKey()+" cells of "+f.getValue().getLocalizedName()+".");
mInternalOutputs[mCounter++] = f.getValue().getCell(f.getKey());
mCellCount += f.getKey();
mTotalCount += f.getKey();
- Logger.MATERIALS("[Electrolyzer] In total, adding "+mCellCount+" cells for "+material.getLocalizedName()+" processing.");
+ Logger.MATERIALS("[Centrifuge] In total, adding "+mCellCount+" cells for "+material.getLocalizedName()+" processing.");
}
else {
- Logger.MATERIALS("[Electrolyzer] Found Solid Component, adding "+f.getKey()+" dusts of "+f.getValue().getLocalizedName()+".");
+ Logger.MATERIALS("[Centrifuge] Found Solid Component, adding "+f.getKey()+" dusts of "+f.getValue().getLocalizedName()+".");
mInternalOutputs[mCounter++] = f.getValue().getDust(f.getKey());
mTotalCount += f.getKey();
}
@@ -94,38 +98,38 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
//Build Output Array
for (int g=0;g<mInternalOutputs.length;g++){
- Logger.MATERIALS("[Electrolyzer] Is output["+g+"] valid with a chance? "+(mInternalOutputs[g] != null ? 10000 : 0));
+ Logger.MATERIALS("[Centrifuge] Is output["+g+"] valid with a chance? "+(mInternalOutputs[g] != null ? 10000 : 0));
mChances[g] = (mInternalOutputs[g] != null ? 10000 : 0);
}
ItemStack emptyCell = null;
if (mCellCount > 0){
emptyCell = ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", mCellCount);
- Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mCellCount+" empty cells as input.");
+ Logger.MATERIALS("[Centrifuge] Recipe now requires "+mCellCount+" empty cells as input.");
}
ItemStack mainDust = material.getDust(material.smallestStackSizeWhenProcessing);
if (mainDust != null){
- Logger.MATERIALS("[Electrolyzer] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input.");
+ Logger.MATERIALS("[Centrifuge] Recipe now requires "+material.smallestStackSizeWhenProcessing+"x "+mainDust.getDisplayName()+" as input.");
}
else {
mainDust = material.getDust(mTotalCount);
- Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, trying alternative.");
+ Logger.MATERIALS("[Centrifuge] Could not find valid input dust, trying alternative.");
if (mainDust != null){
- Logger.MATERIALS("[Electrolyzer] Recipe now requires "+mTotalCount+"x "+mainDust.getDisplayName()+" as input.");
+ Logger.MATERIALS("[Centrifuge] Recipe now requires "+mTotalCount+"x "+mainDust.getDisplayName()+" as input.");
}
else {
- Logger.MATERIALS("[Electrolyzer] Could not find valid input dust, exiting.");
+ Logger.MATERIALS("[Centrifuge] Could not find valid input dust, exiting.");
}
}
for (int j=0;j<mInternalOutputs.length;j++){
if (mInternalOutputs[j] == null){
mInternalOutputs[j] = GT_Values.NI;
- Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to null.");
+ Logger.MATERIALS("[Centrifuge] Set slot "+j+" to null.");
}
else {
- Logger.MATERIALS("[Electrolyzer] Set slot "+j+" to "+mInternalOutputs[j].getDisplayName()+".");
+ Logger.MATERIALS("[Centrifuge] Set slot "+j+" to "+mInternalOutputs[j].getDisplayName()+".");
}
}
@@ -144,10 +148,10 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
mChances,
20*1*(tVoltageMultiplier/10),
tVoltageMultiplier)){
- Logger.MATERIALS("[Electrolyzer] Generated Electrolyzer recipe for "+material.getDust(1).getDisplayName());
+ Logger.MATERIALS("[Centrifuge] Generated Centrifuge recipe for "+material.getDust(1).getDisplayName());
}
else {
- Logger.MATERIALS("[Electrolyzer] Failed to generate Electrolyzer recipe for "+material.getDust(1).getDisplayName());
+ Logger.MATERIALS("[Centrifuge] Failed to generate Centrifuge recipe for "+material.getDust(1).getDisplayName());
}
}
catch(Throwable t){
@@ -252,23 +256,5 @@ public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
public static boolean addCentrifgeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) {
return GT_Values.RA.addCentrifugeRecipe(aInput1, aInput2, aFluidInput, aFluidOutput, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, aChances, aDuration, aEUt);
}
-
- public static boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) {
- if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) {
- Logger.MATERIALS("[Electrolyzer] Either both inputs or outputs are null.");
- return false;
- }
- if ((aInput1 != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aInput1, aDuration)) <= 0)) {
- Logger.MATERIALS("[Electrolyzer] Fail 1.");
- return false;
- }
- if ((aFluidInput != null) && ((aDuration = GregTech_API.sRecipeFile.get("electrolyzer", aFluidInput.getFluid().getName(), aDuration)) <= 0)) {
- Logger.MATERIALS("[Electrolyzer] Fail 2.");
- return false;
- }
- GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.addRecipe(true, new ItemStack[]{aInput1, aInput2}, new ItemStack[]{aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6}, null, aChances, new FluidStack[]{aFluidInput}, new FluidStack[]{aFluidOutput}, aDuration, aEUt, 0);
- Logger.MATERIALS("[Electrolyzer] Recipe added.");
- return true;
- }
-
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
index b7043b5983..f3ff935d6e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Ore.java
@@ -33,20 +33,25 @@ public class RecipeGen_Ore extends RecipeGen_Base {
static {
MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
}
-
+
public RecipeGen_Ore(final Material M){
+ this(M, false);
+ }
+
+ public RecipeGen_Ore(final Material M, final boolean O){
this.toGenerate = M;
+ this.disableOptional = O;
mRecipeGenMap.add(this);
}
@Override
public void run() {
- generateRecipes(this.toGenerate);
+ generateRecipes(this.toGenerate, this.disableOptional);
}
private static Material mStone;
- public static void generateRecipes(final Material material){
+ private void generateRecipes(final Material material, final boolean disableOptional){
if (mStone == null) {
mStone = MaterialUtils.generateMaterialFromGtENUM(Materials.Stone);
@@ -225,13 +230,13 @@ public class RecipeGen_Ore extends RecipeGen_Base {
try {
//.08 compat
- if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), 200, material.getCrushedCentrifuged(1), tinyDustB, dustStone)){
+ if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushed(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustB, dustStone)){
Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Crushed ore to Centrifuged Ore' | Input: "+material.getCrushed(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustB.getDisplayName()+", "+dustStone.getDisplayName()+".");
}
}
catch (Throwable t) {}
try {
- if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), 200, material.getCrushedCentrifuged(1), tinyDustA, dustStone)){
+ if (GT_ModHandler.addThermalCentrifugeRecipe(material.getCrushedPurified(1), (int) Math.min(5000L, Math.abs(material.getMass() * 20L)), material.getCrushedCentrifuged(1), tinyDustA, dustStone)){
Logger.MATERIALS("[ThermalCentrifuge] Added Recipe: 'Washed ore to Centrifuged Ore' | Input: "+material.getCrushedPurified(1).getDisplayName()+" | Outputs: "+material.getCrushedCentrifuged(1).getDisplayName()+", "+tinyDustA.getDisplayName()+", "+dustStone.getDisplayName()+".");
}
}
@@ -262,7 +267,7 @@ public class RecipeGen_Ore extends RecipeGen_Base {
matDust, tinyDustA,null,
null, null,null,
new int[]{10000, 10000}, //Chances
- 5*20, //Time
+ (int) Math.max(1L, material.getMass() * 8L), //Time
tVoltageMultiplier/2)){ //Eu
Logger.MATERIALS("[Centrifuge] Added Recipe: Purified Dust to Clean Dust");
}
@@ -275,7 +280,7 @@ public class RecipeGen_Ore extends RecipeGen_Base {
matDust, tinyDustB,null,
null, null,null,
new int[]{10000, 10000}, //Chances
- 5*20, //Time
+ (int) Math.max(1L, material.getMass() * 8L), //Time
tVoltageMultiplier/2)){ //Eu
Logger.MATERIALS("[Centrifuge] Added Recipe: Inpure Dust to Clean Dust");
}
@@ -285,6 +290,7 @@ public class RecipeGen_Ore extends RecipeGen_Base {
* Electrolyzer
*/
+ if (!disableOptional) {
//Process Dust
if (componentMap.size() > 0 && componentMap.size() <= 6){
@@ -434,9 +440,7 @@ public class RecipeGen_Ore extends RecipeGen_Base {
}
}
- try{
-
-
+ try{
if (CORE.RA.addDehydratorRecipe(
new ItemStack[]{mainDust, emptyCell},
null,
@@ -446,6 +450,10 @@ public class RecipeGen_Ore extends RecipeGen_Base {
(int) Math.max(material.getMass() * 4L * 1, 1),
tVoltageMultiplier)){
Logger.MATERIALS("[Dehydrator] Generated Dehydrator recipe for "+matDust.getDisplayName());
+ Logger.MATERIALS("Inputs: "+mainDust.getDisplayName()+" x"+mainDust.stackSize+", "+(emptyCell == null ? "No Cells" : ""+emptyCell.getDisplayName()+" x"+emptyCell.stackSize));
+ Logger.MATERIALS("Outputs "+ItemUtils.getArrayStackNames(mInternalOutputs));
+ Logger.MATERIALS("Time: "+((int) Math.max(material.getMass() * 4L * 1, 1)));
+ Logger.MATERIALS("EU: "+tVoltageMultiplier);
}
else {
Logger.MATERIALS("[Dehydrator] Failed to generate Dehydrator recipe for "+matDust.getDisplayName());
@@ -457,6 +465,7 @@ public class RecipeGen_Ore extends RecipeGen_Base {
}
+ }
/**
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java
index e84ce73a47..2e6de159d0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java
@@ -1,51 +1,28 @@
package gtPlusPlus.xmod.gregtech.loaders.misc;
-import java.lang.reflect.Method;
-
import gregtech.api.util.GTPP_Recipe;
+import gregtech.api.util.GT_ProcessingArray_Manager;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.api.objects.Logger;
public class AddCustomMachineToPA {
- private static final boolean sDoesPatchExist;
- private static final Class sManagerPA;
- private static final Method sRegisterRecipeMapForMeta;
-
- static {
- sDoesPatchExist = ReflectionUtils.doesClassExist("gregtech.api.util.GT_ProcessingArray_Manager");
- if (sDoesPatchExist) {
- sManagerPA = ReflectionUtils.getClass("gregtech.api.util.GT_ProcessingArray_Manager");
- sRegisterRecipeMapForMeta = ReflectionUtils.getMethod(sManagerPA, "registerRecipeMapForMeta", int.class, GT_Recipe_Map.class);
- }
- else {
- sManagerPA = null;
- sRegisterRecipeMapForMeta = null;
- }
- }
-
public static final void registerRecipeMapForID(int aID, GT_Recipe_Map aMap) {
- if (sDoesPatchExist) {
- ReflectionUtils.invokeNonBool(null, sRegisterRecipeMapForMeta, new Object[] {aID, aMap});
- }
-
+ Logger.INFO("Attempting to add map "+aMap.mNEIName+" to Processing Array for Meta Tile "+aID+". Success? "+GT_ProcessingArray_Manager.registerRecipeMapForMeta(aID, aMap));
}
public static final void registerRecipeMapBetweenRangeOfIDs(int aMin, int aMax, GT_Recipe_Map aMap) {
- if (sDoesPatchExist) {
- for (int i=aMin; i<=aMax;i++) {
- ReflectionUtils.invokeNonBool(null, sRegisterRecipeMapForMeta, new Object[] {i, aMap});
- //GT_ProcessingArray_Manager.registerRecipeMapForMeta(i, aMap);
- }
- }
+ for (int i=aMin; i<=aMax;i++) {
+ registerRecipeMapForID(i, aMap);
+ }
}
public static void register() {
-
+
// Simple Washers
registerRecipeMapForID(767, GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes);
registerRecipeMapBetweenRangeOfIDs(31017, 31020, GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes);
-
+
}
}
diff --git a/src/resources/assets/miscutils/lang/en_US.lang b/src/resources/assets/miscutils/lang/en_US.lang
index e2f034282a..c70d102235 100644
--- a/src/resources/assets/miscutils/lang/en_US.lang
+++ b/src/resources/assets/miscutils/lang/en_US.lang
@@ -1170,14 +1170,14 @@ item.itemRingQuantum.name=Quantum Ring
item.itemScrewQuantum.name=Quantum Screw
item.itemRotorQuantum.name=Quantum Rotor
item.itemGearQuantum.name=Quantum Gear
-item.itemDustFluorite.name=Fluorite Dust
-item.itemDustTinyFluorite.name=Tiny Pile of Fluorite Dust
-item.itemDustSmallFluorite.name=Small Pile of Fluorite Dust
-item.crushedFluorite.name=Crushed Fluorite Ore
-item.crushedCentrifugedFluorite.name=Centrifuged Crushed Fluorite Ore
-item.crushedPurifiedFluorite.name=Purified Crushed Fluorite Ore
-item.dustImpureFluorite.name=Impure Fluorite Dust
-item.dustPureFluorite.name=Purified Fluorite Dust
+item.itemDustFluoriteF.name=Fluorite (F) Dust
+item.itemDustTinyFluoriteF.name=Tiny Pile of Fluorite (F) Dust
+item.itemDustSmallFluoriteF.name=Small Pile of Fluorite (F) Dust
+item.crushedFluoriteF.name=Crushed Fluorite (F) Ore
+item.crushedCentrifugedFluoriteF.name=Centrifuged Crushed Fluorite (F) Ore
+item.crushedPurifiedFluoriteF.name=Purified Crushed Fluorite (F) Ore
+item.dustImpureFluoriteF.name=Impure Fluorite (F) Dust
+item.dustPureFluoriteF.name=Purified Fluorite (F) Dust
item.itemDustCrocoite.name=Crocoite Dust
item.itemDustTinyCrocoite.name=Tiny Pile of Crocoite Dust
item.itemDustSmallCrocoite.name=Small Pile of Crocoite Dust
@@ -1890,7 +1890,7 @@ tile.Block of Quantum.name=Block of Quantum
tile.Quantum Frame Box.name=Quantum Frame Box
//Ores
-tile.OreFluorite.name=Fluorite Ore
+tile.OreFluoriteF.name=Fluorite (F) Ore
tile.OreCrocoite.name=Crocoite Ore
tile.OreGeikielite.name=Geikielite Ore
tile.OreNichromite.name=Nichromite Ore