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. + *
+ * 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
+ * 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