diff --git a/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalBlockEntityRenderer.java deleted file mode 100644 index ff3e7db5..00000000 --- a/src/main/java/ru/betterend/blocks/entities/render/EternalPedestalBlockEntityRenderer.java +++ /dev/null @@ -1,35 +0,0 @@ -package ru.betterend.blocks.entities.render; - -import net.minecraft.block.BlockState; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import ru.betterend.blocks.EternalPedestal; -import ru.betterend.blocks.entities.EternalPedestalEntity; -import ru.betterend.client.render.BeamRenderer; - -public class EternalPedestalBlockEntityRenderer extends PedestalItemRenderer { - - private static final Identifier BEAM_TEXTURE = new Identifier("textures/entity/end_gateway_beam.png"); - - public EternalPedestalBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) { - super(dispatcher); - } - - @Override - public void render(EternalPedestalEntity blockEntity, float tickDelta, MatrixStack matrices, - VertexConsumerProvider vertexConsumers, int light, int overlay) { - super.render(blockEntity, tickDelta, matrices, vertexConsumers, light, overlay); - BlockState state = blockEntity.getWorld().getBlockState(blockEntity.getPos()); - if (state.get(EternalPedestal.ACTIVATED)) { - float[] colors = DyeColor.MAGENTA.getColorComponents(); - int y = blockEntity.getPos().getY(); - VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getBeaconBeam(BEAM_TEXTURE, true)); - BeamRenderer.renderLightBeam(matrices, vertexConsumer, tickDelta, -y, 1024 - y, colors, 0.25F, 0.15F, 0.2F); - } - } -} diff --git a/src/main/java/ru/betterend/blocks/entities/render/InfusionPedestalBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/InfusionPedestalBlockEntityRenderer.java deleted file mode 100644 index d30247ba..00000000 --- a/src/main/java/ru/betterend/blocks/entities/render/InfusionPedestalBlockEntityRenderer.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.betterend.blocks.entities.render; - -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -import ru.betterend.blocks.entities.InfusionPedestalEntity; - -public class InfusionPedestalBlockEntityRenderer extends PedestalItemRenderer { - - public InfusionPedestalBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) { - super(dispatcher); - } -} diff --git a/src/main/java/ru/betterend/blocks/entities/render/PedestalBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/PedestalBlockEntityRenderer.java deleted file mode 100644 index ab933433..00000000 --- a/src/main/java/ru/betterend/blocks/entities/render/PedestalBlockEntityRenderer.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.betterend.blocks.entities.render; - -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -import ru.betterend.blocks.entities.PedestalBlockEntity; - -public class PedestalBlockEntityRenderer extends PedestalItemRenderer { - - public PedestalBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) { - super(dispatcher); - } -} diff --git a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java index 278ed0ef..0f28b100 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java @@ -4,6 +4,8 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; @@ -14,11 +16,18 @@ import net.minecraft.client.util.math.Vector3f; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; +import ru.betterend.blocks.EternalPedestal; import ru.betterend.blocks.basis.BlockPedestal; import ru.betterend.blocks.entities.PedestalBlockEntity; +import ru.betterend.client.render.BeamRenderer; +import ru.betterend.registry.EndBlocks; @Environment(EnvType.CLIENT) public class PedestalItemRenderer extends BlockEntityRenderer { + private static final Identifier BEAM_TEXTURE = new Identifier("textures/entity/end_gateway_beam.png"); public PedestalItemRenderer(BlockEntityRenderDispatcher dispatcher) { super(dispatcher); @@ -44,7 +53,14 @@ public class PedestalItemRenderer extends BlockEn } else { matrices.scale(1.25F, 1.25F, 1.25F); } - + if (state.isOf(EndBlocks.ETERNAL_PEDESTAL) && state.get(EternalPedestal.ACTIVATED)) { + float[] colors = DyeColor.MAGENTA.getColorComponents(); + int y = blockEntity.getPos().getY(); + VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getBeaconBeam(BEAM_TEXTURE, true)); + BeamRenderer.renderLightBeam(matrices, vertexConsumer, tickDelta, -y, 1024 - y, colors, 0.25F, 0.15F, 0.2F); + float altitude = MathHelper.sin((blockEntity.getAge() + tickDelta) / 10.0F) * 0.1F + 0.1F; + matrices.translate(0.0D, altitude, 0.0D); + } if (activeItem.getItem() == Items.END_CRYSTAL) { EndCrystalRenderer.render(blockEntity.getAge(), blockEntity.getMaxAge(), tickDelta, matrices, vertexConsumers, light); } else { diff --git a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java index ec9c7db0..d72bb1bf 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java @@ -3,19 +3,18 @@ package ru.betterend.registry; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; + import ru.betterend.blocks.entities.render.EndChestBlockEntityRenderer; import ru.betterend.blocks.entities.render.EndSignBlockEntityRenderer; -import ru.betterend.blocks.entities.render.EternalPedestalBlockEntityRenderer; -import ru.betterend.blocks.entities.render.InfusionPedestalBlockEntityRenderer; -import ru.betterend.blocks.entities.render.PedestalBlockEntityRenderer; +import ru.betterend.blocks.entities.render.PedestalItemRenderer; @Environment(EnvType.CLIENT) public class EndBlockEntityRenders { public static void register() { BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.CHEST, EndChestBlockEntityRenderer::new); BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.SIGN, EndSignBlockEntityRenderer::new); - BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.PEDESTAL, PedestalBlockEntityRenderer::new); - BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.ETERNAL_PEDESTAL, EternalPedestalBlockEntityRenderer::new); - BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.INFUSION_PEDESTAL, InfusionPedestalBlockEntityRenderer::new); + BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.PEDESTAL, PedestalItemRenderer::new); + BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.ETERNAL_PEDESTAL, PedestalItemRenderer::new); + BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.INFUSION_PEDESTAL, PedestalItemRenderer::new); } }