aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMaya <10861407+serenibyss@users.noreply.github.com>2024-11-28 12:01:03 -0600
committerGitHub <noreply@github.com>2024-11-28 19:01:03 +0100
commite41a0889c5f498252691180b143c97b570b2fc6b (patch)
tree60e1dd7a5a1fa4e7e081f6fccdb438897fa49c20 /src/main
parent3fcd89ab979db773d63c498de905558d32943420 (diff)
downloadGT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.tar.gz
GT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.tar.bz2
GT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.zip
Godforge hangover (#3396)
Co-authored-by: GDCloud <gdcloudstrike@gmail.com> Co-authored-by: GDCloud <93287602+GDCloudstrike@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/gui/modularui/GTUITextures.java1
-rw-r--r--src/main/java/gregtech/api/util/GTRecipeConstants.java6
-rw-r--r--src/main/java/tectech/loader/recipe/BaseRecipeLoader.java1
-rw-r--r--src/main/java/tectech/loader/recipe/Godforge.java220
-rw-r--r--src/main/java/tectech/recipe/GodforgeUpgradeCostFrontend.java74
-rw-r--r--src/main/java/tectech/recipe/TecTechRecipeMaps.java12
-rw-r--r--src/main/java/tectech/thing/block/RenderForgeOfGods.java4
-rw-r--r--src/main/java/tectech/thing/block/TileEntityForgeOfGods.java2
-rw-r--r--src/main/java/tectech/thing/gui/TecTechUITextures.java3
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEBaseModule.java1
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEExoticModule.java178
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEForgeOfGods.java2368
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEMoltenModule.java10
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEPlasmaModule.java10
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTESmeltingModule.java12
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/color/ForgeOfGodsStarColor.java29
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/structure/ForgeOfGodsRingsStructureString.java (renamed from src/main/java/tectech/thing/metaTileEntity/multi/godforge/ForgeOfGodsRingsStructureString.java)2
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/structure/ForgeOfGodsStructureString.java (renamed from src/main/java/tectech/thing/metaTileEntity/multi/godforge/ForgeOfGodsStructureString.java)2
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/upgrade/ForgeOfGodsUpgrade.java475
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/upgrade/UpgradeStorage.java285
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/util/ForgeOfGodsUI.java (renamed from src/main/java/tectech/thing/metaTileEntity/multi/godforge/ForgeOfGodsUI.java)361
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/util/GodforgeMath.java (renamed from src/main/java/tectech/util/GodforgeMath.java)70
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/util/MilestoneFormatter.java47
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/util/MilestoneIcon.java46
-rw-r--r--src/main/java/tectech/thing/metaTileEntity/multi/godforge/util/UpgradeColor.java72
-rw-r--r--src/main/resources/assets/gregtech/textures/gui/picture/arrow_gray.pngbin0 -> 195 bytes
-rw-r--r--src/main/resources/assets/tectech/lang/en_US.lang33
-rw-r--r--src/main/resources/assets/tectech/textures/gui/overlay_button/statistics.pngbin0 -> 445 bytes
-rw-r--r--src/main/resources/assets/tectech/textures/gui/picture/green_checkmark.pngbin0 -> 212 bytes
-rw-r--r--src/main/resources/assets/tectech/textures/gui/picture/rainbow_square.pngbin3493 -> 3665 bytes
30 files changed, 2564 insertions, 1760 deletions
diff --git a/src/main/java/gregtech/api/gui/modularui/GTUITextures.java b/src/main/java/gregtech/api/gui/modularui/GTUITextures.java
index 2e0fc114d9..499f043af1 100644
--- a/src/main/java/gregtech/api/gui/modularui/GTUITextures.java
+++ b/src/main/java/gregtech/api/gui/modularui/GTUITextures.java
@@ -537,6 +537,7 @@ public class GTUITextures {
public static final UITexture PICTURE_SLOTS_HOLO_3BY3 = UITexture
.fullImage(GregTech.ID, "gui/picture/slots_holo_3by3");
public static final UITexture PICTURE_ARROW_DOUBLE = UITexture.fullImage(GregTech.ID, "gui/picture/arrow_double");
+ public static final UITexture PICTURE_ARROW_GRAY = UITexture.fullImage(GregTech.ID, "gui/picture/arrow_gray");
public static final UITexture PICTURE_SUPER_BUFFER = UITexture.fullImage(GregTech.ID, "gui/picture/super_buffer");
public static final UITexture PICTURE_SQUARE_LIGHT_GRAY = UITexture
.fullImage(GregTech.ID, "gui/picture/square_light_gray");
diff --git a/src/main/java/gregtech/api/util/GTRecipeConstants.java b/src/main/java/gregtech/api/util/GTRecipeConstants.java
index 883f1060ac..f0e4cacd65 100644
--- a/src/main/java/gregtech/api/util/GTRecipeConstants.java
+++ b/src/main/java/gregtech/api/util/GTRecipeConstants.java
@@ -130,6 +130,12 @@ public class GTRecipeConstants {
.create(Boolean.class, "fog_plasma_multistep");
/**
+ * FOG Shortened upgrade name.
+ */
+ public static final RecipeMetadataKey<String> FOG_UPGRADE_NAME_SHORT = SimpleRecipeMetadataKey
+ .create(String.class, "fog_plasma_upgrade_name_short");
+
+ /**
* DEFC Casing tier.
*/
public static final RecipeMetadataKey<Integer> DEFC_CASING_TIER = SimpleRecipeMetadataKey
diff --git a/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java b/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
index 180e8514f4..445dd9c069 100644
--- a/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
+++ b/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
@@ -46,5 +46,6 @@ public class BaseRecipeLoader {
} else {
Godforge.runDevEnvironmentRecipes();
}
+ Godforge.addFakeUpgradeCostRecipes();
}
}
diff --git a/src/main/java/tectech/loader/recipe/Godforge.java b/src/main/java/tectech/loader/recipe/Godforge.java
index 981f6b139a..51be5b9e7f 100644
--- a/src/main/java/tectech/loader/recipe/Godforge.java
+++ b/src/main/java/tectech/loader/recipe/Godforge.java
@@ -11,9 +11,10 @@ import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
import static gregtech.api.util.GTRecipeConstants.FOG_EXOTIC_TIER;
import static gregtech.api.util.GTRecipeConstants.FOG_PLASMA_MULTISTEP;
import static gregtech.api.util.GTRecipeConstants.FOG_PLASMA_TIER;
+import static gregtech.api.util.GTRecipeConstants.FOG_UPGRADE_NAME_SHORT;
import static tectech.recipe.TecTechRecipeMaps.godforgeExoticMatterRecipes;
import static tectech.recipe.TecTechRecipeMaps.godforgePlasmaRecipes;
-import static tectech.util.GodforgeMath.getRandomIntInRange;
+import static tectech.thing.metaTileEntity.multi.godforge.util.GodforgeMath.getRandomIntInRange;
import java.util.ArrayList;
import java.util.Arrays;
@@ -26,6 +27,8 @@ import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
+import org.apache.commons.lang3.ArrayUtils;
+
import goodgenerator.items.GGMaterial;
import goodgenerator.util.ItemRefer;
import gregtech.api.enums.GTValues;
@@ -47,6 +50,7 @@ import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import tectech.recipe.TecTechRecipeMaps;
import tectech.thing.CustomItemList;
+import tectech.thing.metaTileEntity.multi.godforge.upgrade.ForgeOfGodsUpgrade;
public class Godforge implements Runnable {
@@ -55,7 +59,6 @@ public class Godforge implements Runnable {
public static final HashMap<ItemStack, Integer> exoticModulePlasmaItemMap = new HashMap<>();
public static final HashMap<FluidStack, Integer> exoticModulePlasmaFluidMap = new HashMap<>();
public static final HashMap<ItemStack, Integer> exoticModuleMagmatterItemMap = new HashMap<>();
- public static final HashMap<Integer, ItemStack[]> godforgeUpgradeMats = new HashMap<>();
public static final List<ItemStack> quarkGluonFluidItemsForNEI = new ArrayList<>();
public static final List<ItemStack> quarkGluonItemsForNEI = new ArrayList<>();
public static final List<ItemStack> magmatterTimeFluidItemsForNEI = new ArrayList<>();
@@ -688,83 +691,154 @@ public class Godforge implements Runnable {
// Godforge upgrade materials
if (EternalSingularity.isModLoaded() && GalaxySpace.isModLoaded()) {
- godforgeUpgradeMats.put(
- 0,
- new ItemStack[] { GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUIVBase, 64),
- ItemList.SuperconductorComposite.get(32),
- GGMaterial.metastableOganesson.get(OrePrefixes.gearGt, 16),
- getModItem(EternalSingularity.ID, "eternal_singularity", 8L), ItemList.Robot_Arm_UIV.get(64L),
- ItemList.Field_Generator_UEV.get(64L) });
-
- godforgeUpgradeMats.put(
- 5,
- new ItemStack[] { GregtechItemList.Mega_AlloyBlastSmelter.get(16L),
- ItemList.Casing_Coil_Hypogen.get(64L),
- CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(32L),
- getModItem(EternalSingularity.ID, "eternal_singularity", 16L),
- ItemRefer.Field_Restriction_Coil_T3.get(48), ItemList.Robot_Arm_UIV.get(64L),
- ItemList.Field_Generator_UEV.get(64L) });
-
- godforgeUpgradeMats.put(
- 7,
- new ItemStack[] { CustomItemList.Godforge_StellarEnergySiphonCasing.get(8),
- GregtechItemList.FusionComputer_UV3.get(8), GregtechItemList.Casing_Fusion_Internal2.get(64),
- getModItem(GalaxySpace.ID, "item.DysonSwarmParts", 64, 3), MaterialsAlloy.QUANTUM.getPlateDense(48),
- MaterialsElements.STANDALONE.RHUGNOR.getGear(32),
- getModItem(EternalSingularity.ID, "eternal_singularity", 16L), ItemList.Robot_Arm_UIV.get(64L),
- ItemList.Field_Generator_UEV.get(64L) });
-
- godforgeUpgradeMats.put(
- 11,
- new ItemStack[] { CustomItemList.Godforge_StellarEnergySiphonCasing.get(16),
- ItemRefer.Compact_Fusion_MK5.get(2), ItemRefer.Compact_Fusion_Coil_T4.get(64),
- CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(16),
- ItemList.Machine_Multi_TranscendentPlasmaMixer.get(4),
- MaterialsElements.STANDALONE.RHUGNOR.getGear(64),
- GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 64),
- getModItem(EternalSingularity.ID, "eternal_singularity", 32L), ItemList.Robot_Arm_UIV.get(64L),
- ItemList.Field_Generator_UEV.get(64L) });
-
- godforgeUpgradeMats.put(
- 26,
- new ItemStack[] { GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 64),
- GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUMVBase, 64),
- MaterialsElements.STANDALONE.HYPOGEN.getFrameBox(64),
- MaterialsElements.STANDALONE.DRAGON_METAL.getFrameBox(64),
- CustomItemList.EOH_Reinforced_Spatial_Casing.get(64),
- CustomItemList.EOH_Infinite_Energy_Casing.get(8), ItemList.ZPM6.get(2),
- ItemList.Field_Generator_UMV.get(32) });
-
- godforgeUpgradeMats.put(
- 29,
- new ItemStack[] { GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.WhiteDwarfMatter, 64),
- GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.BlackDwarfMatter, 64),
- GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 16),
- GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 2),
- CustomItemList.EOH_Infinite_Energy_Casing.get(64),
- CustomItemList.StabilisationFieldGeneratorTier5.get(16), ItemList.ZPM6.get(6),
- ItemList.Field_Generator_UMV.get(64) });
-
- godforgeUpgradeMats.put(
- 30,
- new ItemStack[] { CustomItemList.Machine_Multi_QuarkGluonPlasmaModule.get(32),
- CustomItemList.Godforge_StellarEnergySiphonCasing.get(64),
- CustomItemList.StabilisationFieldGeneratorTier6.get(48),
- ItemList.Transdimensional_Alignment_Matrix.get(8), ItemList.ZPM6.get(16),
- ItemList.Robot_Arm_UMV.get(64), ItemList.Conveyor_Module_UMV.get(64) });
+ ForgeOfGodsUpgrade.START.addExtraCost(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUIVBase, 64),
+ ItemList.SuperconductorComposite.get(32),
+ GGMaterial.metastableOganesson.get(OrePrefixes.gearGt, 16),
+ getModItem(EternalSingularity.ID, "eternal_singularity", 8L),
+ ItemList.Robot_Arm_UIV.get(64L),
+ ItemList.Field_Generator_UEV.get(64L));
+
+ ForgeOfGodsUpgrade.FDIM.addExtraCost(
+ GregtechItemList.Mega_AlloyBlastSmelter.get(16L),
+ ItemList.Casing_Coil_Hypogen.get(64L),
+ CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(32L),
+ getModItem(EternalSingularity.ID, "eternal_singularity", 16L),
+ ItemRefer.Field_Restriction_Coil_T3.get(48),
+ ItemList.Robot_Arm_UIV.get(64L),
+ ItemList.Field_Generator_UEV.get(64L));
+
+ ForgeOfGodsUpgrade.GPCI.addExtraCost(
+ CustomItemList.Godforge_StellarEnergySiphonCasing.get(8),
+ GregtechItemList.FusionComputer_UV3.get(8),
+ GregtechItemList.Casing_Fusion_Internal2.get(64),
+ getModItem(GalaxySpace.ID, "item.DysonSwarmParts", 64, 3),
+ MaterialsAlloy.QUANTUM.getPlateDense(48),
+ MaterialsElements.STANDALONE.RHUGNOR.getGear(32),
+ getModItem(EternalSingularity.ID, "eternal_singularity", 16L),
+ ItemList.Robot_Arm_UIV.get(64L),
+ ItemList.Field_Generator_UEV.get(64L));
+
+ ForgeOfGodsUpgrade.QGPIU.addExtraCost(
+ CustomItemList.Godforge_StellarEnergySiphonCasing.get(16),
+ ItemRefer.Compact_Fusion_MK5.get(2),
+ ItemRefer.Compact_Fusion_Coil_T4.get(64),
+ CustomItemList.Godforge_HarmonicPhononTransmissionConduit.get(16),
+ ItemList.Machine_Multi_TranscendentPlasmaMixer.get(4),
+ MaterialsElements.STANDALONE.RHUGNOR.getGear(64),
+ GTOreDictUnificator.get(OrePrefixes.gearGt, Materials.Ichorium, 64),
+ getModItem(EternalSingularity.ID, "eternal_singularity", 32L),
+ ItemList.Robot_Arm_UIV.get(64L),
+ ItemList.Field_Generator_UEV.get(64L));
+
+ ForgeOfGodsUpgrade.CD.addExtraCost(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 64),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.SuperconductorUMVBase, 64),
+ MaterialsElements.STANDALONE.HYPOGEN.getFrameBox(64),
+ MaterialsElements.STANDALONE.DRAGON_METAL.getFrameBox(64),
+ CustomItemList.EOH_Reinforced_Spatial_Casing.get(64),
+ CustomItemList.EOH_Infinite_Energy_Casing.get(8),
+ ItemList.ZPM6.get(2),
+ ItemList.Field_Generator_UMV.get(32));
+
+ ForgeOfGodsUpgrade.EE.addExtraCost(
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.WhiteDwarfMatter, 64),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.BlackDwarfMatter, 64),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 16),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 2),
+ CustomItemList.EOH_Infinite_Energy_Casing.get(64),
+ CustomItemList.StabilisationFieldGeneratorTier5.get(16),
+ ItemList.ZPM6.get(6),
+ ItemList.Field_Generator_UMV.get(64));
+
+ ForgeOfGodsUpgrade.END.addExtraCost(
+ CustomItemList.Machine_Multi_QuarkGluonPlasmaModule.get(32),
+ CustomItemList.Godforge_StellarEnergySiphonCasing.get(64),
+ CustomItemList.StabilisationFieldGeneratorTier6.get(48),
+ ItemList.Transdimensional_Alignment_Matrix.get(8),
+ ItemList.ZPM6.get(16),
+ ItemList.Robot_Arm_UMV.get(64),
+ ItemList.Conveyor_Module_UMV.get(64));
}
}
public static void runDevEnvironmentRecipes() {
// put something in here to not crash the game in dev environment when opening the manual insertion window
- godforgeUpgradeMats.put(0, new ItemStack[] { new ItemStack(Blocks.cobblestone, 4) });
- godforgeUpgradeMats.put(5, new ItemStack[] { new ItemStack(Blocks.cobblestone, 8) });
- godforgeUpgradeMats.put(7, new ItemStack[] { new ItemStack(Blocks.cobblestone, 12) });
- godforgeUpgradeMats.put(11, new ItemStack[] { new ItemStack(Blocks.cobblestone, 16) });
- godforgeUpgradeMats.put(26, new ItemStack[] { new ItemStack(Blocks.cobblestone, 32) });
- godforgeUpgradeMats.put(29, new ItemStack[] { new ItemStack(Blocks.cobblestone, 48) });
- godforgeUpgradeMats.put(30, new ItemStack[] { new ItemStack(Blocks.cobblestone, 64) });
+ ForgeOfGodsUpgrade.START.addExtraCost(
+ new ItemStack(Blocks.cobblestone, 4),
+ new ItemStack(Blocks.dirt, 12),
+ new ItemStack(Blocks.diamond_block, 8),
+ new ItemStack(Blocks.gold_block, 32));
+ ForgeOfGodsUpgrade.FDIM.addExtraCost(new ItemStack(Blocks.cobblestone, 8));
+ ForgeOfGodsUpgrade.GPCI.addExtraCost(new ItemStack(Blocks.cobblestone, 12));
+ ForgeOfGodsUpgrade.QGPIU.addExtraCost(new ItemStack(Blocks.cobblestone, 16));
+ ForgeOfGodsUpgrade.CD.addExtraCost(new ItemStack(Blocks.cobblestone, 32));
+ ForgeOfGodsUpgrade.EE.addExtraCost(new ItemStack(Blocks.cobblestone, 48));
+ ForgeOfGodsUpgrade.END.addExtraCost(new ItemStack(Blocks.cobblestone, 64));
+ }
+
+ public static void addFakeUpgradeCostRecipes() {
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.START.getExtraCost()))
+ .itemOutputs(
+ CustomItemList.Godforge_GravitonFlowModulatorTier1.get(1),
+ CustomItemList.Machine_Multi_SmeltingModule.get(1))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.START.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.FDIM.getExtraCost()))
+ .itemOutputs(CustomItemList.Machine_Multi_MoltenModule.get(1))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.FDIM.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.GPCI.getExtraCost()))
+ .itemOutputs(CustomItemList.Machine_Multi_PlasmaModule.get(1))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.GPCI.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.QGPIU.getExtraCost()))
+ .itemOutputs(CustomItemList.Machine_Multi_QuarkGluonPlasmaModule.get(1))
+ .fluidOutputs(MaterialsUEVplus.QuarkGluonPlasma.getFluid(1000))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.QGPIU.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.CD.getExtraCost()))
+ .itemOutputs(CustomItemList.Godforge_GravitonFlowModulatorTier2.get(1))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.CD.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.EE.getExtraCost()))
+ .itemOutputs(CustomItemList.Godforge_GravitonFlowModulatorTier3.get(1))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.EE.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
+ GTValues.RA.stdBuilder()
+ .itemInputs(ArrayUtils.addAll(ForgeOfGodsUpgrade.END.getExtraCost()))
+ .itemOutputs(MaterialsUEVplus.GravitonShard.getGems(1))
+ .fluidOutputs(MaterialsUEVplus.MagMatter.getMolten(576), Materials.Neutronium.getPlasma(1000))
+ .duration(1)
+ .eut(1)
+ .metadata(FOG_UPGRADE_NAME_SHORT, ForgeOfGodsUpgrade.END.getShortNameText())
+ .fake()
+ .addTo(TecTechRecipeMaps.godforgeFakeUpgradeCostRecipes);
}
public static void initMoltenModuleRecipes() {
diff --git a/src/main/java/tectech/recipe/GodforgeUpgradeCostFrontend.java b/src/main/java/tectech/recipe/GodforgeUpgradeCostFrontend.java
new file mode 100644
index 0000000000..aa81856171
--- /dev/null
+++ b/src/main/java/tectech/recipe/GodforgeUpgradeCostFrontend.java
@@ -0,0 +1,74 @@
+package tectech.recipe;
+
+import static gregtech.api.util.GTRecipeConstants.FOG_UPGRADE_NAME_SHORT;
+
+import java.util.List;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.util.EnumChatFormatting;
+
+import com.gtnewhorizons.modularui.api.math.Pos2d;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
+
+import gregtech.api.recipe.BasicUIPropertiesBuilder;
+import gregtech.api.recipe.NEIRecipePropertiesBuilder;
+import gregtech.api.recipe.RecipeMapFrontend;
+import gregtech.api.util.MethodsReturnNonnullByDefault;
+import gregtech.common.gui.modularui.UIHelper;
+import gregtech.nei.RecipeDisplayInfo;
+import tectech.thing.gui.TecTechUITextures;
+
+@ParametersAreNonnullByDefault
+@MethodsReturnNonnullByDefault
+public class GodforgeUpgradeCostFrontend extends RecipeMapFrontend {
+
+ public GodforgeUpgradeCostFrontend(BasicUIPropertiesBuilder uiPropertiesBuilder,
+ NEIRecipePropertiesBuilder neiPropertiesBuilder) {
+ super(uiPropertiesBuilder, neiPropertiesBuilder);
+ }
+
+ @Override
+ public void addGregTechLogo(ModularWindow.Builder builder, Pos2d windowOffset) {
+ builder.widget(
+ new DrawableWidget().setDrawable(TecTechUITextures.PICTURE_GODFORGE_LOGO)
+ .setSize(18, 18)
+ .setPos(new Pos2d(151, 63).add(windowOffset)));
+ }
+
+ @Override
+ public List<Pos2d> getItemInputPositions(int itemInputCount) {
+ return UIHelper.getGridPositions(itemInputCount, 8, 17, 4);
+ }
+
+ @Override
+ public List<Pos2d> getItemOutputPositions(int itemOutputCount) {
+ return UIHelper.getGridPositions(itemOutputCount, 116, 26, 1);
+ }
+
+ @Override
+ public List<Pos2d> getFluidOutputPositions(int fluidOutputCount) {
+ return UIHelper.getGridPositions(fluidOutputCount, 134, 26, 1);
+ }
+
+ @Override
+ protected void drawDurationInfo(RecipeDisplayInfo recipeInfo) {}
+
+ @Override
+ protected void drawEnergyInfo(RecipeDisplayInfo recipeInfo) {}
+
+ @Override
+ protected void drawSpecialInfo(RecipeDisplayInfo recipeInfo) {
+ String upgradeName = recipeInfo.recipe.getMetadataOrDefault(FOG_UPGRADE_NAME_SHORT, "");
+ int width = Minecraft.getMinecraft().fontRenderer.getStringWidth(upgradeName);
+ if (width % 2 == 1) width -= 1;
+ int xOffset = 18 - width / 2 - 1;
+ recipeInfo.drawText(" ", 83, -76);
+ recipeInfo.drawText(
+ EnumChatFormatting.BLUE.toString() + EnumChatFormatting.UNDERLINE + EnumChatFormatting.BOLD + upgradeName,
+ 110 + xOffset,
+ 0);
+ }
+}
diff --git a/src/main/java/tectech/recipe/TecTechRecipeMaps.java b/src/main/java/tectech/recipe/TecTechRecipeMaps.java
index d4908df5b7..de98a2c274 100644
--- a/src/main/java/tectech/recipe/TecTechRecipeMaps.java
+++ b/src/main/java/tectech/recipe/TecTechRecipeMaps.java
@@ -85,4 +85,16 @@ public class TecTechRecipeMaps {
.logoPos(151, 63)
.build();
+ public static final RecipeMap<RecipeMapBackend> godforgeFakeUpgradeCostRecipes = RecipeMapBuilder
+ .of("gt.recipe.upgrade_costs")
+ .maxIO(12, 2, 0, 2)
+ .addSpecialTexture(83, 38, 30, 13, GTUITextures.PICTURE_ARROW_GRAY)
+ .dontUseProgressBar()
+ .neiTransferRect(83, 38, 30, 13)
+ .frontend(GodforgeUpgradeCostFrontend::new)
+ .neiHandlerInfo(
+ builder -> builder.setDisplayStack(CustomItemList.Machine_Multi_ForgeOfGods.get(1))
+ .setHeight(100))
+ .build();
+
}
diff --git a/src/main/java/tectech/thing/block/RenderForgeOfGods.java b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
index 9091434490..af67c97d44 100644
--- a/src/main/java/tectech/thing/block/RenderForgeOfGods.java
+++ b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
@@ -28,8 +28,8 @@ import com.gtnewhorizon.gtnhlib.client.renderer.shader.ShaderProgram;
import com.gtnewhorizon.gtnhlib.client.renderer.vbo.VertexBuffer;
import tectech.Reference;
-import tectech.thing.metaTileEntity.multi.godforge.ForgeOfGodsRingsStructureString;
-import tectech.thing.metaTileEntity.multi.godforge.ForgeOfGodsStructureString;
+import tectech.thing.metaTileEntity.multi.godforge.structure.ForgeOfGodsRingsStructureString;
+import tectech.thing.metaTileEntity.multi.godforge.structure.ForgeOfGodsStructureString;
import tectech.util.StructureVBO;
import tectech.util.TextureUpdateRequester;
diff --git a/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java b/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java
index a8a8992a63..0e18b08667 100644
--- a/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java
+++ b/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java
@@ -200,7 +200,7 @@ public class TileEntityForgeOfGods extends TileEntity {
cycleStep = 0;
} else {
// update interp values to the next set, reset cycleStep then interpolate
- cycleStep = -255;
+ cycleStep -= 255;
cycleStarColors();
interpolateColors();
}
diff --git a/src/main/java/tectech/thing/gui/TecTechUITextures.java b/src/main/java/tectech/thing/gui/TecTechUITextures.java
index 89fb7c5b11..f8e6bbe59b 100644
--- a/src/main/java/tectech/thing/gui/TecTechUITextures.java
+++ b/src/main/java/tectech/thing/gui/TecTechUITextures.java
@@ -123,6 +123,8 @@ public class TecTechUITextures {
.fullImage(MODID, "gui/overlay_button/furnace_mode_on");
public static final UITexture OVERLAY_BUTTON_FURNACE_MODE_OFF = UITexture
.fullImage(MODID, "gui/overlay_button/furnace_mode_off");
+ public static final UITexture OVERLAY_BUTTON_STATISTICS = UITexture
+ .fullImage(MODID, "gui/overlay_button/statistics");
public static final UITexture OVERLAY_CYCLIC_BLUE = UITexture.fullImage(MODID, "gui/overlay_button/cyclic_blue");
public static final UITexture OVERLAY_EJECTION_LOCKED = UITexture
.fullImage(MODID, "gui/overlay_button/eject_disabled");
@@ -226,6 +228,7 @@ public class TecTechUITextures {
.fullImage(MODID, "gui/picture/connector_red_opaque");
public static final UITexture SLOT_OUTLINE_GREEN = UITexture.fullImage(MODID, "gui/picture/green_selector");
public static final UITexture UNSELECTED_OPTION = UITexture.fullImage(MODID, "gui/picture/unselected_option");
+ public static final UITexture GREEN_CHECKMARK_11x9 = UITexture.fullImage(MODID, "gui/picture/green_checkmark");
public static final UITexture PICTURE_GODFORGE_MILESTONE_CHARGE = UITexture
.fullImage(MODID, "gui/picture/milestone_charge");
public static final UITexture PICTURE_GODFORGE_MILESTONE_CONVERSION = UITexture
diff --git a/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEBaseModule.java b/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEBaseModule.java
index 8b432d2ce8..85cc5b11b5 100644
--- a/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEBaseModule.java
+++ b/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEBaseModule.java
@@ -57,6 +57,7 @@ import gregtech.api.util.GTStructureUtility;
import tectech.TecTech;
import tectech.thing.gui.TecTechUITextures;
import tectech.thing.metaTileEntity.multi.base.TTMultiblockBase;
+import tectech.thing.metaTileEntity.multi.godforge.util.ForgeOfGodsUI;
public class MTEBaseModule extends TTMultiblockBase {
diff --git a/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEExoticModule.java b/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEExoticModule.java
index d30f9402d9..e14a40f863 100644
--- a/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEExoticModule.java
+++ b/src/main/java/tectech/thing/metaTileEntity/multi/godforge/MTEExoticModule.java
@@ -1,5 +1,6 @@
package tectech.thing.metaTileEntity.multi.godforge;
+import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.util.GTRecipeBuilder.INGOTS;
import static gregtech.api.util.GTRecipeBuilder.SECONDS;
@@ -22,8 +23,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import javax.annotation.Nonnull;
-
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -42,6 +41,8 @@ import com.gtnewhorizons.modularui.api.drawable.IDrawable;
import com.gtnewhorizons.modularui.api.drawable.ItemDrawable;
import com.gtnewhorizons.modularui.api.fluids.FluidTanksHandler;
import com.gtnewhorizons.modularui.api.fluids.IFluidTanksHandler;
+import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable;
+import com.gtnewhorizons.modularui.api.forge.ItemStackHandler;
import com.gtnewhorizons.modularui.api.math.Alignment;
import com.gtnewhorizons.modularui.api.math.Pos2d;
import com.gtnewhorizons.modularui.api.math.Size;
@@ -53,6 +54,7 @@ import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
import com.gtnewhorizons.modularui.common.widget.FluidSlotWidget;
+import com.gtnewhorizons.modularui.common.widget.SlotWidget;
import com.gtnewhorizons.modularui.common.widget.TextWidget;
import gregtech.api.enums.MaterialsUEVplus;
@@ -69,13 +71,15 @@ import gregtech.api.recipe.check.SimpleCheckRecipeResult;
import gregtech.api.util.GTOreDictUnificator;
import gregtech.api.util.GTRecipe;
import gregtech.api.util.GTStreamUtil;
+import gregtech.api.util.GTUtility;
import gregtech.api.util.MultiblockTooltipBuilder;
import gregtech.api.util.OverclockCalculator;
import tectech.TecTech;
import tectech.recipe.TecTechRecipeMaps;
import tectech.thing.CustomItemList;
import tectech.thing.gui.TecTechUITextures;
-import tectech.util.GodforgeMath;
+import tectech.thing.metaTileEntity.multi.godforge.util.ForgeOfGodsUI;
+import tectech.thing.metaTileEntity.multi.godforge.util.GodforgeMath;
public class MTEExoticModule extends MTEBaseModule {
@@ -93,6 +97,7 @@ public class MTEExoticModule extends MTEBaseModule {
private BigInteger powerForRecipe = BigInteger.ZERO;
private static final int NUMBER_OF_INPUTS = 7;
private static final