package com.thebrokenrail.energonrelics.client.block.entity.render; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.DefensiveLaserBlockEntity; import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.Vector3f; import net.minecraft.item.ItemStack; public class DefensiveLaserBlockEntityRenderer extends HighlightBlockEntityRenderer { public DefensiveLaserBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) { super(dispatcher); } @Override public void render(BlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { super.render(entity, tickDelta, matrices, vertexConsumers, light, overlay); matrices.push(); matrices.translate(0.5d, 0.5d, 0.5d); matrices.scale(0.6f, 0.6f, 0.6f); if (entity instanceof DefensiveLaserBlockEntity) { DefensiveLaserBlockEntity laser = (DefensiveLaserBlockEntity) entity; float yaw = (float) ((laser.rotation.getYaw()) * DefensiveLaserBlockEntity.DEG2RAD); if (yaw != 0) { matrices.multiply(Vector3f.POSITIVE_Y.getRadialQuaternion(yaw)); } float pitch = (float) ((laser.rotation.getPitch() + 45) * DefensiveLaserBlockEntity.DEG2RAD); if (pitch != 0) { matrices.multiply(Vector3f.POSITIVE_X.getRadialQuaternion(pitch)); } matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(-90)); MinecraftClient.getInstance().getItemRenderer().renderItem(new ItemStack(EnergonRelics.DEFENSIVE_LASER_CORE_ITEM), ModelTransformation.Mode.FIXED, light, overlay, matrices, vertexConsumers); } matrices.pop(); } }