From 1c96c88082035ae7484d03c8b14b5c3c8f84fd25 Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Mon, 19 Oct 2020 23:37:12 +0100 Subject: [PATCH] Remove shadow from players under the effects of mirage --- .../client/renderer/effect/RenderMirage.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/java/electroblob/wizardry/client/renderer/effect/RenderMirage.java b/src/main/java/electroblob/wizardry/client/renderer/effect/RenderMirage.java index 3e8337d4..f915b2ae 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/effect/RenderMirage.java +++ b/src/main/java/electroblob/wizardry/client/renderer/effect/RenderMirage.java @@ -5,6 +5,9 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager.DestFactor; import net.minecraft.client.renderer.GlStateManager.SourceFactor; import net.minecraftforge.client.event.RenderLivingEvent; +import net.minecraftforge.event.entity.living.PotionEvent.PotionAddedEvent; +import net.minecraftforge.event.entity.living.PotionEvent.PotionExpiryEvent; +import net.minecraftforge.event.entity.living.PotionEvent.PotionRemoveEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; @@ -42,4 +45,27 @@ public class RenderMirage { } } + // Using the invisible flag is a slight compromise but is very unlikely to conflict with anything + + @SubscribeEvent + public static void onPotionAddedEvent(PotionAddedEvent event){ + if(event.getPotionEffect().getPotion() == WizardryPotions.mirage){ + event.getEntity().setInvisible(true); + } + } + + @SubscribeEvent + public static void onPotionRemoveEvent(PotionRemoveEvent event){ + if(event.getPotionEffect() != null && event.getPotionEffect().getPotion() == WizardryPotions.mirage){ + event.getEntity().setInvisible(false); + } + } + + @SubscribeEvent + public static void onPotionExpiryEvent(PotionExpiryEvent event){ + if(event.getPotionEffect() != null && event.getPotionEffect().getPotion() == WizardryPotions.mirage){ + event.getEntity().setInvisible(false); + } + } + }