WIP: eternal crystal render
This commit is contained in:
parent
d9a60fc7f2
commit
0dcc003333
4 changed files with 138 additions and 94 deletions
|
@ -23,7 +23,10 @@ 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.client.render.EndCrystalRenderer;
|
||||
import ru.betterend.client.render.EternalCrystalRenderer;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.registry.EndItems;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class PedestalItemRenderer<T extends PedestalBlockEntity> extends BlockEntityRenderer<T> {
|
||||
|
@ -63,6 +66,8 @@ public class PedestalItemRenderer<T extends PedestalBlockEntity> extends BlockEn
|
|||
}
|
||||
if (activeItem.getItem() == Items.END_CRYSTAL) {
|
||||
EndCrystalRenderer.render(blockEntity.getAge(), blockEntity.getMaxAge(), tickDelta, matrices, vertexConsumers, light);
|
||||
} else if (activeItem.getItem() == EndItems.ETERNAL_CRYSTAL) {
|
||||
EternalCrystalRenderer.render(blockEntity.getAge(), tickDelta, matrices, vertexConsumers, light);
|
||||
} else {
|
||||
float rotation = (blockEntity.getAge() + tickDelta) / 25.0F + 6.0F;
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getRadialQuaternion(rotation));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package ru.betterend.blocks.entities.render;
|
||||
package ru.betterend.client.render;
|
||||
|
||||
import net.minecraft.client.model.ModelPart;
|
||||
import net.minecraft.client.render.OverlayTexture;
|
|
@ -0,0 +1,39 @@
|
|||
package ru.betterend.client.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.MathHelper;
|
||||
import ru.betterend.BetterEnd;
|
||||
|
||||
public class EternalCrystalRenderer {
|
||||
private static final Identifier CRYSTAL_TEXTURE = BetterEnd.makeID("textures/entity/eternal_crystal.png");
|
||||
private static final RenderLayer RENDER_LAYER;
|
||||
private static final ModelPart CORE;
|
||||
|
||||
public static void render(int age, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumerProvider, int light) {
|
||||
VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RENDER_LAYER);
|
||||
float rotation = (age + tickDelta) / 25.0F + 6.0F;
|
||||
float altitude = MathHelper.sin((age + tickDelta) / 10.0F) * 0.1F + 0.1F;
|
||||
matrices.push();
|
||||
matrices.scale(0.6F, 0.6F, 0.6F);
|
||||
matrices.translate(0.0D, altitude / 2.0D, 0.0D);
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getRadialQuaternion(rotation));
|
||||
matrices.push();
|
||||
matrices.translate(-0.125D, -0.1D, -0.125D);
|
||||
CORE.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV);
|
||||
matrices.pop();
|
||||
matrices.pop();
|
||||
}
|
||||
|
||||
static {
|
||||
RENDER_LAYER = RenderLayer.getEntityTranslucent(CRYSTAL_TEXTURE);
|
||||
CORE = new ModelPart(16, 16, 0, 0);
|
||||
CORE.addCuboid(0.0F, 0.0F, 0.0F, 4.0F, 12.0F, 4.0F);
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 338 B |
Loading…
Add table
Add a link
Reference in a new issue