diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/aqua/AquaticChestbursterEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/aqua/AquaticChestbursterEntityRenderer.java index 8a9b3af67..de2b7510d 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/aqua/AquaticChestbursterEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/aqua/AquaticChestbursterEntityRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.BloodLayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,8 @@ public AquaticChestbursterEntityRenderer(EntityRendererProvider.Context context) AzEntityRendererConfig.builder(EntityModels.AQUATICBURSTER, EntityTextures.AQUATICBURSTER) .setAnimatorProvider(AquaticChestbursterAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new BloodLayer<>()) + .setScale(bursterEntity -> 1.0f + (bursterEntity.getGrowth() / bursterEntity.getMaxGrowth())) .build(), context ); @@ -28,15 +31,13 @@ public AquaticChestbursterEntityRenderer(EntityRendererProvider.Context context) @Override public void render( - AquaticChestbursterEntity entity, + @NotNull AquaticChestbursterEntity entity, float entityYaw, float partialTicks, - PoseStack stack, + @NotNull PoseStack stack, @NotNull MultiBufferSource bufferIn, int packedLightIn ) { - float scaleFactor = 1.0f + (entity.getGrowth() / entity.getMaxGrowth()); - stack.scale(scaleFactor, scaleFactor, scaleFactor); AquaticChestbursterAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTicks, stack, bufferIn, packedLightIn); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/AlienEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/AlienEntityRenderer.java index 8a97f477b..24f63ee56 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/AlienEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/AlienEntityRenderer.java @@ -6,6 +6,7 @@ import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererPipeline; +import mods.cybercat.gigeresque.client.entity.render.feature.ClassicAgingOverLay; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -30,6 +31,11 @@ public AlienEntityRenderer(EntityRendererProvider.Context context) { }) .setAnimatorProvider(ClassicAlienAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new ClassicAgingOverLay<>(EntityTextures.ALIEN_YOUNG)) + .setScale(classicAlienEntity -> { + var scaleFactor = 0.8f + ((classicAlienEntity.getGrowth() / classicAlienEntity.getMaxGrowth()) / 5f); + return Math.min(scaleFactor, 1.0F); + }) .build(), context ); @@ -52,16 +58,13 @@ protected AzModelRenderer createModelRenderer(AzLayerRendere */ @Override public void render( - ClassicAlienEntity entity, + @NotNull ClassicAlienEntity entity, float entityYaw, float partialTick, - PoseStack stack, + @NotNull PoseStack stack, @NotNull MultiBufferSource bufferSource, int packedLightIn ) { - var scaleFactor = 0.8f + ((entity.getGrowth() / entity.getMaxGrowth()) / 5f); - if (scaleFactor < 1.0F) - stack.scale(scaleFactor, scaleFactor, scaleFactor); ClassicAlienAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTick, stack, bufferSource, packedLightIn); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/ChestbursterEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/ChestbursterEntityRenderer.java index d2037d018..c350539c7 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/ChestbursterEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/classic/ChestbursterEntityRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.BloodLayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,8 @@ public ChestbursterEntityRenderer(EntityRendererProvider.Context context) { AzEntityRendererConfig.builder(EntityModels.CHESTBURSTER, EntityTextures.CHESTBURSTER) .setAnimatorProvider(ChestbursterAnimator::new) .setDeathMaxRotation(0.0F) + .setScale(bursterEntity -> 1.0f + (bursterEntity.getGrowth() / bursterEntity.getMaxGrowth()) / 4.0f) + .addRenderLayer(new BloodLayer<>()) .build(), context ); @@ -28,15 +31,13 @@ public ChestbursterEntityRenderer(EntityRendererProvider.Context context) { @Override public void render( - ChestbursterEntity entity, + @NotNull ChestbursterEntity entity, float entityYaw, float partialTicks, - PoseStack stack, + @NotNull PoseStack stack, @NotNull MultiBufferSource bufferIn, int packedLightIn ) { - float scaleFactor = 1.0f + ((entity.getGrowth() / entity.getMaxGrowth()) / 4.0f); - stack.scale(scaleFactor, scaleFactor, scaleFactor); ChestbursterAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTicks, stack, bufferIn, packedLightIn); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/BloodLayer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/BloodLayer.java new file mode 100644 index 000000000..22e24472b --- /dev/null +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/BloodLayer.java @@ -0,0 +1,36 @@ +package mods.cybercat.gigeresque.client.entity.render.feature; + +import mod.azure.azurelib.rewrite.model.AzBone; +import mod.azure.azurelib.rewrite.render.AzRendererPipeline; +import mod.azure.azurelib.rewrite.render.AzRendererPipelineContext; +import mod.azure.azurelib.rewrite.render.layer.AzRenderLayer; +import net.minecraft.client.renderer.RenderType; + +import mods.cybercat.gigeresque.client.entity.texture.EntityTextures; +import mods.cybercat.gigeresque.common.entity.AlienEntity; + +public class BloodLayer implements AzRenderLayer { + + @Override + public void preRender(AzRendererPipelineContext context) {} + + @Override + public void render(AzRendererPipelineContext context) { + T animatable = (T) context.animatable(); + AzRendererPipeline renderPipeline = context.rendererPipeline(); + var rendertype = RenderType.entityTranslucentCull(EntityTextures.CHESTBURSTER_BLOOD); + var maxGrowth = animatable.getMaxGrowth() / 2; + if (animatable.getGrowth() < maxGrowth && animatable.isAlive()) { + context.setRenderType(rendertype); + context.setVertexConsumer(context.multiBufferSource().getBuffer(rendertype)); + var progress = (maxGrowth - animatable.getGrowth()) / maxGrowth; + var alpha = (int) (progress * 0xFF) << 24; + var color = (context.renderColor() & 0xFFFFFF) | alpha; + context.setRenderColor(color); + renderPipeline.reRender(context); + } + } + + @Override + public void renderForBone(AzRendererPipelineContext context, AzBone bone) {} +} diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/ClassicAgingOverLay.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/ClassicAgingOverLay.java index d1534710e..971ff2480 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/ClassicAgingOverLay.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/ClassicAgingOverLay.java @@ -5,12 +5,18 @@ import mod.azure.azurelib.rewrite.render.AzRendererPipelineContext; import mod.azure.azurelib.rewrite.render.layer.AzRenderLayer; import net.minecraft.client.renderer.RenderType; +import net.minecraft.resources.ResourceLocation; -import mods.cybercat.gigeresque.client.entity.texture.EntityTextures; import mods.cybercat.gigeresque.common.entity.AlienEntity; public class ClassicAgingOverLay implements AzRenderLayer { + private ResourceLocation textureLocation; + + public ClassicAgingOverLay(ResourceLocation textureLocation) { + this.textureLocation = textureLocation; + } + @Override public void preRender(AzRendererPipelineContext context) {} @@ -18,12 +24,14 @@ public void preRender(AzRendererPipelineContext context) {} public void render(AzRendererPipelineContext context) { T animatable = (T) context.animatable(); AzRendererPipeline renderPipeline = context.rendererPipeline(); - var bufferSource = context.multiBufferSource(); - var rendertype = RenderType.entityTranslucentCull(EntityTextures.ALIEN_YOUNG); - if (!(animatable.getGrowth() >= animatable.getMaxGrowth())) { + var rendertype = RenderType.entityTranslucentCull(textureLocation); + if (animatable.getGrowth() < animatable.getMaxGrowth() && animatable.isAlive()) { context.setRenderType(rendertype); - var vertexConsumer = bufferSource.getBuffer(rendertype); - vertexConsumer.setColor(1, 1, 1, ((1200 - animatable.getGrowth()) / 1200)); + context.setVertexConsumer(context.multiBufferSource().getBuffer(rendertype)); + var progress = (animatable.getMaxGrowth() - animatable.getGrowth()) / animatable.getMaxGrowth(); + var alpha = (int) (progress * 0xFF) << 24; + var color = (context.renderColor() & 0xFFFFFF) | alpha; + context.setRenderColor(color); renderPipeline.reRender(context); } } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphFeatureRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphFeatureRenderer.java index beec37fb5..21e6e4ebf 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphFeatureRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphFeatureRenderer.java @@ -12,6 +12,7 @@ import net.minecraft.world.entity.LivingEntity; import org.jetbrains.annotations.NotNull; +import java.awt.*; import java.util.HashMap; import mods.cybercat.gigeresque.CommonMod; @@ -28,8 +29,8 @@ public EggmorphFeatureRenderer(RenderLayerParent context) { super(context); } - public static void renderEggmorphedModel( - EntityModel renderedModel, + public static > void renderEggmorphedModel( + M renderedModel, ResourceLocation texture, PoseStack matrices, MultiBufferSource vertexConsumers, @@ -45,7 +46,11 @@ public static void renderEggmorphedModel( matrices.pushPose(); renderedModel.prepareMobModel(entity, limbAngle, limbDistance, tickDelta); var vertexConsumer = vertexConsumers.getBuffer(getEggmorphLayerTexture(texture).renderLayer); + var progress = (CommonMod.config.getEggmorphTickTimer() - fovEggticker) / CommonMod.config.getEggmorphTickTimer(); + var alpha = (int) (progress * 0xFF) << 24; + var color = (Color.WHITE.getRGB() & 0xFFFFFF) | alpha; renderedModel.setupAnim(entity, limbAngle, limbDistance, animationProgress, headYaw, headPitch); + vertexConsumer.setColor(color); renderedModel.renderToBuffer( matrices, vertexConsumer, @@ -81,9 +86,8 @@ public void render( float headPitch ) { if (entity instanceof LivingEntity livingEntity && livingEntity.hasEffect(GigStatusEffects.EGGMORPHING)) { - var vertexConsumer = vertexConsumers.getBuffer(getEggmorphLayerTexture(getTextureLocation(entity)).renderLayer); fovEggticker++; - var progress = Math.max(0, Math.min(fovEggticker / CommonMod.config.getEggmorphTickTimer(), 1)); + var progress = (CommonMod.config.getEggmorphTickTimer() - fovEggticker) / CommonMod.config.getEggmorphTickTimer(); renderEggmorphedModel( getParentModel(), getTextureLocation(entity), diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphGeoFeatureRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphGeoFeatureRenderer.java index 14c741d45..f67057f75 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphGeoFeatureRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/feature/EggmorphGeoFeatureRenderer.java @@ -1,6 +1,5 @@ package mods.cybercat.gigeresque.client.entity.render.feature; -import mod.azure.azurelib.core.object.Color; import mod.azure.azurelib.rewrite.model.AzBone; import mod.azure.azurelib.rewrite.render.AzRendererPipeline; import mod.azure.azurelib.rewrite.render.AzRendererPipelineContext; @@ -23,15 +22,15 @@ public void preRender(AzRendererPipelineContext context) {} public void render(AzRendererPipelineContext context) { T animatable = (T) context.animatable(); AzRendererPipeline renderPipeline = context.rendererPipeline(); - var bufferSource = context.multiBufferSource(); ResourceLocation textureLocation = renderPipeline.config().textureLocation(animatable); var renderLayer = EggmorphFeatureRenderer.getEggmorphLayerTexture(textureLocation).renderLayer; if (animatable instanceof LivingEntity livingEntity && livingEntity.hasEffect(GigStatusEffects.EGGMORPHING)) { fovEggticker++; var progress = Math.max(0, Math.min(fovEggticker / CommonMod.config.getEggmorphTickTimer(), 1)); - var vertexConsumer = bufferSource.getBuffer(renderLayer); - vertexConsumer.setColor(1, 1, 1, progress); - context.setRenderColor(Color.ofRGBA(1, 1, 1, progress).getColor()); + context.setVertexConsumer(context.multiBufferSource().getBuffer(renderLayer)); + var alpha = (int) (progress * 0xFF) << 24; + var color = (context.renderColor() & 0xFFFFFF) | alpha; + context.setRenderColor(color); renderPipeline.reRender(context); } } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/hellmorphs/HellbursterEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/hellmorphs/HellbursterEntityRenderer.java index 0c0cad3e2..6f6dd5132 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/hellmorphs/HellbursterEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/hellmorphs/HellbursterEntityRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.BloodLayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,8 @@ public HellbursterEntityRenderer(EntityRendererProvider.Context context) { AzEntityRendererConfig.builder(EntityModels.HELLBURSTER, EntityTextures.HELLBURSTER) .setAnimatorProvider(HellbursterAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new BloodLayer<>()) + .setScale(bursterEntity -> 1.0f + (bursterEntity.getGrowth() / bursterEntity.getMaxGrowth())) .build(), context ); @@ -35,8 +38,6 @@ public void render( @NotNull MultiBufferSource bufferSource, int packedLight ) { - float scaleFactor = 1.0f + (entity.getGrowth() / entity.getMaxGrowth()); - poseStack.scale(scaleFactor, scaleFactor, scaleFactor); HellbursterAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/mutant/StalkerEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/mutant/StalkerEntityRenderer.java index eebb3fffa..4a04bfd15 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/mutant/StalkerEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/mutant/StalkerEntityRenderer.java @@ -34,6 +34,7 @@ public StalkerEntityRenderer(EntityRendererProvider.Context context) { .setAnimatorProvider(StalkerAnimator::new) .setDeathMaxRotation(0.0F) .setRenderType(stalker -> stalker.isAggressive() ? TRANSPARENT_RENDER_TYPE : NORMAL_RENDER_TYPE) + .setAlpha(stalker -> stalker.isAggressive() ? 0.2F : 1.0F) .build(), context ); diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeobursterRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeobursterRenderer.java index e905f813a..2e517db23 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeobursterRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeobursterRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.BloodLayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -26,6 +27,8 @@ public NeobursterRenderer(EntityRendererProvider.Context context) { } return rendererPipelineContext; }) + .setScale(bursterEntity -> 1.0f + (bursterEntity.getGrowth() / bursterEntity.getMaxGrowth()) / 5f) + .addRenderLayer(new BloodLayer<>()) .build(), context ); @@ -41,8 +44,6 @@ public void render( @NotNull MultiBufferSource bufferSource, int packedLight ) { - var scaleFactor = 1.0f + ((entity.getGrowth() / entity.getMaxGrowth()) / 5f); - poseStack.scale(scaleFactor, scaleFactor, scaleFactor); NeobursterAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphAdolescentRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphAdolescentRenderer.java index 96310ed4d..3a53179f6 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphAdolescentRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphAdolescentRenderer.java @@ -23,6 +23,7 @@ public NeomorphAdolescentRenderer(EntityRendererProvider.Context context) { ) .setAnimatorProvider(NeomorphAdolescentAnimator::new) .setDeathMaxRotation(0.0F) + .setScale(neoEntity -> 1.0f + (neoEntity.getGrowth() / neoEntity.getMaxGrowth()) / 5f) .build(), context ); @@ -38,9 +39,7 @@ public void render( @NotNull MultiBufferSource bufferSource, int packedLight ) { - var scaleFactor = 1.0f + ((entity.getGrowth() / entity.getMaxGrowth()) / 5f); NeomorphAdolescentAnimManager.handleAnimations(entity); - poseStack.scale(scaleFactor, scaleFactor, scaleFactor); super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); } } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphRenderer.java index 60749b68b..8658f20df 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/neo/NeomorphRenderer.java @@ -27,6 +27,7 @@ public NeomorphRenderer(EntityRendererProvider.Context context) { ) .setAnimatorProvider(NeomorphAnimator::new) .setDeathMaxRotation(0.0F) + .setScale(0.76F) .build(), context ); @@ -53,7 +54,6 @@ public void render( @NotNull MultiBufferSource bufferSource, int packedLight ) { - poseStack.scale(0.76F, 0.76F, 0.76F); NeomorphAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/rom/RomAlienRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/rom/RomAlienRenderer.java index 546f19d42..5cacfbff2 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/rom/RomAlienRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/rom/RomAlienRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.ClassicAgingOverLay; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.resources.ResourceLocation; @@ -22,18 +23,18 @@ public class RomAlienRenderer extends AzEntityRenderer { protected RomAlienRenderer(EntityRendererProvider.Context context) { super( AzEntityRendererConfig.builder($ -> EntityModels.ROM_ALIEN, xeno -> { - var progress = Math.max(0, Math.min(1 - (xeno.getGrowth() / xeno.getMaxGrowth()), 1)); - if (xeno.stasisManager.isStasis()) { return EntityTextures.ROM_ALIEN_STATIS; } - if (progress > 0) { - return EntityTextures.ROM_ALIEN_YOUNG; - } return EntityTextures.ROM_ALIEN; }) .setAnimatorProvider(RomAlienAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new ClassicAgingOverLay<>(EntityTextures.ROM_ALIEN_YOUNG)) + .setScale(classicAlienEntity -> { + var scaleFactor = 0.8f + ((classicAlienEntity.getGrowth() / classicAlienEntity.getMaxGrowth()) / 5f); + return Math.min(scaleFactor, 1.0F); + }) .build(), context ); @@ -41,15 +42,13 @@ protected RomAlienRenderer(EntityRendererProvider.Context context) { @Override public void render( - RomAlienEntity entity, + @NotNull RomAlienEntity entity, float entityYaw, float partialTick, - PoseStack stack, + @NotNull PoseStack stack, @NotNull MultiBufferSource bufferSource, int packedLightIn ) { - var scaleFactor = 0.8f + ((entity.getGrowth() / entity.getMaxGrowth()) / 5f); - stack.scale(scaleFactor, scaleFactor, scaleFactor); RomAlienAnimManager.handleAnimations(entity); super.render(entity, entityYaw, partialTick, stack, bufferSource, packedLightIn); } diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerAlienEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerAlienEntityRenderer.java index f1377ee58..55f6d343a 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerAlienEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerAlienEntityRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.ClassicAgingOverLay; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -23,6 +24,11 @@ public RunnerAlienEntityRenderer(EntityRendererProvider.Context context) { ) .setAnimatorProvider(RunnerAlienAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new ClassicAgingOverLay<>(EntityTextures.RUNNER_ALIEN_YOUNG)) + .setScale(runnerAlienEntity -> { + var scaleFactor = 0.8f + ((runnerAlienEntity.getGrowth() / runnerAlienEntity.getMaxGrowth()) / 5f); + return Math.min(scaleFactor, 1.0F); + }) .build(), context ); @@ -31,10 +37,10 @@ public RunnerAlienEntityRenderer(EntityRendererProvider.Context context) { @Override public void render( - RunnerAlienEntity entity, + @NotNull RunnerAlienEntity entity, float entityYaw, float partialTicks, - PoseStack stack, + @NotNull PoseStack stack, @NotNull MultiBufferSource bufferIn, int packedLightIn ) { diff --git a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerbursterEntityRenderer.java b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerbursterEntityRenderer.java index c4680626d..9875263ca 100644 --- a/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerbursterEntityRenderer.java +++ b/common/src/main/java/mods/cybercat/gigeresque/client/entity/render/runner/RunnerbursterEntityRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import mod.azure.azurelib.rewrite.render.entity.AzEntityRenderer; import mod.azure.azurelib.rewrite.render.entity.AzEntityRendererConfig; +import mods.cybercat.gigeresque.client.entity.render.feature.BloodLayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,8 @@ public RunnerbursterEntityRenderer(EntityRendererProvider.Context context) { AzEntityRendererConfig.builder(EntityModels.RUNNERBURSTER, EntityTextures.RUNNERBURSTER) .setAnimatorProvider(RunnerbursterAnimator::new) .setDeathMaxRotation(0.0F) + .addRenderLayer(new BloodLayer<>()) + .setScale(bursterEntity -> 1.0f + (bursterEntity.getGrowth() / bursterEntity.getMaxGrowth())) .build(), context ); @@ -35,9 +38,7 @@ public void render( @NotNull MultiBufferSource bufferSource, int packedLight ) { - float scaleFactor = 1.0f + (entity.getGrowth() / entity.getMaxGrowth()); RunnerbursterAnimManager.handleAnimations(entity); - poseStack.scale(scaleFactor, scaleFactor, scaleFactor); super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight); } } diff --git a/gradle.properties b/gradle.properties index f08c86575..f4100efa1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -40,7 +40,7 @@ fabric_loader_version = 0.16.10 # Libs modmenu_version = 11.0.3 -azurelib_version = 3.0.13 +azurelib_version = 3.0.20 # Mod options group = mods.cybercat.gigeresque