WIP: End Crystal pedestal render
This commit is contained in:
parent
d1830827cb
commit
c4bab1a502
2 changed files with 59 additions and 1 deletions
|
@ -0,0 +1,53 @@
|
||||||
|
package ru.betterend.blocks.entities.render;
|
||||||
|
|
||||||
|
import net.minecraft.client.model.ModelPart;
|
||||||
|
import net.minecraft.client.render.OverlayTexture;
|
||||||
|
import net.minecraft.client.render.RenderLayer;
|
||||||
|
import net.minecraft.client.render.VertexConsumer;
|
||||||
|
import net.minecraft.client.render.VertexConsumerProvider;
|
||||||
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
|
import net.minecraft.client.util.math.Vector3f;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.math.Quaternion;
|
||||||
|
|
||||||
|
public class EndCrystalRenderer {
|
||||||
|
private static final Identifier TEXTURE = new Identifier("textures/entity/end_crystal/end_crystal.png");
|
||||||
|
private static final RenderLayer END_CRYSTAL;
|
||||||
|
private static final float SINE_45_DEGREES;
|
||||||
|
private static final ModelPart CORE;
|
||||||
|
private static final ModelPart FRAME;
|
||||||
|
|
||||||
|
public static void render(int age, float tickDelta, float rotation, MatrixStack matrices, VertexConsumerProvider vertexConsumerProvider, int light) {
|
||||||
|
float rotation2 = (age + tickDelta) * 3.0F;
|
||||||
|
// System.out.println("=====");
|
||||||
|
// System.out.println("A: " + age);
|
||||||
|
// System.out.println("R1: " + rotation);
|
||||||
|
// System.out.println("R2: " + rotation2);
|
||||||
|
VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(END_CRYSTAL);
|
||||||
|
matrices.push();
|
||||||
|
matrices.scale(0.8F, 0.8F, 0.8F);
|
||||||
|
matrices.translate(0.0D, -0.5D, 0.0D);
|
||||||
|
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(rotation2));
|
||||||
|
matrices.translate(0.0D, 0.8F, 0.0D);
|
||||||
|
matrices.multiply(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true));
|
||||||
|
FRAME.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV);
|
||||||
|
matrices.scale(0.875F, 0.875F, 0.875F);
|
||||||
|
matrices.multiply(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true));
|
||||||
|
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(rotation2));
|
||||||
|
FRAME.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV);
|
||||||
|
matrices.scale(0.875F, 0.875F, 0.875F);
|
||||||
|
matrices.multiply(new Quaternion(new Vector3f(SINE_45_DEGREES, 0.0F, SINE_45_DEGREES), 60.0F, true));
|
||||||
|
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(rotation2));
|
||||||
|
CORE.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV);
|
||||||
|
matrices.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
END_CRYSTAL = RenderLayer.getEntityCutoutNoCull(TEXTURE);
|
||||||
|
SINE_45_DEGREES = (float)Math.sin(0.7853981633974483D);
|
||||||
|
FRAME = new ModelPart(64, 32, 0, 0);
|
||||||
|
FRAME.addCuboid(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F);
|
||||||
|
CORE = new ModelPart(64, 32, 32, 0);
|
||||||
|
CORE.addCuboid(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F);
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,6 +16,7 @@ import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.client.util.math.Vector3f;
|
import net.minecraft.client.util.math.Vector3f;
|
||||||
import net.minecraft.item.BlockItem;
|
import net.minecraft.item.BlockItem;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.Items;
|
||||||
import net.minecraft.util.DyeColor;
|
import net.minecraft.util.DyeColor;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
@ -70,7 +71,11 @@ public class PedestalItemRenderer extends BlockEntityRenderer<PedestalBlockEntit
|
||||||
BeamRenderer.renderLightBeam(matrices, vertexConsumer, tickDelta, -y, 1024 - y, colors, 0.25F, 0.15F, 0.2F);
|
BeamRenderer.renderLightBeam(matrices, vertexConsumer, tickDelta, -y, 1024 - y, colors, 0.25F, 0.15F, 0.2F);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (activeItem.getItem() == Items.END_CRYSTAL) {
|
||||||
|
EndCrystalRenderer.render(blockEntity.getAge(), tickDelta, rotation, matrices, vertexConsumers, light);
|
||||||
|
} else {
|
||||||
minecraft.getItemRenderer().renderItem(activeItem, ModelTransformation.Mode.GROUND, false, matrices, vertexConsumers, light, overlay, model);
|
minecraft.getItemRenderer().renderItem(activeItem, ModelTransformation.Mode.GROUND, false, matrices, vertexConsumers, light, overlay, model);
|
||||||
|
}
|
||||||
matrices.pop();
|
matrices.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue