From d4248d54bb421c8098647efbf89611407cee9d5d Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Sat, 12 Aug 2023 03:42:39 -0700 Subject: [PATCH] Fix bad particle light colouring Swapped the light variables by accident --- .../moonrise/mixin/collisions/LevelMixin.java | 6 +++--- .../moonrise/mixin/collisions/ParticleMixin.java | 6 +++--- .../moonrise/mixin/explosions/ExplosionMixin.java | 13 +++++++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/LevelMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/LevelMixin.java index 6b5f55e..697de97 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/LevelMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/LevelMixin.java @@ -57,17 +57,17 @@ public abstract class LevelMixin implements CollisionLevel, CollisionEntityGette private int maxSection; @Override - public EntityLookup getCollisionLookup() { + public final EntityLookup getCollisionLookup() { return this.collisionLookup; } @Override - public int getMinSectionMoonrise() { + public final int getMinSectionMoonrise() { return this.minSection; } @Override - public int getMaxSectionMoonrise() { + public final int getMaxSectionMoonrise() { return this.maxSection; } diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/ParticleMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/ParticleMixin.java index 8fbc1b3..37af5be 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/ParticleMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/collisions/ParticleMixin.java @@ -123,9 +123,9 @@ public abstract class ParticleMixin { final StarLightInterface lightEngine = ((StarLightLightingProvider)this.level.getLightEngine()).getLightEngine(); - final int blockLight = Math.max(lightEngine.getBlockLightValue(pos, chunk), blockState == null ? 0 : blockState.getLightEmission()); - final int skyLight = lightEngine.getSkyLightValue(pos, chunk); + final int skyLight = chunk == null ? 0 : lightEngine.getSkyLightValue(pos, chunk); + final int blockLight = Math.max(chunk == null ? 0 : lightEngine.getBlockLightValue(pos, chunk), blockState == null ? 0 : blockState.getLightEmission()); - return blockLight << 20 | skyLight << 4; + return skyLight << 20 | blockLight << 4; } } diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/explosions/ExplosionMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/explosions/ExplosionMixin.java index c2ca154..12f6586 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/explosions/ExplosionMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/explosions/ExplosionMixin.java @@ -249,10 +249,15 @@ public abstract class ExplosionMixin { if (!((CollisionBlockState)blockState).emptyCollisionShape()) { VoxelShape collision = cachedBlock.cachedCollisionShape; if (collision == null) { - collision = blockState.getCollisionShape(this.level, currPos, context); - if (!context.isDelegated()) { - // if it was not delegated during this call, assume that for any future ones it will not be delegated - // again, and cache the result + collision = ((CollisionBlockState)blockState).getConstantCollisionShape(); + if (collision == null) { + collision = blockState.getCollisionShape(this.level, currPos, context); + if (!context.isDelegated()) { + // if it was not delegated during this call, assume that for any future ones it will not be delegated + // again, and cache the result + cachedBlock.cachedCollisionShape = collision; + } + } else { cachedBlock.cachedCollisionShape = collision; } }