From 71dbf77def65b59785eb16e2290a8f972a544562 Mon Sep 17 00:00:00 2001 From: Kam Date: Sun, 22 Feb 2026 15:39:24 -0500 Subject: [PATCH] Skip Tick 0 for Rendering --- .../npcs/client/renderer/RenderAbilityBeam.java | 3 +++ .../npcs/client/renderer/RenderAbilityDisc.java | 3 +++ .../npcs/client/renderer/RenderAbilityDome.java | 3 +++ .../npcs/client/renderer/RenderAbilityLaser.java | 3 +++ .../npcs/client/renderer/RenderAbilityOrb.java | 4 ++++ .../npcs/client/renderer/RenderAbilityPanel.java | 3 +++ .../npcs/client/renderer/RenderEnergyAbility.java | 11 +++++++++++ .../npcs/client/renderer/RenderEnergyExplosion.java | 1 + .../npcs/client/renderer/RenderEnergySlicer.java | 3 +++ 9 files changed, 34 insertions(+) diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityBeam.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityBeam.java index 8f87ff331..e9868854a 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityBeam.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityBeam.java @@ -27,6 +27,9 @@ public class RenderAbilityBeam extends RenderEnergyAbility { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityAbilityBeam beam = (EntityAbilityBeam) entity; setupRenderState(); diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDisc.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDisc.java index d013dd306..cfa52a55a 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDisc.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDisc.java @@ -17,6 +17,9 @@ public class RenderAbilityDisc extends RenderEnergyAbility { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityAbilityDisc disc = (EntityAbilityDisc) entity; setupRenderState(); diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDome.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDome.java index beebe98f3..dcf3e5c06 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDome.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityDome.java @@ -17,6 +17,9 @@ public class RenderAbilityDome extends RenderEnergyBarrier { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityAbilityDome dome = (EntityAbilityDome) entity; float radius = dome.getDomeRadius(); float healthPercent = dome.getHealthPercent(); diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityLaser.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityLaser.java index e38764bfb..155c439b8 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityLaser.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityLaser.java @@ -23,6 +23,9 @@ public class RenderAbilityLaser extends RenderEnergyAbility { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityAbilityLaser laser = (EntityAbilityLaser) entity; setupRenderState(); diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityOrb.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityOrb.java index a3adf71a0..c49ca5f15 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityOrb.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityOrb.java @@ -19,6 +19,10 @@ public class RenderAbilityOrb extends RenderEnergyAbility { public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { EntityAbilityOrb orb = (EntityAbilityOrb) entity; + if (shouldSkipInitialActiveRender(entity)) { + return; + } + setupRenderState(); GL11.glPushMatrix(); diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityPanel.java b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityPanel.java index 1261aaf1e..d341082b5 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityPanel.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderAbilityPanel.java @@ -17,6 +17,9 @@ public class RenderAbilityPanel extends RenderEnergyBarrier { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityAbilityPanel panel = (EntityAbilityPanel) entity; float width = panel.getPanelData().panelWidth; diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyAbility.java b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyAbility.java index 9496f06a5..ac88c47e8 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyAbility.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyAbility.java @@ -22,11 +22,22 @@ import org.lwjgl.opengl.GL12; public abstract class RenderEnergyAbility extends Render { protected static final ResourceLocation WHITE_TEXTURE = new ResourceLocation("customnpcs", "textures/entity/white.png"); + protected static final int HIDE_INITIAL_ACTIVE_TICKS = 1; public RenderEnergyAbility() { this.shadowSize = 0.0f; } + /** + * Hide the first active tick to avoid the visible spawn-frame pause at fire time. + * Charging previews are never hidden. + */ + protected boolean shouldSkipInitialActiveRender(Entity entity) { + if (!(entity instanceof EntityEnergyAbility)) return false; + EntityEnergyAbility ability = (EntityEnergyAbility) entity; + return !ability.isPreviewMode() && !ability.isCharging() && ability.ticksExisted <= HIDE_INITIAL_ACTIVE_TICKS; + } + /** * Setup GL state for translucent, self-illuminated rendering. * Forces full brightness so world lighting does not affect projectiles. diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyExplosion.java b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyExplosion.java index 4128aef59..850d857a4 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyExplosion.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergyExplosion.java @@ -20,6 +20,7 @@ public class RenderEnergyExplosion extends RenderEnergyAbility { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) return; if (!(entity instanceof EntityEnergyExplosion)) return; if (ConfigClient.LowResExplosion) return; EntityEnergyExplosion explosion = (EntityEnergyExplosion) entity; diff --git a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergySlicer.java b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergySlicer.java index e2aa0868f..be0d75748 100644 --- a/src/main/java/kamkeel/npcs/client/renderer/RenderEnergySlicer.java +++ b/src/main/java/kamkeel/npcs/client/renderer/RenderEnergySlicer.java @@ -17,6 +17,9 @@ public class RenderEnergySlicer extends RenderEnergyAbility { @Override public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks) { + if (shouldSkipInitialActiveRender(entity)) { + return; + } EntityEnergySlicer slicer = (EntityEnergySlicer) entity; float width = slicer.getSliceWidth();