package net.lenorafx.fnafsbplus.client.screens; import org.checkerframework.checker.units.qual.h; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.client.event.RenderGuiEvent; import net.minecraftforge.api.distmarker.Dist; import net.minecraft.world.level.Level; import net.minecraft.world.entity.player.Player; import net.minecraft.resources.ResourceLocation; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.Minecraft; import net.lenorafx.fnafsbplus.procedures.FreddyPovDisplayProcedureProcedure; import net.lenorafx.fnafsbplus.procedures.FpipRedProcedure; import net.lenorafx.fnafsbplus.procedures.Fpip5Procedure; import net.lenorafx.fnafsbplus.procedures.Fpip4Procedure; import net.lenorafx.fnafsbplus.procedures.Fpip3Procedure; import net.lenorafx.fnafsbplus.procedures.Fpip1and2Procedure; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.platform.GlStateManager; @Mod.EventBusSubscriber({Dist.CLIENT}) public class FreddyChargeOverlay { @SubscribeEvent(priority = EventPriority.HIGHEST) public static void eventHandler(RenderGuiEvent.Pre event) { int w = event.getWindow().getGuiScaledWidth(); int h = event.getWindow().getGuiScaledHeight(); int posX = 0; int posY = h; Level world = null; double x = 0; double y = 0; double z = 0; Player entity = Minecraft.getInstance().player; if (entity != null) { world = entity.level; x = entity.getX(); y = entity.getY(); z = entity.getZ(); } RenderSystem.disableDepthTest(); RenderSystem.depthMask(false); RenderSystem.enableBlend(); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); if (FreddyPovDisplayProcedureProcedure.execute(world, x, y, z, entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/batteryframe.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); if (FpipRedProcedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/batter1red.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } if (Fpip1and2Procedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/battery1.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } if (Fpip1and2Procedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/battery2.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } if (Fpip3Procedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/battery3.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } if (Fpip4Procedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/battery4.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } if (Fpip5Procedure.execute(entity)) { RenderSystem.setShaderTexture(0, new ResourceLocation("fnaf_sb_plus:textures/screens/battery5.png")); Minecraft.getInstance().gui.blit(event.getPoseStack(), posX + 10, posY + -35, 0, 0, 57, 27, 57, 27); } } RenderSystem.depthMask(true); RenderSystem.defaultBlendFunc(); RenderSystem.enableDepthTest(); RenderSystem.disableBlend(); RenderSystem.setShaderColor(1, 1, 1, 1); } }