This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
EnergonRelics/src/main/java/com/thebrokenrail/energonrelics/client/render/DefensiveLaserBlockEntityRe...

46 lines
2.2 KiB
Java

package com.thebrokenrail.energonrelics.client.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) {
matrices.push();
matrices.translate(0.5d, 0.5d, 0.5d);
if (entity instanceof DefensiveLaserBlockEntity) {
DefensiveLaserBlockEntity laser = (DefensiveLaserBlockEntity) entity;
float roll = (float) (laser.rotation.getRoll(true) * DefensiveLaserBlockEntity.DEG2RAD);
if (roll != 0) {
matrices.multiply(Vector3f.POSITIVE_Z.getRadialQuaternion(roll));
}
float yaw = (float) (laser.rotation.getYaw(true) * DefensiveLaserBlockEntity.DEG2RAD);
if (yaw != 0) {
matrices.multiply(Vector3f.POSITIVE_Y.getRadialQuaternion(yaw));
}
float pitch = (float) (laser.rotation.getPitch(true) * 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.GROUND, light, overlay, matrices, vertexConsumers);
}
matrices.pop();
super.render(entity, tickDelta, matrices, vertexConsumers, light, overlay);
}
}