diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2022-12-29 18:34:45 +0100 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2022-12-29 18:34:45 +0100 |
commit | 5689117e8d5f1ba39aef4c9c60529fb5a697b25d (patch) | |
tree | 08ec1172f643c71dc17e7f880793ea462da93879 | |
parent | 78328f061716609a61550aced3106b835b6f298c (diff) | |
download | skyhanni-5689117e8d5f1ba39aef4c9c60529fb5a697b25d.tar.gz skyhanni-5689117e8d5f1ba39aef4c9c60529fb5a697b25d.tar.bz2 skyhanni-5689117e8d5f1ba39aef4c9c60529fb5a697b25d.zip |
performance increases via particle logic changes
9 files changed, 21 insertions, 118 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java index b3622499f..afb2793d5 100644 --- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -158,7 +158,6 @@ public class SkyHanniMod { registerEvent(new SlayerQuestWarning()); registerEvent(new StatsTuning()); registerEvent(new NonGodPotEffectDisplay()); - registerEvent(new HideBlazeParticles()); registerEvent(new SoopyGuessBurrow()); registerEvent(new GriffinBurrowHelper()); registerEvent(new GriffinBurrowParticleFinder()); diff --git a/src/main/java/at/hannibal2/skyhanni/events/RenderParticleEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/RenderParticleEvent.kt deleted file mode 100644 index 0146c0467..000000000 --- a/src/main/java/at/hannibal2/skyhanni/events/RenderParticleEvent.kt +++ /dev/null @@ -1,7 +0,0 @@ -package at.hannibal2.skyhanni.events - -import net.minecraftforge.fml.common.eventhandler.Cancelable - -@Cancelable -class RenderParticleEvent(val particleId: Int, val callerClass: String, val x: Double, val y: Double, val z: Double) : - LorenzEvent()
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/HideBlazeParticles.kt b/src/main/java/at/hannibal2/skyhanni/features/HideBlazeParticles.kt deleted file mode 100644 index 6387ab145..000000000 --- a/src/main/java/at/hannibal2/skyhanni/features/HideBlazeParticles.kt +++ /dev/null @@ -1,28 +0,0 @@ -package at.hannibal2.skyhanni.features - -import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.events.RenderParticleEvent -import at.hannibal2.skyhanni.utils.EntityUtils.getEntitiesNearby -import at.hannibal2.skyhanni.utils.LorenzVec -import net.minecraft.client.Minecraft -import net.minecraft.entity.monster.EntityBlaze -import net.minecraft.util.EnumParticleTypes -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent - -class HideBlazeParticles { - - @SubscribeEvent - fun onSpawnParticle(event: RenderParticleEvent) { - val particleId = event.particleId - if (!SkyHanniMod.feature.misc.hideBlazeParticles) return - - val particleType = EnumParticleTypes.values().find { it.particleID == particleId } - if (particleType != EnumParticleTypes.SMOKE_LARGE) return - - val location = LorenzVec(event.x, event.y, event.z) - val clazz = EntityBlaze::class.java - if (Minecraft.getMinecraft().theWorld.getEntitiesNearby(clazz, location, 3.0).isNotEmpty()) { - event.isCanceled = true - } - } -}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt index c299e7ef6..b99f0ff7b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/ashfang/AshfangHideParticles.kt @@ -3,7 +3,6 @@ package at.hannibal2.skyhanni.features.nether.ashfang import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent -import at.hannibal2.skyhanni.events.RenderParticleEvent import at.hannibal2.skyhanni.features.damageindicator.BossType import at.hannibal2.skyhanni.features.damageindicator.DamageIndicatorManager import at.hannibal2.skyhanni.utils.ItemUtils.name @@ -35,21 +34,6 @@ class AshfangHideParticles { event.isCanceled = true } - @SubscribeEvent - fun onSpawnParticle(event: RenderParticleEvent) { - if (!isEnabled()) return - - - when (event.callerClass) { - "net.minecraft.block.BlockFire", - "net.minecraft.entity.monster.EntityBlaze", - "net.minecraft.entity.projectile.EntityFireball", - -> { - event.isCanceled = true - } - } - } - @SubscribeEvent(priority = EventPriority.HIGH) fun onCheckRender(event: CheckRenderEntityEvent<*>) { if (!isEnabled()) return diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt index 8a9f58718..3f0e8ad76 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt @@ -3,7 +3,6 @@ package at.hannibal2.skyhanni.features.slayer.blaze import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.CheckRenderEntityEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent -import at.hannibal2.skyhanni.events.RenderParticleEvent import at.hannibal2.skyhanni.features.damageindicator.BossType import at.hannibal2.skyhanni.features.damageindicator.DamageIndicatorManager import at.hannibal2.skyhanni.utils.EntityUtils.hasSkullTexture @@ -47,21 +46,6 @@ class BlazeSlayerClearView { } @SubscribeEvent - fun onSpawnParticle(event: RenderParticleEvent) { - if (isEnabled()) { - when (event.callerClass) { - "net.minecraft.block.BlockFire", - "net.minecraft.entity.monster.EntityBlaze", - "net.minecraft.entity.projectile.EntityFireball", - -> { - event.isCanceled = true - return - } - } - } - } - - @SubscribeEvent fun onCheckRender(event: CheckRenderEntityEvent<*>) { if (isEnabled()) { val entity = event.entity diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderGlobalHook.kt b/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderGlobalHook.kt deleted file mode 100644 index 459d192f8..000000000 --- a/src/main/java/at/hannibal2/skyhanni/mixins/hooks/RenderGlobalHook.kt +++ /dev/null @@ -1,32 +0,0 @@ -package at.hannibal2.skyhanni.mixins.hooks - -import at.hannibal2.skyhanni.events.RenderParticleEvent -import at.hannibal2.skyhanni.utils.LorenzUtils -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo - -class RenderGlobalHook { - companion object { - fun spawnParticle( - particleId: Int, - x: Double, - y: Double, - z: Double, - ci: CallbackInfo, - ) { - val callerClass = LorenzUtils.getCallerClass( - "at.hannibal2.skyhanni.mixins.hooks.RenderGlobalHook\$Companion", - "at.hannibal2.skyhanni.mixins.hooks.RenderGlobalHook", - "net.minecraft.client.renderer.RenderGlobal", - "net.minecraft.world.World", - "net.minecraft.client.network.NetHandlerPlayClient", - "net.minecraft.network.play.server.S2APacketParticles", - ) ?: "null" - - if (RenderParticleEvent(particleId, callerClass, x, y, z).postAndCatch()) { - ci.cancel() - return - } - - } - } -}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java new file mode 100644 index 000000000..d041a8b69 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java @@ -0,0 +1,20 @@ +package at.hannibal2.skyhanni.mixins.transformers; + +import at.hannibal2.skyhanni.SkyHanniMod; +import net.minecraft.entity.monster.EntityBlaze; +import net.minecraft.util.EnumParticleTypes; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(EntityBlaze.class) +public class MixinEntityBlaze { + + @Redirect(method = "onLivingUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;spawnParticle(Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V")) + private void onLivingUpdate(World instance, EnumParticleTypes particleType, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, double zOffset, int[] p_175688_14_) { + if (!SkyHanniMod.feature.misc.hideBlazeParticles) { + instance.spawnParticle(particleType, xCoord, yCoord, zCoord, xOffset, yOffset, zOffset, p_175688_14_); + } + } +} diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderGlobal.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderGlobal.java deleted file mode 100644 index 8d5f58127..000000000 --- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderGlobal.java +++ /dev/null @@ -1,17 +0,0 @@ -package at.hannibal2.skyhanni.mixins.transformers; - -import at.hannibal2.skyhanni.mixins.hooks.RenderGlobalHook; -import net.minecraft.client.renderer.RenderGlobal; -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(RenderGlobal.class) -public class MixinRenderGlobal { - - @Inject(method = "spawnParticle(IZDDDDDD[I)V", at = @At("HEAD"), cancellable = true) - private void spawnParticle(int particleId, boolean ignoreRange, double x, double y, double z, double xOffset, double yOffset, double zOffset, int[] p_180442_15_, CallbackInfo ci) { - RenderGlobalHook.Companion.spawnParticle(particleId, x, y, z, ci); - } -} diff --git a/src/main/resources/mixins.skyhanni.json b/src/main/resources/mixins.skyhanni.json index dc5d80243..337fe91de 100644 --- a/src/main/resources/mixins.skyhanni.json +++ b/src/main/resources/mixins.skyhanni.json @@ -4,9 +4,9 @@ "compatibilityLevel": "JAVA_8", "mixins": [ "AccessorGuiPlayerTabOverlay", + "MixinEntityBlaze", "MixinNetHandlerPlayClient", "MixinNetworkManager", - "MixinRenderGlobal", "MixinRenderItem", "MixinRenderManager", "gui.AccessorGuiContainer", |