mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-06-02 10:49:31 +02:00
9098002c17
- add flywheel as a dependency to catnip
54 lines
1.9 KiB
Java
54 lines
1.9 KiB
Java
package com.simibubi.create.content.kinetics.press;
|
|
|
|
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
|
|
|
|
import com.jozufozu.flywheel.backend.Backend;
|
|
import com.mojang.blaze3d.vertex.PoseStack;
|
|
import com.simibubi.create.AllPartialModels;
|
|
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
|
|
|
import net.createmod.catnip.render.CachedBuffers;
|
|
import net.createmod.catnip.render.SuperByteBuffer;
|
|
import net.minecraft.client.renderer.MultiBufferSource;
|
|
import net.minecraft.client.renderer.RenderType;
|
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
|
|
public class MechanicalPressRenderer extends KineticBlockEntityRenderer<MechanicalPressBlockEntity> {
|
|
|
|
public MechanicalPressRenderer(BlockEntityRendererProvider.Context context) {
|
|
super(context);
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderOffScreen(MechanicalPressBlockEntity be) {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
protected void renderSafe(MechanicalPressBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
|
int light, int overlay) {
|
|
super.renderSafe(be, partialTicks, ms, buffer, light, overlay);
|
|
|
|
if (Backend.canUseInstancing(be.getLevel()))
|
|
return;
|
|
|
|
BlockState blockState = be.getBlockState();
|
|
PressingBehaviour pressingBehaviour = be.getPressingBehaviour();
|
|
float renderedHeadOffset =
|
|
pressingBehaviour.getRenderedHeadOffset(partialTicks) * pressingBehaviour.mode.headOffset;
|
|
|
|
SuperByteBuffer headRender = CachedBuffers.partialFacing(AllPartialModels.MECHANICAL_PRESS_HEAD, blockState,
|
|
blockState.getValue(HORIZONTAL_FACING));
|
|
headRender.translate(0, -renderedHeadOffset, 0)
|
|
.light(light)
|
|
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
|
|
}
|
|
|
|
@Override
|
|
protected BlockState getRenderedBlockState(MechanicalPressBlockEntity be) {
|
|
return shaft(getRotationAxisOf(be));
|
|
}
|
|
|
|
}
|