diff --git a/src/main/java/com/github/gtexpert/core/mixins/chisel/BlockCarvableMixin.java b/src/main/java/com/github/gtexpert/core/mixins/chisel/BlockCarvableMixin.java index 4658567d..b6750291 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/chisel/BlockCarvableMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/chisel/BlockCarvableMixin.java @@ -12,6 +12,12 @@ import team.chisel.api.block.VariationData; import team.chisel.common.block.BlockCarvable; +/** + * Mixin to add harvest level information to Chisel's carvable blocks. + *

+ * Sets appropriate harvest tools (pickaxe, axe, shovel) based on block material type, + * enabling proper tool requirements for breaking these blocks. + */ @Mixin(value = BlockCarvable.class, remap = false) public abstract class BlockCarvableMixin extends Block { @@ -19,6 +25,14 @@ protected BlockCarvableMixin(Material materialIn) { super(materialIn); } + /** + * Sets the harvest level for carvable blocks based on their material type. + *

+ */ @Inject(method = "(Lnet/minecraft/block/material/Material;Lnet/minecraft/util/BlockRenderLayer;II[Lteam/chisel/api/block/VariationData;)V", at = @At("RETURN")) private void gtexpert$setHarvestLevel(Material material, BlockRenderLayer layer, int index, int max, diff --git a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java index e7345c9f..9d9d0c51 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/baubles/ShieldNecklaceMixin.java @@ -7,6 +7,12 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; +/** + * Mixin to rebalance Shield Necklace stats from Draconic Additions. + *

+ * Adjusts energy capacity, max receive rate, protection points, and recovery rate + * for basic and wyvern tiers to better fit the modpack progression. + */ @Mixin(value = ShieldNecklace.class, remap = false) public class ShieldNecklaceMixin { diff --git a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java index c99b1685..9fe2390d 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/items/tools/PortableWiredChargerMixin.java @@ -6,6 +6,12 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; +/** + * Mixin to rebalance Portable Wired Charger capacity from Draconic Additions. + *

+ * Adjusts energy storage capacity for basic and wyvern tiers to better fit + * the modpack progression. + */ @Mixin(value = PortableWiredCharger.class, remap = false) public class PortableWiredChargerMixin { diff --git a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java index cc682b03..b36c9fb7 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicadditions/lib/DARecipesMixin.java @@ -5,6 +5,13 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; +/** + * Mixin to disable default Draconic Additions recipes. + *

+ * Overwrites the recipe registration with an empty method because + * the original recipes cannot be removed via config changes. + * Custom recipes are added through the DEDA integration module instead. + */ @Mixin(value = DARecipes.class, remap = false) public class DARecipesMixin { diff --git a/src/main/java/com/github/gtexpert/core/mixins/draconicevolution/OreHandlerMixin.java b/src/main/java/com/github/gtexpert/core/mixins/draconicevolution/OreHandlerMixin.java index fe8561d8..7709c865 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/draconicevolution/OreHandlerMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/draconicevolution/OreHandlerMixin.java @@ -9,11 +9,18 @@ import com.brandon3055.draconicevolution.OreHandler; +/** + * Mixin to prevent Draconic Evolution from registering its ore dictionary entries. + *

+ * Specifically blocks the "oreDraconium" registration to allow GregTech + * to handle draconium ore processing instead. + */ @Mixin(value = OreHandler.class, remap = false) public class OreHandlerMixin { /** - * Redirect OreDictionary.registerOre calls to prevent oreDraconium registration. + * Redirects OreDictionary.registerOre calls to skip oreDraconium registration. + * All other ore registrations are passed through unchanged. */ @Redirect(method = "registerOres", at = @At(value = "INVOKE", diff --git a/src/main/java/com/github/gtexpert/core/mixins/gcym/AlloyBlastRecipeProducerMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gcym/AlloyBlastRecipeProducerMixin.java index 030d70e6..b2641f28 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/gcym/AlloyBlastRecipeProducerMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/gcym/AlloyBlastRecipeProducerMixin.java @@ -37,9 +37,19 @@ import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.unification.material.GTEMaterials; +/** + * Mixin to extend {@link AlloyBlastRecipeProducer} with additional recipe variants. + *

+ * Adds pyrotheum-boosted alloy blast recipes and cryotheum-cooled vacuum freezer recipes + * when Draconic Evolution/Draconic Additions (DEDA) is loaded. + */ @Mixin(value = AlloyBlastRecipeProducer.class, remap = false) public abstract class AlloyBlastRecipeProducerMixin { + /** + * Injects into buildRecipes to add pyrotheum-boosted recipes. + * Replaces the original method to include an additional recipe variant using molten pyrotheum. + */ @Inject( method = "buildRecipes", at = @At( @@ -90,10 +100,20 @@ protected int getGasCircuitNum(int componentAmount) { return componentAmount + 10; } + /** + * @param componentAmount the amount of different components in the material + * @return the circuit number for the pyrotheum-boosted recipe + */ protected int getPyrotheumCircuitNum(int componentAmount) { return componentAmount + 11; } + /** + * Injects into addFreezerRecipes to add extended vacuum freezer recipes. + *

+ * Adds recipes for multiple mold types (nugget, ingot, plate, gear, rotor) and + * cryotheum-cooled variants for high-temperature materials when DEDA is loaded. + */ @Inject(method = "addFreezerRecipes", at = @At("HEAD"), cancellable = true) protected void addFreezerRecipesMixin(@NotNull Material material, @NotNull Fluid molten, @NotNull BlastProperty property, CallbackInfo ci) { @@ -162,6 +182,20 @@ protected void addFreezerRecipesMixin(@NotNull Material material, @NotNull Fluid ci.cancel(); } + /** + * Adds a standard vacuum freezer recipe with a mold. + * For high-temperature materials, liquid helium is used as a coolant. + * + * @param material the material to process + * @param molten the molten fluid input + * @param vacuumEUt the EU/t for the recipe + * @param vacuumDuration the duration in ticks + * @param highTemp whether the material requires high-temp processing (>= 5000K) + * @param flag the material flag required (null if always applicable) + * @param prefix the output ore prefix + * @param mold the mold item + * @param fluidAmount the amount of molten fluid required + */ private void addMoldRecipe(@NotNull Material material, @NotNull Fluid molten, int vacuumEUt, int vacuumDuration, boolean highTemp, @Nullable MaterialFlag flag, @NotNull OrePrefix prefix, @@ -183,6 +217,16 @@ private void addMoldRecipe(@NotNull Material material, @NotNull Fluid molten, builder.buildAndRegister(); } + /** + * Adds a vacuum freezer recipe to convert molten fluid to standard fluid. + * For high-temperature materials, liquid helium is used as a coolant. + * + * @param material the material to process + * @param molten the molten fluid input + * @param vacuumEUt the EU/t for the recipe + * @param vacuumDuration the duration in ticks + * @param highTemp whether the material requires high-temp processing (>= 5000K) + */ private void addFluidConversionRecipe(@NotNull Material material, @NotNull Fluid molten, int vacuumEUt, int vacuumDuration, boolean highTemp) { RecipeBuilder builder = RecipeMaps.VACUUM_RECIPES.recipeBuilder() @@ -200,6 +244,19 @@ private void addFluidConversionRecipe(@NotNull Material material, @NotNull Fluid builder.buildAndRegister(); } + /** + * Adds a cryotheum-cooled vacuum freezer recipe with a mold. + * Uses cryotheum as coolant and produces molten pyrotheum as a byproduct. + * + * @param material the material to process + * @param molten the molten fluid input + * @param vacuumEUt the EU/t for the recipe + * @param duration the duration in ticks + * @param flag the material flag required (null if always applicable) + * @param prefix the output ore prefix + * @param mold the mold item + * @param fluidAmount the amount of molten fluid required + */ private void addCryotheumMoldRecipe(@NotNull Material material, @NotNull Fluid molten, int vacuumEUt, int duration, @Nullable MaterialFlag flag, @NotNull OrePrefix prefix, diff --git a/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaBlastFurnaceMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaBlastFurnaceMixin.java index 528d2217..569b5032 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaBlastFurnaceMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaBlastFurnaceMixin.java @@ -6,6 +6,12 @@ import com.github.gtexpert.core.api.capability.impl.ITiered; +/** + * Mixin to implement {@link ITiered} interface on the Mega Blast Furnace. + *

+ * Marks this multiblock as non-tiered to exclude it from tier-based + * recipe filtering or other tier-dependent logic. + */ @Mixin(value = MetaTileEntityMegaBlastFurnace.class, remap = false) public abstract class MetaTileEntityMegaBlastFurnaceMixin implements ITiered { diff --git a/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaVacuumFreezerMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaVacuumFreezerMixin.java index 7bffcc65..2ebaa023 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaVacuumFreezerMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/gcym/MetaTileEntityMegaVacuumFreezerMixin.java @@ -6,6 +6,12 @@ import com.github.gtexpert.core.api.capability.impl.ITiered; +/** + * Mixin to implement {@link ITiered} interface on the Mega Vacuum Freezer. + *

+ * Marks this multiblock as non-tiered to exclude it from tier-based + * recipe filtering or other tier-dependent logic. + */ @Mixin(value = MetaTileEntityMegaVacuumFreezer.class, remap = false) public class MetaTileEntityMegaVacuumFreezerMixin implements ITiered { diff --git a/src/main/java/com/github/gtexpert/core/mixins/gregtech/GTRecipeWrapperMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gregtech/GTRecipeWrapperMixin.java index fe20c19a..65e48533 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/gregtech/GTRecipeWrapperMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/gregtech/GTRecipeWrapperMixin.java @@ -15,6 +15,12 @@ import com.github.gtexpert.core.integration.deda.recipemaps.GTEDraconicRecipeMaps; +/** + * Mixin to fix JEI recipe display positioning for DEDA recipe maps. + *

+ * Corrects the Y-position calculation for recipe info text when recipe properties + * have custom heights (via getInfoHeight) instead of the default 10px per property. + */ @Mixin(value = GTRecipeWrapper.class, remap = false) public class GTRecipeWrapperMixin { @@ -33,7 +39,7 @@ public class GTRecipeWrapperMixin { * Fixed: recipeHeight - (sumOfPropertyHeights + defaultLines * 10 - 3) */ @ModifyVariable(method = "drawInfo", at = @At(value = "STORE"), ordinal = 5) - private int gteCore$fixYPosition(int original) { + private int gtexpert$fixYPosition(int original) { // Only apply fix for DEDA recipe maps if (recipeMap != GTEDraconicRecipeMaps.DRACONIC_FUSION_TIER_UP_RECIPES && recipeMap != GTEDraconicRecipeMaps.DRACONIC_FUSION_UPGRADE_RECIPES) { diff --git a/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java b/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java index 577ce472..69e92ad0 100644 --- a/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java +++ b/src/main/java/com/github/gtexpert/core/mixins/gregtech/QuarkTechSuiteMixin.java @@ -1,5 +1,8 @@ package com.github.gtexpert.core.mixins.gregtech; +import java.util.List; + +import net.minecraft.client.resources.I18n; import net.minecraft.util.FoodStats; import org.spongepowered.asm.mixin.Mixin; @@ -10,16 +13,39 @@ import com.github.gtexpert.core.common.GTEConfigHolder; +/** + * Mixin to add configurable auto-eat behavior to the Quark Tech Suite helmet. + *

+ * Allows disabling the automatic food consumption feature via config option, + * giving players more control over their food management. + */ @Mixin(value = QuarkTechSuite.class, remap = false) public class QuarkTechSuiteMixin { + /** + * Redirects the hunger check to optionally disable auto-eat functionality. + * When disabled, the helmet will never attempt to automatically feed the player. + */ @Redirect(method = "onArmorTick", - at = @At(value = "INVOKE", target = "Lnet/minecraft/util/FoodStats;func_75121_c()Z")) - private boolean gteCore$onArmorTick(FoodStats foodStats) { + at = @At(value = "INVOKE", target = "Lnet/minecraft/util/FoodStats;needFood()Z", remap = true)) + private boolean gtexpert$onArmorTick(FoodStats foodStats) { if (GTEConfigHolder.ceuOverride.disableHelmetAutoEat) { return false; } else { return foodStats.needFood(); } } + + /** + * Hides the auto-eat tooltip when the feature is disabled via config. + */ + @Redirect(method = "addInfo", + at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z")) + private boolean gtexpert$hideAutoEatTooltip(List list, Object element) { + if (GTEConfigHolder.ceuOverride.disableHelmetAutoEat && + element.equals(I18n.format("metaarmor.tooltip.autoeat"))) { + return false; + } + return list.add((String) element); + } }