diff options
author | BucketBrigade <138534411+CookieBrigade@users.noreply.github.com> | 2024-11-02 20:02:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-03 02:02:37 +0100 |
commit | 8d84f1d1a01802b1d092ef9063578dd7e908ca67 (patch) | |
tree | 5732cc8dc67083213408779ad95677c5d57c6ffe | |
parent | 43ec017ec01272b613bb59cda0e3846c03d9b8b1 (diff) | |
download | GT5-Unofficial-8d84f1d1a01802b1d092ef9063578dd7e908ca67.tar.gz GT5-Unofficial-8d84f1d1a01802b1d092ef9063578dd7e908ca67.tar.bz2 GT5-Unofficial-8d84f1d1a01802b1d092ef9063578dd7e908ca67.zip |
Reduce Bounding Box allocations (#3447)
3 files changed, 35 insertions, 23 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java b/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java index 80b36ab01b..e1f4fe84cf 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/render/TileAntimatter.java @@ -17,6 +17,7 @@ import com.gtnewhorizon.structurelib.alignment.enumerable.Rotation; public class TileAntimatter extends TileEntity { public boolean shouldRender = true; + private AxisAlignedBB boundingBox; // Antimatter Core settings public static final float spikeR = 0.153f, spikeG = 0.435f, spikeB = 1f; @@ -85,13 +86,16 @@ public class TileAntimatter extends TileEntity { @Override public AxisAlignedBB getRenderBoundingBox() { - return AxisAlignedBB.getBoundingBox( - xCoord - maximalRadius - 1, - yCoord - maximalRadius - 1, - zCoord - maximalRadius - 1, - xCoord + maximalRadius + 1, - yCoord + maximalRadius + 1, - zCoord + maximalRadius + 1); + if (boundingBox == null) { + boundingBox = AxisAlignedBB.getBoundingBox( + xCoord - maximalRadius - 1, + yCoord - maximalRadius - 1, + zCoord - maximalRadius - 1, + xCoord + maximalRadius + 1, + yCoord + maximalRadius + 1, + zCoord + maximalRadius + 1); + } + return boundingBox; } @Override diff --git a/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java b/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java index d40f425a03..9206e6b1b2 100644 --- a/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java +++ b/src/main/java/gregtech/common/tileentities/render/TileEntityBlackhole.java @@ -9,6 +9,8 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityBlackhole extends TileEntity { + private AxisAlignedBB boundingBox; + // Should run from 0 to 1, >.5 starts showing changes private float stability = 1; // true = growing, false = shrinking @@ -69,8 +71,11 @@ public class TileEntityBlackhole extends TileEntity { @Override public AxisAlignedBB getRenderBoundingBox() { - return AxisAlignedBB - .getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 10, yCoord + 10, zCoord + 10); + if (boundingBox == null) { + boundingBox = AxisAlignedBB + .getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 10, yCoord + 10, zCoord + 10); + } + return boundingBox; } public long getStartTime() { diff --git a/src/main/java/tectech/thing/block/TileEntityEyeOfHarmony.java b/src/main/java/tectech/thing/block/TileEntityEyeOfHarmony.java index 147894f4e2..0687346853 100644 --- a/src/main/java/tectech/thing/block/TileEntityEyeOfHarmony.java +++ b/src/main/java/tectech/thing/block/TileEntityEyeOfHarmony.java @@ -24,24 +24,27 @@ import gtneioreplugin.plugin.block.ModBlocks; public class TileEntityEyeOfHarmony extends TileEntity { private static final double EOH_STAR_FIELD_RADIUS = 13; + private AxisAlignedBB boundingBox; // Prevent culling when block is out of frame so model can remain active. @Override public AxisAlignedBB getRenderBoundingBox() { - - // Assuming your block is at (x, y, z) - double x = this.xCoord; - double y = this.yCoord; - double z = this.zCoord; - - // Create a bounding box that extends 'size' blocks in all directions from the block. - return AxisAlignedBB.getBoundingBox( - x - EOH_STAR_FIELD_RADIUS, - y - EOH_STAR_FIELD_RADIUS, - z - EOH_STAR_FIELD_RADIUS, - x + EOH_STAR_FIELD_RADIUS + 1, - y + EOH_STAR_FIELD_RADIUS + 1, - z + EOH_STAR_FIELD_RADIUS + 1); + if (boundingBox == null) { + // Assuming your block is at (x, y, z) + double x = this.xCoord; + double y = this.yCoord; + double z = this.zCoord; + + // Create a bounding box that extends 'size' blocks in all directions from the block. + boundingBox = AxisAlignedBB.getBoundingBox( + x - EOH_STAR_FIELD_RADIUS, + y - EOH_STAR_FIELD_RADIUS, + z - EOH_STAR_FIELD_RADIUS, + x + EOH_STAR_FIELD_RADIUS + 1, + y + EOH_STAR_FIELD_RADIUS + 1, + z + EOH_STAR_FIELD_RADIUS + 1); + } + return boundingBox; } public void setSize(float size) { |