From e462ca908ae2fa507d7669e4496b2841ac98cb5d Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Fri, 8 Jan 2021 22:54:43 -0800 Subject: [PATCH] Prevents the nightvision on the NanoSuit & QuantumSuit from blinding people when it's bright out --- .../com/mitchej123/hodgepodge/Hodgepodge.java | 2 +- .../core/HodgepodgeMixinPlugin.java | 7 +++++- .../hodgepodge/core/LoadingConfig.java | 2 ++ .../MixinIc2NanoSuitNightVision.java | 22 +++++++++++++++++++ .../MixinIc2QuantumSuitNightVision.java | 22 +++++++++++++++++++ 5 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2NanoSuitNightVision.java create mode 100644 src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2QuantumSuitNightVision.java diff --git a/src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java b/src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java index 3504a10a..654447de 100644 --- a/src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java +++ b/src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java @@ -15,7 +15,7 @@ public class Hodgepodge { public static final Logger log = LogManager.getLogger("Hodgepodge"); public static final String MODID = "hodgepodge"; - public static final String VERSION = "1.4.3"; + public static final String VERSION = "1.4.4"; public static final String NAME = "A Hodgepodge of Patches"; public static XSTR RNG = new XSTR(); diff --git a/src/main/java/com/mitchej123/hodgepodge/core/HodgepodgeMixinPlugin.java b/src/main/java/com/mitchej123/hodgepodge/core/HodgepodgeMixinPlugin.java index 91c39013..6e3e9f9a 100644 --- a/src/main/java/com/mitchej123/hodgepodge/core/HodgepodgeMixinPlugin.java +++ b/src/main/java/com/mitchej123/hodgepodge/core/HodgepodgeMixinPlugin.java @@ -90,7 +90,12 @@ public enum MixinSets { IC2_DIRECT_INV_ACCESS("IC2 Direct Inventory Access Fix", () -> config.fixIc2DirectInventoryAccess, "fixic2directinventoryaccess.item.MixinItemCropSeed", - "fixic2directinventoryaccess.crop.MixinTileEntityCrop"); + "fixic2directinventoryaccess.crop.MixinTileEntityCrop"), + IC2_NIGHT_VISION("IC2 Nightvision adjustment", + () -> config.fixIc2Nightvision, + "fixIc2Nightvision.MixinIc2NanoSuitNightVision", + "fixIc2Nightvision.MixinIc2QuantumSuitNightVision" + ); private final String name; diff --git a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java index 981a6244..2078fd5f 100644 --- a/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java +++ b/src/main/java/com/mitchej123/hodgepodge/core/LoadingConfig.java @@ -11,6 +11,7 @@ public class LoadingConfig { public boolean fixGrassChunkLoads; public boolean fixFenceConnections; public boolean fixIc2DirectInventoryAccess; + public boolean fixIc2Nightvision; public boolean speedupChunkCoordinatesHashCode; public static Configuration config; @@ -26,6 +27,7 @@ public LoadingConfig(File file) { fixGrassChunkLoads = config.get("fixes", "fixGrassChunkLoads", true, "Fix grass spreading from loading chunks").getBoolean(); fixFenceConnections = config.get("fixes", "fixFenceConnections", true, "Fix fence connections with other types of fence").getBoolean(); fixIc2DirectInventoryAccess = config.get("fixes", "fixIc2DirectInventoryAccess", true, "Fix IC2's direct inventory access").getBoolean(); + fixIc2Nightvision = config.get("fixes", "fixIc2Nightvision", true, "Prevent IC2's nightvision from blinding you").getBoolean(); speedupChunkCoordinatesHashCode = config.get("speedups", "speedupChunkCoordinatesHashCode", true, "Speedup ChunkCoordinates hashCode").getBoolean(); if (config.hasChanged()) diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2NanoSuitNightVision.java b/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2NanoSuitNightVision.java new file mode 100644 index 00000000..fca314b1 --- /dev/null +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2NanoSuitNightVision.java @@ -0,0 +1,22 @@ +package com.mitchej123.hodgepodge.mixins.fixIc2Nightvision; + +import ic2.core.item.armor.ItemArmorNanoSuit; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value = ItemArmorNanoSuit.class) +public class MixinIc2NanoSuitNightVision { + @Redirect( + method= "onArmorTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V", + at = @At( + value="INVOKE", + target="Lnet/minecraft/world/World;getBlockLightValue(III)I" + ), + remap = false + ) + public int getBlockLightValue() { + // Ic2 nightvision will blind anyone if `getBlockLightValue` returns > 8; so always return 1 + return 1; + } +} diff --git a/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2QuantumSuitNightVision.java b/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2QuantumSuitNightVision.java new file mode 100644 index 00000000..ce58ad53 --- /dev/null +++ b/src/main/java/com/mitchej123/hodgepodge/mixins/fixIc2Nightvision/MixinIc2QuantumSuitNightVision.java @@ -0,0 +1,22 @@ +package com.mitchej123.hodgepodge.mixins.fixIc2Nightvision; + +import ic2.core.item.armor.ItemArmorQuantumSuit; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value = ItemArmorQuantumSuit.class) +public class MixinIc2QuantumSuitNightVision { + @Redirect( + method= "onArmorTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V", + at = @At( + value="INVOKE", + target="Lnet/minecraft/world/World;getBlockLightValue(III)I" + ), + remap = false + ) + public int getBlockLightValue() { + // Ic2 nightvision will blind anyone if `getBlockLightValue` returns > 8; so always return 1 + return 1; + } +}