Skip to content

Commit

Permalink
Migrating ChargePadMixin from BaublesBatPacks here
Browse files Browse the repository at this point in the history
Makes IC2 Chargepads Bauble slot aware
  • Loading branch information
basdxz committed Feb 8, 2025
1 parent e6038f5 commit 93cecce
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 0 deletions.
5 changes: 5 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ repositories {
exclusive(mavenpattern(), "com.falsepattern")
exclusive(maven("mega_uploads", "https://mvn.falsepattern.com/gtmega_uploads"), "optifine")
exclusive(maven("horizon", "https://mvn.falsepattern.com/horizon"), "com.gtnewhorizons.retrofuturabootstrap")
ic2EX()
modrinthEX()
}

dependencies {
Expand All @@ -61,4 +63,7 @@ dependencies {

// BiblioCraft 1.11.7
compileOnly(deobfCurse("bibliocraft-228027:2423369"))

compileOnly(deobfModrinth("baubles-expanded:2.1.4"))
compileOnly(ic2)
}
5 changes: 5 additions & 0 deletions src/main/java/mega/blendtronic/config/ModConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ public final class ModConfig {
@Config.DefaultBoolean(true)
public static boolean buildCraftChuteImprovements;

@Config.Comment("[BOTH] Makes IC2 Chargepads aware of bauble slots")
@Config.DefaultBoolean(true)
@Config.NoSync
public static boolean ic2ChargepadBaubleSupport;

static {
ConfigurationManager.selfInit();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package mega.blendtronic.mixin.mixins.common.misc;

import baubles.common.lib.PlayerHandler;
import ic2.core.block.wiring.*;
import lombok.val;
import net.minecraft.entity.player.EntityPlayer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(value = {TileEntityChargepadBatBox.class,
TileEntityChargepadCESU.class,
TileEntityChargepadMFE.class,
TileEntityChargepadMFSU.class},
remap = false)
public abstract class IC2ChargepadBaubleSupportMixin extends TileEntityChargepadBlock {
public IC2ChargepadBaubleSupportMixin(int tier, int output, int maxStorage) {
super(tier, output, maxStorage);
}

@Inject(method = "getItems",
at = @At("RETURN"),
require = 4)
private void injectBaublesCharge(EntityPlayer player, CallbackInfo ci) {
val baubles = PlayerHandler.getPlayerBaubles(player);
for (val bauble : baubles.stackList) {
if (bauble != null) {
chargeitems(bauble, getOutput());
baubles.markDirty();
}
}
}
}
2 changes: 2 additions & 0 deletions src/main/java/mega/blendtronic/mixin/plugin/Mixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import static mega.blendtronic.config.ModConfig.buildCraftChuteImprovements;
import static mega.blendtronic.config.ModConfig.extraUtilitiesBlockBreakingRegistryFix;
import static mega.blendtronic.config.ModConfig.optiFineSunAngleFix;
import static mega.blendtronic.config.ModConfig.ic2ChargepadBaubleSupport;
import static mega.blendtronic.mixin.plugin.TargetedMod.*;

@RequiredArgsConstructor
Expand All @@ -49,6 +50,7 @@ public enum Mixin implements IMixin {
common_misc_WorldUpdateEntitiesRemoveAllMixin(COMMON, avoid(FASTCRAFT).and(condition(() -> worldUpdateEntitiesRemoveAllMixin)), "misc.WorldUpdateEntitiesRemoveAllMixin"),
common_misc_BoatDamageRedirectMixin(COMMON, condition(() -> boatDamageRedirect), "misc.BoatDamageRedirectMixin"),
common_misc_DietHopper_BlockHopperMixin(COMMON, condition(() -> dietHoppers), "misc.DietHopper_BlockHopperMixin"),
common_misc_IC2ChargepadBaubleSupportMixin(COMMON, require(IC2).and(require(BAUBLES)).and(condition(() -> ic2ChargepadBaubleSupport)), "misc.IC2ChargepadBaubleSupportMixin"),

client_misc_GameOverFullscreenFix(CLIENT, condition(() -> guiGameOverInitGuiMixin), "misc.GameOverFullscreenFix"),
client_misc_OpenALNativeCrashFix(CLIENT, condition(() -> openALNativeCrashFix), "misc.OpenALNativeCrashFix"),
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/mega/blendtronic/mixin/plugin/TargetedMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ public enum TargetedMod implements ITargetedMod {
OPTIFINE_WITHOUT_SHADERS("OptiFine without shaders", false, contains("optifine").and(OPTIFINE_SHADERSMOD_VERSIONS.or(OPTIFINE_DYNAMIC_LIGHTS_VERSIONS).negate())),
OPTIFINE_WITH_SHADERS("OptiFine with shaders", false, contains("optifine").and(OPTIFINE_SHADERSMOD_VERSIONS)),
OPTIFINE_WITH_DYNAMIC_LIGHTS("OptiFine with dynamic lights", false, contains("optifine").and(OPTIFINE_DYNAMIC_LIGHTS_VERSIONS)),
IC2("Industrial Craft 2", false, contains("industrialcraft-2-")),
BAUBLES("Baubles", false, contains("Baubles")),
;
public static Predicate<List<ITargetedMod>> REQUIRE_OPTIFINE_WITHOUT_SHADERS = require(OPTIFINE_WITHOUT_SHADERS).or(require(OPTIFINE_WITH_DYNAMIC_LIGHTS));
public static Predicate<List<ITargetedMod>> REQUIRE_OPTIFINE_WITH_SHADERS = require(OPTIFINE_WITH_SHADERS);
Expand Down

0 comments on commit 93cecce

Please sign in to comment.