2020-05-05 19:43:27 +02:00
|
|
|
package de.ellpeck.naturesaura.blocks.tiles.render;
|
|
|
|
|
2021-12-15 14:26:42 +01:00
|
|
|
import com.mojang.blaze3d.vertex.PoseStack;
|
2020-05-05 19:43:27 +02:00
|
|
|
import de.ellpeck.naturesaura.NaturesAura;
|
|
|
|
import de.ellpeck.naturesaura.api.aura.type.IAuraType;
|
2021-12-04 15:40:09 +01:00
|
|
|
import de.ellpeck.naturesaura.blocks.tiles.BlockEntityAuraTimer;
|
2020-05-05 19:43:27 +02:00
|
|
|
import de.ellpeck.naturesaura.items.ItemAuraBottle;
|
2021-12-15 14:26:42 +01:00
|
|
|
import net.minecraft.client.renderer.MultiBufferSource;
|
|
|
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
|
|
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
|
|
|
import net.minecraft.resources.ResourceLocation;
|
|
|
|
import net.minecraft.world.item.ItemStack;
|
|
|
|
|
|
|
|
public class RenderAuraTimer implements BlockEntityRenderer<BlockEntityAuraTimer> {
|
|
|
|
|
2020-05-05 19:43:27 +02:00
|
|
|
private static final ResourceLocation RES = new ResourceLocation(NaturesAura.MOD_ID, "textures/models/aura_timer_aura.png");
|
2021-12-15 14:26:42 +01:00
|
|
|
// private final AuraModel model = new AuraModel();
|
|
|
|
|
|
|
|
public RenderAuraTimer(BlockEntityRendererProvider.Context context) {
|
2020-05-05 19:43:27 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2021-12-15 14:26:42 +01:00
|
|
|
public void render(BlockEntityAuraTimer tile, float partialTicks, PoseStack stack, MultiBufferSource buffer, int combinedLightIn, int combinedOverlayIn) {
|
2021-12-15 16:30:22 +01:00
|
|
|
var bottle = tile.getItemHandler().getStackInSlot(0);
|
2020-05-05 19:43:27 +02:00
|
|
|
if (bottle.isEmpty())
|
|
|
|
return;
|
2021-12-15 14:26:42 +01:00
|
|
|
stack.pushPose();
|
2020-05-05 19:43:27 +02:00
|
|
|
stack.translate(4 / 16F, 2.001F / 16, 4 / 16F);
|
|
|
|
|
2021-12-15 16:30:22 +01:00
|
|
|
var percentage = 1 - tile.getTimerPercentage();
|
2020-05-05 19:43:27 +02:00
|
|
|
stack.scale(8 / 16F, 6.5F / 16 * percentage, 8 / 16F);
|
|
|
|
|
2021-12-15 16:30:22 +01:00
|
|
|
var type = ItemAuraBottle.getType(bottle);
|
|
|
|
var r = (type.getColor() >> 16 & 255) / 255F;
|
|
|
|
var g = (type.getColor() >> 8 & 255) / 255F;
|
|
|
|
var b = (type.getColor() & 255) / 255F;
|
2021-12-15 14:26:42 +01:00
|
|
|
//this.model.render(stack, buffer.getBuffer(this.model.getRenderType(RES)), combinedLightIn, combinedOverlayIn, r, g, b, 0.75F);
|
|
|
|
stack.popPose();
|
|
|
|
|
2020-05-05 19:43:27 +02:00
|
|
|
}
|
|
|
|
|
2021-12-15 14:26:42 +01:00
|
|
|
// TODO model rendering
|
|
|
|
/* private static class AuraModel extends Model {
|
2020-05-05 19:43:27 +02:00
|
|
|
|
|
|
|
private final ModelRenderer box;
|
|
|
|
|
|
|
|
public AuraModel() {
|
2020-09-22 03:17:02 +02:00
|
|
|
super(RenderType::getEntityTranslucent);
|
2020-05-05 19:43:27 +02:00
|
|
|
this.box = new ModelRenderer(this, 0, 0);
|
|
|
|
this.box.setTextureSize(64, 64);
|
|
|
|
this.box.addBox(0, 0, 0, 16, 16, 16);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void render(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {
|
|
|
|
this.box.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
|
|
|
}
|
2021-12-15 14:26:42 +01:00
|
|
|
}*/
|
2020-05-05 19:43:27 +02:00
|
|
|
}
|