Wait it's all Flywheel? Always has been.

- add flywheel as a dependency to catnip
This commit is contained in:
zelophed 2023-08-13 23:39:10 +02:00
parent f6c6942d14
commit 9098002c17
87 changed files with 239 additions and 986 deletions

View file

@ -26,16 +26,14 @@ import com.simibubi.create.content.trains.track.TrackPlacementOverlay;
import com.simibubi.create.foundation.ClientResourceReloadListener;
import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsClient;
import com.simibubi.create.foundation.ponder.CreatePonderPlugin;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import com.simibubi.create.foundation.render.CreateContexts;
import com.simibubi.create.foundation.render.FlwSuperBufferFactory;
import com.simibubi.create.foundation.utility.ModelSwapper;
import com.simibubi.create.infrastructure.config.AllConfigs;
import com.simibubi.create.infrastructure.gui.CreateMainMenuScreen;
import net.createmod.catnip.config.ui.BaseConfigScreen;
import net.createmod.catnip.config.ui.ConfigScreen;
import net.createmod.catnip.render.SuperBufferFactory;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBufferCache;
import net.createmod.catnip.utility.lang.Components;
import net.createmod.ponder.foundation.PonderIndex;
@ -91,10 +89,9 @@ public class CreateClient {
//BUFFER_CACHE.registerCompartment(WaterWheelRenderer.WATER_WHEEL);
//BUFFER_CACHE.registerCompartment(SBBContraptionManager.CONTRAPTION, 20);
//BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20);
SuperBufferFactory.setInstance(new FlwSuperBufferFactory());
SuperByteBufferCache.getInstance().registerCompartment(CachedPartialBuffers.PARTIAL);
SuperByteBufferCache.getInstance().registerCompartment(CachedPartialBuffers.DIRECTIONAL_PARTIAL);
SuperByteBufferCache.getInstance().registerCompartment(CachedBuffers.PARTIAL);
SuperByteBufferCache.getInstance().registerCompartment(CachedBuffers.DIRECTIONAL_PARTIAL);
SuperByteBufferCache.getInstance().registerCompartment(KineticBlockEntityRenderer.KINETIC_BLOCK);
SuperByteBufferCache.getInstance().registerCompartment(WaterWheelRenderer.WATER_WHEEL);
SuperByteBufferCache.getInstance().registerCompartment(SBBContraptionManager.CONTRAPTION, 20);

View file

@ -8,8 +8,8 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.ponder.utility.WorldTickHolder;
@ -87,7 +87,7 @@ public class AnimatedBlazeBurner extends AnimatedKinetics {
MultiBufferSource.BufferSource buffer = mc.renderBuffers()
.bufferSource();
VertexConsumer vb = buffer.getBuffer(RenderType.cutoutMipped());
CachedPartialBuffers.partial(AllPartialModels.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState())
CachedBuffers.partial(AllPartialModels.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState())
.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll)
.light(LightTexture.FULL_BRIGHT)
.renderInto(matrixStack, vb);

View file

@ -4,7 +4,6 @@ import com.jozufozu.flywheel.core.PartialModel;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.gui.CustomLightingSettings;
import com.simibubi.create.foundation.gui.element.PartialModelGuiElement;
import mezz.jei.api.gui.drawable.IDrawable;
import net.createmod.catnip.gui.ILightingSettings;
@ -37,7 +36,7 @@ public abstract class AnimatedKinetics implements IDrawable {
* Use {@link #blockElement(PartialModel)} if calling from inside a subclass.
*/
public static GuiGameElement.GuiRenderBuilder defaultBlockElement(PartialModel partial) {
return PartialModelGuiElement.of(partial)
return GuiGameElement.of(partial)
.lighting(DEFAULT_LIGHTING);
}

View file

@ -13,9 +13,9 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.redstone.nixieTube.NixieTubeRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import com.simibubi.create.foundation.utility.DyeHelper;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Couple;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -57,14 +57,14 @@ public class ContraptionControlsRenderer extends SmartBlockEntityRenderer<Contra
ms.translate(buttonOffset.x, buttonOffset.y, buttonOffset.z);
VertexConsumer vc = buffer.getBuffer(RenderType.solid());
CachedPartialBuffers.partialFacing(AllPartialModels.CONTRAPTION_CONTROLS_BUTTON, blockState, facing)
CachedBuffers.partialFacing(AllPartialModels.CONTRAPTION_CONTROLS_BUTTON, blockState, facing)
.light(light)
.renderInto(ms, vc);
ms.popPose();
int i = (((int) blockEntity.indicator.getValue(pt) / 45) % 8) + 8;
CachedPartialBuffers.partialFacing(AllPartialModels.CONTRAPTION_CONTROLS_INDICATOR.get(i % 8), blockState, facing)
CachedBuffers.partialFacing(AllPartialModels.CONTRAPTION_CONTROLS_INDICATOR.get(i % 8), blockState, facing)
.light(light)
.renderInto(ms, vc);
}

View file

@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -33,7 +33,7 @@ public class HarvesterRenderer extends SafeBlockEntityRenderer<HarvesterBlockEnt
protected void renderSafe(HarvesterBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
BlockState blockState = be.getBlockState();
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.HARVESTER_BLADE, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.HARVESTER_BLADE, blockState);
transform(be.getLevel(), blockState.getValue(HarvesterBlock.FACING), superBuffer, be.getAnimatedSpeed(), PIVOT);
superBuffer.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
@ -43,7 +43,7 @@ public class HarvesterRenderer extends SafeBlockEntityRenderer<HarvesterBlockEnt
ContraptionMatrices matrices, MultiBufferSource buffers) {
BlockState blockState = context.state;
Direction facing = blockState.getValue(HORIZONTAL_FACING);
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.HARVESTER_BLADE, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.HARVESTER_BLADE, blockState);
float speed = (float) (!VecHelper.isVecPointingTowards(context.relativeMotion, facing.getOpposite())
? context.getAnimationSpeed()
: 0);

View file

@ -13,8 +13,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.animation.LerpedFloat;
@ -62,8 +62,8 @@ public class PortableStorageInterfaceRenderer extends SafeBlockEntityRenderer<Po
private static void render(BlockState blockState, boolean lit, float progress, PoseStack local,
Consumer<SuperByteBuffer> drawCallback) {
SuperByteBuffer middle = CachedPartialBuffers.partial(getMiddleForState(blockState, lit), blockState);
SuperByteBuffer top = CachedPartialBuffers.partial(getTopForState(blockState), blockState);
SuperByteBuffer middle = CachedBuffers.partial(getMiddleForState(blockState, lit), blockState);
SuperByteBuffer top = CachedBuffers.partial(getTopForState(blockState), blockState);
if (local != null) {
middle.transform(local);

View file

@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -37,7 +37,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
ms.pushPose();
ms.translate(0, -0.25, 0);
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.ROLLER_WHEEL, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.ROLLER_WHEEL, blockState);
Direction facing = blockState.getValue(RollerBlock.FACING);
superBuffer.translate(Vec3.atLowerCornerOf(facing.getNormal())
.scale(17 / 16f));
@ -48,7 +48,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
ms.popPose();
CachedPartialBuffers.partial(AllPartialModels.ROLLER_FRAME, blockState)
CachedBuffers.partial(AllPartialModels.ROLLER_FRAME, blockState)
.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing) + 180))
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
@ -58,7 +58,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
ContraptionMatrices matrices, MultiBufferSource buffers) {
BlockState blockState = context.state;
Direction facing = blockState.getValue(HORIZONTAL_FACING);
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.ROLLER_WHEEL, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.ROLLER_WHEEL, blockState);
float speed = (float) (!VecHelper.isVecPointingTowards(context.relativeMotion, facing.getOpposite())
? context.getAnimationSpeed()
: -context.getAnimationSpeed());
@ -80,7 +80,7 @@ public class RollerRenderer extends SmartBlockEntityRenderer<RollerBlockEntity>
.renderInto(viewProjection, buffers.getBuffer(RenderType.cutoutMipped()));
viewProjection.popPose();
CachedPartialBuffers.partial(AllPartialModels.ROLLER_FRAME, blockState)
CachedBuffers.partial(AllPartialModels.ROLLER_FRAME, blockState)
.transform(matrices.getModel())
.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing) + 180))
.light(matrices.getWorld(), contraptionWorldLight)

View file

@ -7,8 +7,8 @@ import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.math.AngleHelper;
@ -25,7 +25,7 @@ public class ControlsRenderer {
BlockState state = context.state;
Direction facing = state.getValue(ControlsBlock.FACING);
SuperByteBuffer cover = CachedPartialBuffers.partial(AllPartialModels.TRAIN_CONTROLS_COVER, state);
SuperByteBuffer cover = CachedBuffers.partial(AllPartialModels.TRAIN_CONTROLS_COVER, state);
float hAngle = 180 + AngleHelper.horizontalAngle(facing);
PoseStack ms = matrices.getModel();
cover.transform(ms)
@ -39,7 +39,7 @@ public class ControlsRenderer {
for (boolean first : Iterate.trueAndFalse) {
float vAngle = (float) Mth.clamp(first ? firstLever * 70 - 25 : secondLever * 15, -45, 45);
SuperByteBuffer lever = CachedPartialBuffers.partial(AllPartialModels.TRAIN_CONTROLS_LEVER, state);
SuperByteBuffer lever = CachedBuffers.partial(AllPartialModels.TRAIN_CONTROLS_LEVER, state);
ms.pushPose();
TransformStack.cast(ms)
.centre()

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -35,7 +35,7 @@ public class BearingRenderer<T extends KineticBlockEntity & IBearingBlockEntity>
.getValue(BlockStateProperties.FACING);
PartialModel top =
be.isWoodenTop() ? AllPartialModels.BEARING_TOP_WOODEN : AllPartialModels.BEARING_TOP;
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(top, be.getBlockState());
SuperByteBuffer superBuffer = CachedBuffers.partial(top, be.getBlockState());
float interpolatedAngle = be.getInterpolatedAngle(partialTicks - 1);
kineticRotationTransform(superBuffer, be, facing.getAxis(), (float) (interpolatedAngle / 180 * Math.PI), light);
@ -50,7 +50,7 @@ public class BearingRenderer<T extends KineticBlockEntity & IBearingBlockEntity>
@Override
protected SuperByteBuffer getRotatedModel(KineticBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state, state
return CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state, state
.getValue(BearingBlock.FACING)
.getOpposite());
}

View file

@ -15,8 +15,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
@ -44,7 +44,7 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
Direction facing = context.state.getValue(BlockStateProperties.FACING);
PartialModel top = AllPartialModels.BEARING_TOP;
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(top, context.state);
SuperByteBuffer superBuffer = CachedBuffers.partial(top, context.state);
float renderPartialTicks = AnimationTickHolder.getPartialTicks();
// rotate to match blockstate

View file

@ -4,8 +4,8 @@ import com.jozufozu.flywheel.backend.Backend;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.ponder.utility.WorldTickHolder;
@ -28,7 +28,7 @@ public class StickerRenderer extends SafeBlockEntityRenderer<StickerBlockEntity>
if (Backend.canUseInstancing(be.getLevel())) return;
BlockState state = be.getBlockState();
SuperByteBuffer head = CachedPartialBuffers.partial(AllPartialModels.STICKER_HEAD, state);
SuperByteBuffer head = CachedBuffers.partial(AllPartialModels.STICKER_HEAD, state);
float offset = be.piston.getValue(WorldTickHolder.getPartialTicks(be.getLevel()));
if (be.getLevel() != Minecraft.getInstance().level && !be.isVirtual())

View file

@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.pulley.AbstractPulleyRenderer;
import com.simibubi.create.content.contraptions.pulley.PulleyRenderer;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
@ -53,7 +53,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
float blockStateAngle =
180 + AngleHelper.horizontalAngle(blockState.getValue(ElevatorPulleyBlock.HORIZONTAL_FACING));
SuperByteBuffer magnet = CachedPartialBuffers.partial(AllPartialModels.ELEVATOR_MAGNET, blockState);
SuperByteBuffer magnet = CachedBuffers.partial(AllPartialModels.ELEVATOR_MAGNET, blockState);
if (running || offset == 0)
AbstractPulleyRenderer.renderAt(world, magnet.centre()
.rotateY(blockStateAngle)
@ -78,8 +78,8 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
.light(light)
.renderInto(ms, vb);
SuperByteBuffer halfRope = CachedPartialBuffers.partial(AllPartialModels.ELEVATOR_BELT_HALF, blockState);
SuperByteBuffer rope = CachedPartialBuffers.partial(AllPartialModels.ELEVATOR_BELT, blockState);
SuperByteBuffer halfRope = CachedBuffers.partial(AllPartialModels.ELEVATOR_BELT_HALF, blockState);
SuperByteBuffer rope = CachedBuffers.partial(AllPartialModels.ELEVATOR_BELT, blockState);
float f = offset % 1;
if (f < .25f || f > .75f) {
@ -110,7 +110,7 @@ public class ElevatorPulleyRenderer extends KineticBlockEntityRenderer<ElevatorP
protected SuperByteBuffer getRotatedCoil(KineticBlockEntity be) {
BlockState blockState = be.getBlockState();
return CachedPartialBuffers.partialFacing(AllPartialModels.ELEVATOR_COIL, blockState,
return CachedBuffers.partialFacing(AllPartialModels.ELEVATOR_COIL, blockState,
blockState.getValue(ElevatorPulleyBlock.HORIZONTAL_FACING));
}

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.math.AngleHelper;
@ -54,7 +54,7 @@ public class GantryCarriageRenderer extends KineticBlockEntityRenderer<GantryCar
if (facing == Direction.NORTH || facing == Direction.EAST)
angleForBE *= -1;
SuperByteBuffer cogs = CachedPartialBuffers.partial(AllPartialModels.GANTRY_COGS, state);
SuperByteBuffer cogs = CachedBuffers.partial(AllPartialModels.GANTRY_COGS, state);
cogs.centre()
.rotateY(AngleHelper.horizontalAngle(facing))
.rotateX(facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90)

View file

@ -8,9 +8,9 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.minecart.capability.MinecartController;
import com.simibubi.create.content.kinetics.KineticDebugger;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.CatnipClient;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.Couple;
@ -64,9 +64,9 @@ public class CouplingRenderer {
BlockState renderState = Blocks.AIR.defaultBlockState();
VertexConsumer builder = buffer.getBuffer(RenderType.solid());
SuperByteBuffer attachment = CachedPartialBuffers.partial(AllPartialModels.COUPLING_ATTACHMENT, renderState);
SuperByteBuffer ring = CachedPartialBuffers.partial(AllPartialModels.COUPLING_RING, renderState);
SuperByteBuffer connector = CachedPartialBuffers.partial(AllPartialModels.COUPLING_CONNECTOR, renderState);
SuperByteBuffer attachment = CachedBuffers.partial(AllPartialModels.COUPLING_ATTACHMENT, renderState);
SuperByteBuffer ring = CachedBuffers.partial(AllPartialModels.COUPLING_RING, renderState);
SuperByteBuffer connector = CachedBuffers.partial(AllPartialModels.COUPLING_CONNECTOR, renderState);
Vec3 zero = Vec3.ZERO;
Vec3 firstEndpoint = transforms.getFirst()

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.LevelRenderer;
@ -60,8 +60,8 @@ public abstract class AbstractPulleyRenderer<T extends KineticBlockEntity> exten
BlockState blockState = be.getBlockState();
BlockPos pos = be.getBlockPos();
SuperByteBuffer halfMagnet = CachedPartialBuffers.partial(this.halfMagnet, blockState);
SuperByteBuffer halfRope = CachedPartialBuffers.partial(this.halfRope, blockState);
SuperByteBuffer halfMagnet = CachedBuffers.partial(this.halfMagnet, blockState);
SuperByteBuffer halfRope = CachedBuffers.partial(this.halfRope, blockState);
SuperByteBuffer magnet = renderMagnet(be);
SuperByteBuffer rope = renderRope(be);
@ -108,7 +108,7 @@ public abstract class AbstractPulleyRenderer<T extends KineticBlockEntity> exten
protected SuperByteBuffer getRotatedCoil(T be) {
BlockState blockState = be.getBlockState();
return CachedPartialBuffers.partialFacing(getCoil(), blockState,
return CachedBuffers.partialFacing(getCoil(), blockState,
Direction.get(AxisDirection.POSITIVE, getShaftAxis(be)));
}

View file

@ -5,7 +5,7 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.AbstractContraptionEntity;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.core.Direction.Axis;
@ -30,12 +30,12 @@ public class PulleyRenderer extends AbstractPulleyRenderer<PulleyBlockEntity> {
@Override
protected SuperByteBuffer renderRope(PulleyBlockEntity be) {
return CachedBlockBuffers.block(AllBlocks.ROPE.getDefaultState());
return CachedBuffers.block(AllBlocks.ROPE.getDefaultState());
}
@Override
protected SuperByteBuffer renderMagnet(PulleyBlockEntity be) {
return CachedBlockBuffers.block(AllBlocks.PULLEY_MAGNET.getDefaultState());
return CachedBuffers.block(AllBlocks.PULLEY_MAGNET.getDefaultState());
}
@Override

View file

@ -24,8 +24,8 @@ import com.simibubi.create.content.contraptions.ContraptionWorld;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.foundation.render.BlockEntityRenderHelper;
import com.simibubi.create.foundation.render.FlwSuperByteBuffer;
import net.createmod.catnip.render.ShadeSpearatingSuperByteBuffer;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LevelRenderer;
@ -176,7 +176,7 @@ public class ContraptionRenderDispatcher {
.withBlocks(values)
.withModelData(c.modelData)
.build();
SuperByteBuffer sbb = new FlwSuperByteBuffer(data);
SuperByteBuffer sbb = new ShadeSpearatingSuperByteBuffer(data);
data.release();
return sbb;
}

View file

@ -5,9 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Couple;
import net.createmod.catnip.utility.Iterate;
@ -55,7 +54,7 @@ public class SlidingDoorRenderer extends SafeBlockEntityRenderer<SlidingDoorBloc
boolean flip = blockState.getValue(DoorBlock.HINGE) == DoorHingeSide.RIGHT;
for (boolean left : Iterate.trueAndFalse) {
SuperByteBuffer partial = CachedPartialBuffers.partial(partials.get(left ^ flip), blockState);
SuperByteBuffer partial = CachedBuffers.partial(partials.get(left ^ flip), blockState);
float f = flip ? -1 : 1;
partial.translate(0, -1 / 512f, 0)
@ -83,7 +82,7 @@ public class SlidingDoorRenderer extends SafeBlockEntityRenderer<SlidingDoorBloc
}
for (DoubleBlockHalf half : DoubleBlockHalf.values()) {
CachedBlockBuffers.block(blockState.setValue(DoorBlock.OPEN, false)
CachedBuffers.block(blockState.setValue(DoorBlock.OPEN, false)
.setValue(DoorBlock.HALF, half))
.translate(0, half == DoubleBlockHalf.UPPER ? 1 - 1 / 512f : 0, 0)
.translate(offset)

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.decoration.steamWhistle.WhistleBlock.WhistleSize;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.ponder.utility.WorldTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
@ -39,7 +39,7 @@ public class WhistleRenderer extends SafeBlockEntityRenderer<WhistleBlockEntity>
offset -= Math.sin(wiggleProgress * (2 * Mth.PI) * (4 - size.ordinal())) / 16f;
}
CachedPartialBuffers.partial(mouth, blockState)
CachedBuffers.partial(mouth, blockState)
.centre()
.rotateY(AngleHelper.horizontalAngle(direction))
.unCentre()

View file

@ -1,9 +1,8 @@
package com.simibubi.create.content.equipment.armor;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.ponder.utility.WorldTickHolder;
@ -46,8 +45,8 @@ public class BacktankArmorLayer<T extends LivingEntity, M extends EntityModel<T>
RenderType renderType = Sheets.cutoutBlockSheet();
BlockState renderedState = item.getBlock().defaultBlockState()
.setValue(BacktankBlock.HORIZONTAL_FACING, Direction.SOUTH);
SuperByteBuffer backtank = CachedBlockBuffers.block(renderedState);
SuperByteBuffer cogs = CachedPartialBuffers.partial(BacktankRenderer.getCogsModel(renderedState), renderedState);
SuperByteBuffer backtank = CachedBuffers.block(renderedState);
SuperByteBuffer cogs = CachedBuffers.partial(BacktankRenderer.getCogsModel(renderedState), renderedState);
ms.pushPose();

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.ponder.utility.WorldTickHolder;
@ -27,7 +27,7 @@ public class BacktankRenderer extends KineticBlockEntityRenderer<BacktankBlockEn
super.renderSafe(be, partialTicks, ms, buffer, light, overlay);
BlockState blockState = be.getBlockState();
SuperByteBuffer cogs = CachedPartialBuffers.partial(getCogsModel(blockState), blockState);
SuperByteBuffer cogs = CachedBuffers.partial(getCogsModel(blockState), blockState);
cogs.centre()
.rotateY(180 + AngleHelper.horizontalAngle(blockState.getValue(BacktankBlock.HORIZONTAL_FACING)))
.unCentre()
@ -41,7 +41,7 @@ public class BacktankRenderer extends KineticBlockEntityRenderer<BacktankBlockEn
@Override
protected SuperByteBuffer getRotatedModel(BacktankBlockEntity be, BlockState state) {
return CachedPartialBuffers.partial(getShaftModel(state), state);
return CachedBuffers.partial(getShaftModel(state), state);
}
public static PartialModel getCogsModel(BlockState state) {

View file

@ -2,8 +2,8 @@ package com.simibubi.create.content.equipment.bell;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -26,7 +26,7 @@ public class BellRenderer<BE extends AbstractBellBlockEntity> extends SafeBlockE
Direction facing = state.getValue(BellBlock.FACING);
BellAttachType attachment = state.getValue(BellBlock.ATTACHMENT);
SuperByteBuffer bell = CachedPartialBuffers.partial(be.getBellModel(), state);
SuperByteBuffer bell = CachedBuffers.partial(be.getBellModel(), state);
if (be.isRinging)
bell.rotateCentered(be.ringDirection.getCounterClockWise(), getSwingAngle(be.ringingTicks + partialTicks));

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix3f;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.equipment.blueprint.BlueprintEntity.BlueprintSection;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Couple;
import net.minecraft.client.Minecraft;
@ -33,7 +33,7 @@ public class BlueprintRenderer extends EntityRenderer<BlueprintEntity> {
int light) {
PartialModel partialModel = entity.size == 3 ? AllPartialModels.CRAFTING_BLUEPRINT_3x3
: entity.size == 2 ? AllPartialModels.CRAFTING_BLUEPRINT_2x2 : AllPartialModels.CRAFTING_BLUEPRINT_1x1;
SuperByteBuffer sbb = CachedPartialBuffers.partial(partialModel, Blocks.AIR.defaultBlockState());
SuperByteBuffer sbb = CachedBuffers.partial(partialModel, Blocks.AIR.defaultBlockState());
sbb.rotateY(-yaw)
.rotateX(90.0F + entity.getXRot())
.translate(-.5, -1 / 32f, -.5);

View file

@ -14,7 +14,6 @@ import com.simibubi.create.content.logistics.filter.FilterScreenPacket;
import com.simibubi.create.content.logistics.filter.FilterScreenPacket.Option;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.element.PartialModelGuiElement;
import com.simibubi.create.foundation.gui.menu.AbstractSimiContainerScreen;
import com.simibubi.create.foundation.gui.widget.IconButton;
import com.simibubi.create.foundation.utility.CreateLang;
@ -77,7 +76,7 @@ public class BlueprintScreen extends AbstractSimiContainerScreen<BlueprintMenu>
background.render(ms, x, y, this);
font.draw(ms, title, x + 15, y + 4, 0xFFFFFF);
PartialModelGuiElement.of(AllPartialModels.CRAFTING_BLUEPRINT_1x1).<GuiGameElement
GuiGameElement.of(AllPartialModels.CRAFTING_BLUEPRINT_1x1).<GuiGameElement
.GuiRenderBuilder>at(x + background.getWidth() + 20, y + background.getHeight() - 32, 0)
.rotate(45, -45, 22.5f)
.scale(40)

View file

@ -10,7 +10,6 @@ import com.simibubi.create.content.equipment.symmetryWand.mirror.SymmetryMirror;
import com.simibubi.create.content.equipment.symmetryWand.mirror.TriplePlaneMirror;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.element.PartialModelGuiElement;
import com.simibubi.create.foundation.gui.widget.IconButton;
import com.simibubi.create.foundation.gui.widget.Label;
import com.simibubi.create.foundation.gui.widget.ScrollInput;
@ -140,7 +139,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen {
ms.mulPose(new Vector3f(.3f, 1f, 0f).rotationDegrees(-22.5f));
currentElement.applyModelTransform(ms);
// RenderSystem.multMatrix(ms.peek().getModel());
PartialModelGuiElement.of(currentElement.getModel())
GuiGameElement.of(currentElement.getModel())
.render(ms);
ms.popPose();

View file

@ -4,8 +4,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.minecraft.client.renderer.MultiBufferSource;
@ -28,8 +28,8 @@ public class ToolboxRenderer extends SmartBlockEntityRenderer<ToolboxBlockEntity
Direction facing = blockState.getValue(ToolboxBlock.FACING)
.getOpposite();
SuperByteBuffer lid =
CachedPartialBuffers.partial(AllPartialModels.TOOLBOX_LIDS.get(blockEntity.getColor()), blockState);
SuperByteBuffer drawer = CachedPartialBuffers.partial(AllPartialModels.TOOLBOX_DRAWER, blockState);
CachedBuffers.partial(AllPartialModels.TOOLBOX_LIDS.get(blockEntity.getColor()), blockState);
SuperByteBuffer drawer = CachedBuffers.partial(AllPartialModels.TOOLBOX_DRAWER, blockState);
float lidAngle = blockEntity.lid.getValue(partialTicks);
float drawerOffset = blockEntity.drawers.getValue(partialTicks);

View file

@ -12,7 +12,6 @@ import com.simibubi.create.AllPackets;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.element.PartialModelGuiElement;
import com.simibubi.create.foundation.gui.menu.AbstractSimiContainerScreen;
import com.simibubi.create.foundation.gui.widget.IconButton;
import com.simibubi.create.foundation.utility.CreateLang;
@ -142,7 +141,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen<ToolboxMenu> {
.translate(0, -6 / 16f, 12 / 16f)
.rotateX(-105 * menu.contentHolder.lid.getValue(partialTicks))
.translate(0, 6 / 16f, -12 / 16f);
PartialModelGuiElement.of(AllPartialModels.TOOLBOX_LIDS.get(color))
GuiGameElement.of(AllPartialModels.TOOLBOX_LIDS.get(color))
.render(ms);
ms.popPose();
@ -150,7 +149,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen<ToolboxMenu> {
ms.pushPose();
ms.translate(0, -offset * 1 / 8f,
menu.contentHolder.drawers.getValue(partialTicks) * -.175f * (2 - offset));
PartialModelGuiElement.of(AllPartialModels.TOOLBOX_DRAWER)
GuiGameElement.of(AllPartialModels.TOOLBOX_DRAWER)
.render(ms);
ms.popPose();
}

View file

@ -3,8 +3,8 @@ package com.simibubi.create.content.fluids.hosePulley;
import com.jozufozu.flywheel.core.PartialModel;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.pulley.AbstractPulleyRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.core.Direction.Axis;
@ -30,12 +30,12 @@ public class HosePulleyRenderer extends AbstractPulleyRenderer<HosePulleyBlockEn
@Override
protected SuperByteBuffer renderRope(HosePulleyBlockEntity be) {
return CachedPartialBuffers.partial(AllPartialModels.HOSE, be.getBlockState());
return CachedBuffers.partial(AllPartialModels.HOSE, be.getBlockState());
}
@Override
protected SuperByteBuffer renderMagnet(HosePulleyBlockEntity be) {
return CachedPartialBuffers.partial(AllPartialModels.HOSE_MAGNET, be.getBlockState());
return CachedBuffers.partial(AllPartialModels.HOSE_MAGNET, be.getBlockState());
}
@Override

View file

@ -4,8 +4,8 @@ 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 com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -30,7 +30,7 @@ public class FluidValveRenderer extends KineticBlockEntityRenderer<FluidValveBlo
super.renderSafe(be, partialTicks, ms, buffer, light, overlay);
BlockState blockState = be.getBlockState();
SuperByteBuffer pointer = CachedPartialBuffers.partial(AllPartialModels.FLUID_VALVE_POINTER, blockState);
SuperByteBuffer pointer = CachedBuffers.partial(AllPartialModels.FLUID_VALVE_POINTER, blockState);
Direction facing = blockState.getValue(FluidValveBlock.FACING);
float pointerRotation = Mth.lerp(be.pointer.getValue(partialTicks), 0, -90);

View file

@ -2,8 +2,8 @@ package com.simibubi.create.content.fluids.pump;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
@ -16,7 +16,7 @@ public class PumpRenderer extends KineticBlockEntityRenderer<PumpBlockEntity> {
@Override
protected SuperByteBuffer getRotatedModel(PumpBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacing(AllPartialModels.MECHANICAL_PUMP_COG, state);
return CachedBuffers.partialFacing(AllPartialModels.MECHANICAL_PUMP_COG, state);
}
}

View file

@ -7,8 +7,8 @@ import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTank
import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.fluid.FluidRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
@ -82,7 +82,7 @@ public class SpoutRenderer extends SafeBlockEntityRenderer<SpoutBlockEntity> {
ms.pushPose();
for (PartialModel bit : BITS) {
CachedPartialBuffers.partial(bit, be.getBlockState())
CachedBuffers.partial(bit, be.getBlockState())
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
ms.translate(0, -3 * squeeze / 32f, 0);

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.fluid.FluidRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.animation.LerpedFloat;
import net.minecraft.client.renderer.MultiBufferSource;
@ -90,13 +90,13 @@ public class FluidTankRenderer extends SafeBlockEntityRenderer<FluidTankBlockEnt
for (Direction d : Iterate.horizontalDirections) {
ms.pushPose();
CachedPartialBuffers.partial(AllPartialModels.BOILER_GAUGE, blockState)
CachedBuffers.partial(AllPartialModels.BOILER_GAUGE, blockState)
.rotateY(d.toYRot())
.unCentre()
.translate(be.width / 2f - 6 / 16f, 0, 0)
.light(light)
.renderInto(ms, vb);
CachedPartialBuffers.partial(AllPartialModels.BOILER_GAUGE_DIAL, blockState)
CachedBuffers.partial(AllPartialModels.BOILER_GAUGE_DIAL, blockState)
.rotateY(d.toYRot())
.unCentre()
.translate(be.width / 2f - 6 / 16f, 0, 0)

View file

@ -10,7 +10,7 @@ import com.simibubi.create.content.kinetics.KineticDebugger;
import com.simibubi.create.content.kinetics.simpleRelays.ICogWheel;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.render.SuperByteBufferCache;
import net.createmod.catnip.utility.theme.Color;
@ -62,12 +62,12 @@ public class KineticBlockEntityRenderer<T extends KineticBlockEntity> extends Sa
}
protected SuperByteBuffer getRotatedModel(T be, BlockState state) {
return CachedBlockBuffers.block(KINETIC_BLOCK, state);
return CachedBuffers.block(KINETIC_BLOCK, state);
}
public static void renderRotatingKineticBlock(KineticBlockEntity be, BlockState renderedState, PoseStack ms,
VertexConsumer buffer, int light) {
SuperByteBuffer superByteBuffer = CachedBlockBuffers.block(KINETIC_BLOCK, renderedState);
SuperByteBuffer superByteBuffer = CachedBuffers.block(KINETIC_BLOCK, renderedState);
renderRotatingBuffer(be, superByteBuffer, ms, buffer, light);
}

View file

@ -15,9 +15,9 @@ import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.belt.transport.TransportedItemStack;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import com.simibubi.create.foundation.render.ShadowRenderHelper;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
@ -95,7 +95,7 @@ public class BeltRenderer extends SafeBlockEntityRenderer<BeltBlockEntity> {
PartialModel beltPartial = getBeltPartial(diagonal, start, end, bottom);
SuperByteBuffer beltBuffer = CachedPartialBuffers.partial(beltPartial, blockState)
SuperByteBuffer beltBuffer = CachedBuffers.partial(beltPartial, blockState)
.light(light);
SpriteShiftEntry spriteShift = getSpriteShiftEntry(color, diagonal, bottom);
@ -140,7 +140,7 @@ public class BeltRenderer extends SafeBlockEntityRenderer<BeltBlockEntity> {
return stack;
};
SuperByteBuffer superBuffer = CachedPartialBuffers.partialDirectional(AllPartialModels.BELT_PULLEY, blockState, dir, matrixStackSupplier);
SuperByteBuffer superBuffer = CachedBuffers.partialDirectional(AllPartialModels.BELT_PULLEY, blockState, dir, matrixStackSupplier);
KineticBlockEntityRenderer.standardKineticRotationTransform(superBuffer, be, light).renderInto(ms, vb);
}
}

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.clock.CuckooClockBlockEntity.Animation;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -36,8 +36,8 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer<CuckooClockB
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
// Render Hands
SuperByteBuffer hourHand = CachedPartialBuffers.partial(AllPartialModels.CUCKOO_HOUR_HAND, blockState);
SuperByteBuffer minuteHand = CachedPartialBuffers.partial(AllPartialModels.CUCKOO_MINUTE_HAND, blockState);
SuperByteBuffer hourHand = CachedBuffers.partial(AllPartialModels.CUCKOO_HOUR_HAND, blockState);
SuperByteBuffer minuteHand = CachedBuffers.partial(AllPartialModels.CUCKOO_MINUTE_HAND, blockState);
float hourAngle = be.hourHand.getValue(partialTicks);
float minuteAngle = be.minuteHand.getValue(partialTicks);
rotateHand(hourHand, hourAngle, direction).light(light)
@ -46,8 +46,8 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer<CuckooClockB
.renderInto(ms, vb);
// Doors
SuperByteBuffer leftDoor = CachedPartialBuffers.partial(AllPartialModels.CUCKOO_LEFT_DOOR, blockState);
SuperByteBuffer rightDoor = CachedPartialBuffers.partial(AllPartialModels.CUCKOO_RIGHT_DOOR, blockState);
SuperByteBuffer leftDoor = CachedBuffers.partial(AllPartialModels.CUCKOO_LEFT_DOOR, blockState);
SuperByteBuffer rightDoor = CachedBuffers.partial(AllPartialModels.CUCKOO_RIGHT_DOOR, blockState);
float angle = 0;
float offset = 0;
@ -78,7 +78,7 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer<CuckooClockB
offset = -(angle / 135) * 1 / 2f + 10 / 16f;
PartialModel partialModel = (be.animationType == Animation.PIG ? AllPartialModels.CUCKOO_PIG : AllPartialModels.CUCKOO_CREEPER);
SuperByteBuffer figure =
CachedPartialBuffers.partial(partialModel, blockState);
CachedBuffers.partial(partialModel, blockState);
figure.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(direction.getCounterClockWise())));
figure.translate(offset, 0, 0);
figure.light(light)
@ -89,7 +89,7 @@ public class CuckooClockRenderer extends KineticBlockEntityRenderer<CuckooClockB
@Override
protected SuperByteBuffer getRotatedModel(CuckooClockBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state, state
return CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state, state
.getValue(CuckooClockBlock.HORIZONTAL_FACING)
.getOpposite());
}

View file

@ -14,8 +14,8 @@ import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.kinetics.crafter.MechanicalCrafterBlockEntity.Phase;
import com.simibubi.create.content.kinetics.crafter.RecipeGridHandler.GroupedItems;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.Pointing;
@ -170,7 +170,7 @@ public class MechanicalCrafterRenderer extends SafeBlockEntityRenderer<Mechanica
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
if (!Backend.canUseInstancing(be.getLevel())) {
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.SHAFTLESS_COGWHEEL, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.SHAFTLESS_COGWHEEL, blockState);
standardKineticRotationTransform(superBuffer, be, light);
superBuffer.rotateCentered(Direction.UP, (float) (blockState.getValue(HORIZONTAL_FACING)
.getAxis() != Direction.Axis.X ? 0 : Math.PI / 2));
@ -211,7 +211,7 @@ public class MechanicalCrafterRenderer extends SafeBlockEntityRenderer<Mechanica
}
private SuperByteBuffer renderAndTransform(PartialModel renderBlock, BlockState crafterState) {
SuperByteBuffer buffer = CachedPartialBuffers.partial(renderBlock, crafterState);
SuperByteBuffer buffer = CachedBuffers.partial(renderBlock, crafterState);
float xRot = crafterState.getValue(MechanicalCrafterBlock.POINTING)
.getXRotation();
float yRot = AngleHelper.horizontalAngle(crafterState.getValue(HORIZONTAL_FACING));

View file

@ -7,8 +7,8 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.minecraft.core.BlockPos;
@ -98,7 +98,7 @@ public class HandCrankBlockEntity extends GeneratingKineticBlockEntity {
BlockState blockState = getBlockState();
Direction facing = blockState.getOptionalValue(HandCrankBlock.FACING)
.orElse(Direction.UP);
return CachedPartialBuffers.partialFacing(AllPartialModels.HAND_CRANK_HANDLE, blockState, facing.getOpposite());
return CachedBuffers.partialFacing(AllPartialModels.HAND_CRANK_HANDLE, blockState, facing.getOpposite());
}
@OnlyIn(Dist.CLIENT)

View file

@ -19,7 +19,7 @@ import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsFormatt
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
import com.simibubi.create.foundation.utility.CreateLang;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.lang.Components;
@ -144,7 +144,7 @@ public class ValveHandleBlockEntity extends HandCrankBlockEntity {
@Override
@OnlyIn(Dist.CLIENT)
public SuperByteBuffer getRenderedHandle() {
return CachedBlockBuffers.block(getBlockState());
return CachedBuffers.block(getBlockState());
}
@Override

View file

@ -21,9 +21,8 @@ import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity.Mode;
import com.simibubi.create.foundation.blockEntity.behaviour.filtering.FilteringRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.NBTHelper;
@ -122,8 +121,8 @@ public class DeployerRenderer extends SafeBlockEntityRenderer<DeployerBlockEntit
BlockState blockState = be.getBlockState();
Vec3 offset = getHandOffset(be, partialTicks, blockState);
SuperByteBuffer pole = CachedPartialBuffers.partial(AllPartialModels.DEPLOYER_POLE, blockState);
SuperByteBuffer hand = CachedPartialBuffers.partial(be.getHandPose(), blockState);
SuperByteBuffer pole = CachedBuffers.partial(AllPartialModels.DEPLOYER_POLE, blockState);
SuperByteBuffer hand = CachedBuffers.partial(be.getHandPose(), blockState);
transform(pole.translate(offset.x, offset.y, offset.z), blockState, true)
.light(light)
@ -168,9 +167,9 @@ public class DeployerRenderer extends SafeBlockEntityRenderer<DeployerBlockEntit
if (context.contraption.stalled)
speed = 0;
SuperByteBuffer shaft = CachedBlockBuffers.block(AllBlocks.SHAFT.getDefaultState());
SuperByteBuffer pole = CachedPartialBuffers.partial(AllPartialModels.DEPLOYER_POLE, blockState);
SuperByteBuffer hand = CachedPartialBuffers.partial(handPose, blockState);
SuperByteBuffer shaft = CachedBuffers.block(AllBlocks.SHAFT.getDefaultState());
SuperByteBuffer pole = CachedBuffers.partial(AllPartialModels.DEPLOYER_POLE, blockState);
SuperByteBuffer hand = CachedBuffers.partial(handPose, blockState);
double factor;
if (context.contraption.stalled || context.position == null || context.data.contains("StationaryTimer")) {

View file

@ -6,8 +6,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.VecHelper;
@ -26,13 +26,13 @@ public class DrillRenderer extends KineticBlockEntityRenderer<DrillBlockEntity>
@Override
protected SuperByteBuffer getRotatedModel(DrillBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacing(AllPartialModels.DRILL_HEAD, state);
return CachedBuffers.partialFacing(AllPartialModels.DRILL_HEAD, state);
}
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
ContraptionMatrices matrices, MultiBufferSource buffer) {
BlockState state = context.state;
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.DRILL_HEAD, state);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.DRILL_HEAD, state);
Direction facing = state.getValue(DrillBlock.FACING);
float speed = (float) (context.contraption.stalled

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.ponder.utility.WorldTickHolder;
import net.minecraft.client.renderer.LevelRenderer;
@ -37,9 +37,9 @@ public class EncasedFanRenderer extends KineticBlockEntityRenderer<EncasedFanBlo
int lightInFront = LevelRenderer.getLightColor(be.getLevel(), be.getBlockPos().relative(direction));
SuperByteBuffer shaftHalf =
CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction.getOpposite());
CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction.getOpposite());
SuperByteBuffer fanInner =
CachedPartialBuffers.partialFacing(AllPartialModels.ENCASED_FAN_INNER, be.getBlockState(), direction.getOpposite());
CachedBuffers.partialFacing(AllPartialModels.ENCASED_FAN_INNER, be.getBlockState(), direction.getOpposite());
float time = WorldTickHolder.getRenderTime(be.getLevel());
float speed = be.getSpeed() * 5;

View file

@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -38,7 +38,7 @@ public class FlywheelRenderer extends KineticBlockEntityRenderer<FlywheelBlockEn
private void renderFlywheel(FlywheelBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle,
VertexConsumer vb) {
SuperByteBuffer wheel = CachedBlockBuffers.block(blockState);
SuperByteBuffer wheel = CachedBuffers.block(blockState);
kineticRotationTransform(wheel, be, getRotationAxisOf(be), AngleHelper.rad(angle), light);
wheel.renderInto(ms, vb);
}

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftRenderer;
import com.simibubi.create.content.kinetics.gauge.GaugeBlock.Type;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.minecraft.client.renderer.MultiBufferSource;
@ -47,8 +47,8 @@ public class GaugeRenderer extends ShaftRenderer<GaugeBlockEntity> {
PartialModel partialModel = (type == Type.SPEED ? AllPartialModels.GAUGE_HEAD_SPEED : AllPartialModels.GAUGE_HEAD_STRESS);
SuperByteBuffer headBuffer =
CachedPartialBuffers.partial(partialModel, gaugeState);
SuperByteBuffer dialBuffer = CachedPartialBuffers.partial(AllPartialModels.GAUGE_DIAL, gaugeState);
CachedBuffers.partial(partialModel, gaugeState);
SuperByteBuffer dialBuffer = CachedBuffers.partial(AllPartialModels.GAUGE_DIAL, gaugeState);
float dialPivot = 5.75f / 16;
float progress = Mth.lerp(partialTicks, gaugeBE.prevDialState, gaugeBE.dialState);

View file

@ -4,8 +4,8 @@ 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 com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.createmod.ponder.utility.WorldTickHolder;
@ -37,7 +37,7 @@ public class GearboxRenderer extends KineticBlockEntityRenderer<GearboxBlockEnti
if (boxAxis == axis)
continue;
SuperByteBuffer shaft = CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction);
SuperByteBuffer shaft = CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction);
float offset = getRotationOffsetForPosition(be, pos, axis);
float angle = (time * be.getSpeed() * 3f / 10) % 360;

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.mechanicalArm.ArmBlockEntity.Phase;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.Iterate;
@ -112,19 +112,19 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
private void renderArm(VertexConsumer builder, PoseStack ms, PoseStack msLocal, TransformStack msr,
BlockState blockState, int color, float baseAngle, float lowerArmAngle, float upperArmAngle, float headAngle,
boolean goggles, boolean inverted, boolean hasItem, boolean isBlockItem, int light) {
SuperByteBuffer base = CachedPartialBuffers.partial(AllPartialModels.ARM_BASE, blockState)
SuperByteBuffer base = CachedBuffers.partial(AllPartialModels.ARM_BASE, blockState)
.light(light);
SuperByteBuffer lowerBody = CachedPartialBuffers.partial(AllPartialModels.ARM_LOWER_BODY, blockState)
SuperByteBuffer lowerBody = CachedBuffers.partial(AllPartialModels.ARM_LOWER_BODY, blockState)
.light(light);
SuperByteBuffer upperBody = CachedPartialBuffers.partial(AllPartialModels.ARM_UPPER_BODY, blockState)
SuperByteBuffer upperBody = CachedBuffers.partial(AllPartialModels.ARM_UPPER_BODY, blockState)
.light(light);
SuperByteBuffer claw = CachedPartialBuffers
SuperByteBuffer claw = CachedBuffers
.partial(goggles ? AllPartialModels.ARM_CLAW_BASE_GOGGLES : AllPartialModels.ARM_CLAW_BASE, blockState)
.light(light);
SuperByteBuffer upperClawGrip = CachedPartialBuffers.partial(AllPartialModels.ARM_CLAW_GRIP_UPPER,
SuperByteBuffer upperClawGrip = CachedBuffers.partial(AllPartialModels.ARM_CLAW_GRIP_UPPER,
blockState)
.light(light);
SuperByteBuffer lowerClawGrip = CachedPartialBuffers.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER, blockState)
SuperByteBuffer lowerClawGrip = CachedBuffers.partial(AllPartialModels.ARM_CLAW_GRIP_LOWER, blockState)
.light(light);
transformBase(msr, baseAngle);
@ -201,7 +201,7 @@ public class ArmRenderer extends KineticBlockEntityRenderer<ArmBlockEntity> {
@Override
protected SuperByteBuffer getRotatedModel(ArmBlockEntity be, BlockState state) {
return CachedPartialBuffers.partial(AllPartialModels.ARM_COG, state);
return CachedBuffers.partial(AllPartialModels.ARM_COG, state);
}
}

View file

@ -2,8 +2,8 @@ package com.simibubi.create.content.kinetics.millstone;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
@ -16,7 +16,7 @@ public class MillstoneRenderer extends KineticBlockEntityRenderer<MillstoneBlock
@Override
protected SuperByteBuffer getRotatedModel(MillstoneBlockEntity be, BlockState state) {
return CachedPartialBuffers.partial(AllPartialModels.MILLSTONE_COG, state);
return CachedBuffers.partial(AllPartialModels.MILLSTONE_COG, state);
}
}

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.ponder.utility.WorldTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
@ -36,7 +36,7 @@ public class MechanicalMixerRenderer extends KineticBlockEntityRenderer<Mechanic
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
SuperByteBuffer superBuffer = CachedPartialBuffers.partial(AllPartialModels.SHAFTLESS_COGWHEEL, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partial(AllPartialModels.SHAFTLESS_COGWHEEL, blockState);
standardKineticRotationTransform(superBuffer, be, light).renderInto(ms, vb);
float renderedHeadOffset = be.getRenderedHeadOffset(partialTicks);
@ -44,13 +44,13 @@ public class MechanicalMixerRenderer extends KineticBlockEntityRenderer<Mechanic
float time = WorldTickHolder.getRenderTime(be.getLevel());
float angle = ((time * speed * 6 / 10f) % 360) / 180 * (float) Math.PI;
SuperByteBuffer poleRender = CachedPartialBuffers.partial(AllPartialModels.MECHANICAL_MIXER_POLE, blockState);
SuperByteBuffer poleRender = CachedBuffers.partial(AllPartialModels.MECHANICAL_MIXER_POLE, blockState);
poleRender.translate(0, -renderedHeadOffset, 0)
.light(light)
.renderInto(ms, vb);
VertexConsumer vbCutout = buffer.getBuffer(RenderType.cutoutMipped());
SuperByteBuffer headRender = CachedPartialBuffers.partial(AllPartialModels.MECHANICAL_MIXER_HEAD, blockState);
SuperByteBuffer headRender = CachedBuffers.partial(AllPartialModels.MECHANICAL_MIXER_HEAD, blockState);
headRender.rotateCentered(Direction.UP, angle)
.translate(0, -renderedHeadOffset, 0)
.light(light)

View file

@ -2,8 +2,8 @@ package com.simibubi.create.content.kinetics.motor;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
@ -16,7 +16,7 @@ public class CreativeMotorRenderer extends KineticBlockEntityRenderer<CreativeMo
@Override
protected SuperByteBuffer getRotatedModel(CreativeMotorBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state);
return CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state);
}
}

View file

@ -6,8 +6,8 @@ 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 com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
@ -38,7 +38,7 @@ public class MechanicalPressRenderer extends KineticBlockEntityRenderer<Mechanic
float renderedHeadOffset =
pressingBehaviour.getRenderedHeadOffset(partialTicks) * pressingBehaviour.mode.headOffset;
SuperByteBuffer headRender = CachedPartialBuffers.partialFacing(AllPartialModels.MECHANICAL_PRESS_HEAD, blockState,
SuperByteBuffer headRender = CachedBuffers.partialFacing(AllPartialModels.MECHANICAL_PRESS_HEAD, blockState,
blockState.getValue(HORIZONTAL_FACING));
headRender.translate(0, -renderedHeadOffset, 0)
.light(light)

View file

@ -15,9 +15,8 @@ import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.blockEntity.behaviour.filtering.FilteringRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -80,7 +79,7 @@ public class SawRenderer extends SafeBlockEntityRenderer<SawBlockEntity> {
rotate = true;
}
SuperByteBuffer superBuffer = CachedPartialBuffers.partialFacing(partial, blockState);
SuperByteBuffer superBuffer = CachedBuffers.partialFacing(partial, blockState);
if (rotate) {
superBuffer.rotateCentered(Direction.UP, AngleHelper.rad(90));
}
@ -148,9 +147,9 @@ public class SawRenderer extends SafeBlockEntityRenderer<SawBlockEntity> {
if (state.getValue(FACING)
.getAxis()
.isHorizontal())
return CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF,
return CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF,
state.rotate(be.getLevel(), be.getBlockPos(), Rotation.CLOCKWISE_180));
return CachedBlockBuffers.block(KineticBlockEntityRenderer.KINETIC_BLOCK,
return CachedBuffers.block(KineticBlockEntityRenderer.KINETIC_BLOCK,
getRenderedBlockState(be));
}
@ -179,14 +178,14 @@ public class SawRenderer extends SafeBlockEntityRenderer<SawBlockEntity> {
SuperByteBuffer superBuffer;
if (SawBlock.isHorizontal(state)) {
if (shouldAnimate)
superBuffer = CachedPartialBuffers.partial(AllPartialModels.SAW_BLADE_HORIZONTAL_ACTIVE, state);
superBuffer = CachedBuffers.partial(AllPartialModels.SAW_BLADE_HORIZONTAL_ACTIVE, state);
else
superBuffer = CachedPartialBuffers.partial(AllPartialModels.SAW_BLADE_HORIZONTAL_INACTIVE, state);
superBuffer = CachedBuffers.partial(AllPartialModels.SAW_BLADE_HORIZONTAL_INACTIVE, state);
} else {
if (shouldAnimate)
superBuffer = CachedPartialBuffers.partial(AllPartialModels.SAW_BLADE_VERTICAL_ACTIVE, state);
superBuffer = CachedBuffers.partial(AllPartialModels.SAW_BLADE_VERTICAL_ACTIVE, state);
else
superBuffer = CachedPartialBuffers.partial(AllPartialModels.SAW_BLADE_VERTICAL_INACTIVE, state);
superBuffer = CachedBuffers.partial(AllPartialModels.SAW_BLADE_VERTICAL_INACTIVE, state);
}
superBuffer.transform(matrices.getModel())

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.ponder.utility.WorldTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
@ -41,12 +41,12 @@ public class BracketedKineticBlockEntityRenderer extends KineticBlockEntityRende
Axis axis = getRotationAxisOf(be);
Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE);
renderRotatingBuffer(be,
CachedPartialBuffers.partialFacingVertical(AllPartialModels.SHAFTLESS_LARGE_COGWHEEL, be.getBlockState(), facing),
CachedBuffers.partialFacingVertical(AllPartialModels.SHAFTLESS_LARGE_COGWHEEL, be.getBlockState(), facing),
ms, buffer.getBuffer(RenderType.solid()), light);
float angle = getAngleForLargeCogShaft(be, axis);
SuperByteBuffer shaft =
CachedPartialBuffers.partialFacingVertical(AllPartialModels.COGWHEEL_SHAFT, be.getBlockState(), facing);
CachedBuffers.partialFacingVertical(AllPartialModels.COGWHEEL_SHAFT, be.getBlockState(), facing);
kineticRotationTransform(shaft, be, axis, angle, light);
shaft.renderInto(ms, buffer.getBuffer(RenderType.solid()));

View file

@ -7,8 +7,8 @@ import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.minecraft.client.renderer.MultiBufferSource;
@ -59,7 +59,7 @@ public class EncasedCogRenderer extends KineticBlockEntityRenderer<SimpleKinetic
for (Direction d : Iterate.directionsInAxis(getRotationAxisOf(be))) {
if (!def.hasShaftTowards(be.getLevel(), be.getBlockPos(), blockState, d))
continue;
SuperByteBuffer shaft = CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), d);
SuperByteBuffer shaft = CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), d);
kineticRotationTransform(shaft, be, axis, angle, light);
shaft.renderInto(ms, buffer.getBuffer(RenderType.solid()));
}
@ -67,7 +67,7 @@ public class EncasedCogRenderer extends KineticBlockEntityRenderer<SimpleKinetic
@Override
protected SuperByteBuffer getRotatedModel(SimpleKineticBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacingVertical(
return CachedBuffers.partialFacingVertical(
large ? AllPartialModels.SHAFTLESS_LARGE_COGWHEEL : AllPartialModels.SHAFTLESS_COGWHEEL, state,
Direction.fromAxisAndDirection(state.getValue(EncasedCogwheelBlock.AXIS), AxisDirection.POSITIVE));
}

View file

@ -6,9 +6,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
@ -44,7 +43,7 @@ public class SpeedControllerRenderer extends SmartBlockEntityRenderer<SpeedContr
BlockState blockState = blockEntity.getBlockState();
boolean alongX = blockState.getValue(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X;
SuperByteBuffer bracket = CachedPartialBuffers.partial(AllPartialModels.SPEED_CONTROLLER_BRACKET, blockState);
SuperByteBuffer bracket = CachedBuffers.partial(AllPartialModels.SPEED_CONTROLLER_BRACKET, blockState);
bracket.translate(0, 1, 0);
bracket.rotateCentered(Direction.UP,
(float) (alongX ? Math.PI : Math.PI / 2));
@ -53,7 +52,7 @@ public class SpeedControllerRenderer extends SmartBlockEntityRenderer<SpeedContr
}
private SuperByteBuffer getRotatedModel(SpeedControllerBlockEntity blockEntity) {
return CachedBlockBuffers.block(KineticBlockEntityRenderer.KINETIC_BLOCK,
return CachedBuffers.block(KineticBlockEntityRenderer.KINETIC_BLOCK,
KineticBlockEntityRenderer.shaft(KineticBlockEntityRenderer.getRotationAxisOf(blockEntity)));
}

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.MultiBufferSource;
@ -75,7 +75,7 @@ public class SteamEngineRenderer extends SafeBlockEntityRenderer<SteamEngineBloc
}
private SuperByteBuffer transformed(PartialModel model, BlockState blockState, Direction facing, boolean roll90) {
return CachedPartialBuffers.partial(model, blockState)
return CachedBuffers.partial(model, blockState)
.centre()
.rotateY(AngleHelper.horizontalAngle(facing))
.rotateX(AngleHelper.verticalAngle(facing) + 90)

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.createmod.ponder.utility.WorldTickHolder;
@ -48,7 +48,7 @@ public class SplitShaftRenderer extends KineticBlockEntityRenderer<SplitShaftBlo
angle = angle / 180f * (float) Math.PI;
SuperByteBuffer superByteBuffer =
CachedPartialBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction);
CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), direction);
kineticRotationTransform(superByteBuffer, be, axis, angle, light);
superByteBuffer.renderInto(ms, buffer.getBuffer(RenderType.solid()));
}

View file

@ -6,8 +6,8 @@ import com.jozufozu.flywheel.core.model.BlockModel;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.CutoutRotatingInstance;
import com.simibubi.create.content.kinetics.base.flwdata.RotatingData;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.AxisDirection;
@ -48,7 +48,7 @@ public class WaterWheelInstance<T extends WaterWheelBlockEntity> extends CutoutR
} else {
dir = state.getValue(WaterWheelBlock.FACING);
}
PoseStack transform = CachedPartialBuffers.rotateToFaceVertical(dir).get();
PoseStack transform = CachedBuffers.rotateToFaceVertical(dir).get();
return BlockModel.of(model, Blocks.AIR.defaultBlockState(), transform);
});
}

View file

@ -10,10 +10,10 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.model.BakedModelHelper;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap;
import net.createmod.catnip.platform.CatnipServices;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperBufferFactory;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.render.SuperByteBufferCache;
@ -69,7 +69,7 @@ public class WaterWheelRenderer<T extends WaterWheelBlockEntity> extends Kinetic
} else {
dir = state1.getValue(WaterWheelBlock.FACING);
}
PoseStack transform = CachedPartialBuffers.rotateToFaceVertical(dir).get();
PoseStack transform = CachedBuffers.rotateToFaceVertical(dir).get();
return SuperBufferFactory.getInstance().createForBlock(model, Blocks.AIR.defaultBlockState(), transform);
});
}

View file

@ -1,19 +1,19 @@
package com.simibubi.create.content.logistics.depot;
import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.util.transform.Rotate;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.jozufozu.flywheel.util.transform.Translate;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.ShaftRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.IntAttached;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.flw.Rotate;
import net.createmod.catnip.utility.flw.Translate;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource;
@ -46,7 +46,7 @@ public class EjectorRenderer extends ShaftRenderer<EjectorBlockEntity> {
float angle = lidProgress * 70;
if (!Backend.canUseInstancing(be.getLevel())) {
SuperByteBuffer model = CachedPartialBuffers.partial(AllPartialModels.EJECTOR_TOP, be.getBlockState());
SuperByteBuffer model = CachedBuffers.partial(AllPartialModels.EJECTOR_TOP, be.getBlockState());
applyLidAngle(be, angle, model);
model.light(light)
.renderInto(ms, vertexBuilder);
@ -80,7 +80,7 @@ public class EjectorRenderer extends ShaftRenderer<EjectorBlockEntity> {
return;
ms.pushPose();
//applyLidAngle(be, angle, msr);//TODO flw
applyLidAngle(be, angle, msr);
msr.centre()
.rotateY(-180 - AngleHelper.horizontalAngle(be.getBlockState()
.getValue(EjectorBlock.HORIZONTAL_FACING)))

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -37,7 +37,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer<FunnelBlockEntity>
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
PartialModel partialModel = (blockState.getBlock() instanceof FunnelBlock ? AllPartialModels.FUNNEL_FLAP
: AllPartialModels.BELT_FUNNEL_FLAP);
SuperByteBuffer flapBuffer = CachedPartialBuffers.partial(partialModel, blockState);
SuperByteBuffer flapBuffer = CachedBuffers.partial(partialModel, blockState);
Vec3 pivot = VecHelper.voxelSpace(0, 10, 9.5f);
TransformStack msr = TransformStack.cast(ms);

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.VecHelper;
@ -34,7 +34,7 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer<BeltTunnelBlock
if (Backend.canUseInstancing(be.getLevel()))
return;
SuperByteBuffer flapBuffer = CachedPartialBuffers.partial(AllPartialModels.BELT_TUNNEL_FLAP, be.getBlockState());
SuperByteBuffer flapBuffer = CachedBuffers.partial(AllPartialModels.BELT_TUNNEL_FLAP, be.getBlockState());
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
Vec3 pivot = VecHelper.voxelSpace(0, 10, 1f);
TransformStack msr = TransformStack.cast(ms);

View file

@ -12,8 +12,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.animation.LerpedFloat;
@ -117,7 +117,7 @@ public class BlazeBurnerRenderer extends SafeBlockEntityRenderer<BlazeBurnerBloc
uScroll = uScroll - Math.floor(uScroll);
uScroll = uScroll * spriteWidth / 2;
SuperByteBuffer flameBuffer = CachedPartialBuffers.partial(AllPartialModels.BLAZE_BURNER_FLAME, blockState);
SuperByteBuffer flameBuffer = CachedBuffers.partial(AllPartialModels.BLAZE_BURNER_FLAME, blockState);
if (modelTransform != null)
flameBuffer.transform(modelTransform);
flameBuffer.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll);
@ -134,7 +134,7 @@ public class BlazeBurnerRenderer extends SafeBlockEntityRenderer<BlazeBurnerBloc
blazeModel = AllPartialModels.BLAZE_INERT;
}
SuperByteBuffer blazeBuffer = CachedPartialBuffers.partial(blazeModel, blockState);
SuperByteBuffer blazeBuffer = CachedBuffers.partial(blazeModel, blockState);
if (modelTransform != null)
blazeBuffer.transform(modelTransform);
blazeBuffer.translate(0, headY, 0);
@ -144,7 +144,7 @@ public class BlazeBurnerRenderer extends SafeBlockEntityRenderer<BlazeBurnerBloc
PartialModel gogglesModel = blazeModel == AllPartialModels.BLAZE_INERT
? AllPartialModels.BLAZE_GOGGLES_SMALL : AllPartialModels.BLAZE_GOGGLES;
SuperByteBuffer gogglesBuffer = CachedPartialBuffers.partial(gogglesModel, blockState);
SuperByteBuffer gogglesBuffer = CachedBuffers.partial(gogglesModel, blockState);
if (modelTransform != null)
gogglesBuffer.transform(modelTransform);
gogglesBuffer.translate(0, headY + 8 / 16f, 0);
@ -152,7 +152,7 @@ public class BlazeBurnerRenderer extends SafeBlockEntityRenderer<BlazeBurnerBloc
}
if (drawHat) {
SuperByteBuffer hatBuffer = CachedPartialBuffers.partial(AllPartialModels.TRAIN_HAT, blockState);
SuperByteBuffer hatBuffer = CachedBuffers.partial(AllPartialModels.TRAIN_HAT, blockState);
if (modelTransform != null)
hatBuffer.transform(modelTransform);
hatBuffer.translate(0, headY, 0);
@ -177,14 +177,14 @@ public class BlazeBurnerRenderer extends SafeBlockEntityRenderer<BlazeBurnerBloc
PartialModel rodsModel2 = heatLevel == HeatLevel.SEETHING ? AllPartialModels.BLAZE_BURNER_SUPER_RODS_2
: AllPartialModels.BLAZE_BURNER_RODS_2;
SuperByteBuffer rodsBuffer = CachedPartialBuffers.partial(rodsModel, blockState);
SuperByteBuffer rodsBuffer = CachedBuffers.partial(rodsModel, blockState);
if (modelTransform != null)
rodsBuffer.transform(modelTransform);
rodsBuffer.translate(0, offset1 + animation + .125f, 0)
.light(LightTexture.FULL_BRIGHT)
.renderInto(ms, solid);
SuperByteBuffer rodsBuffer2 = CachedPartialBuffers.partial(rodsModel2, blockState);
SuperByteBuffer rodsBuffer2 = CachedBuffers.partial(rodsModel2, blockState);
if (modelTransform != null)
rodsBuffer2.transform(modelTransform);
rodsBuffer2.translate(0, offset2 + animation - 3 / 16f, 0)

View file

@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.catnip.utility.theme.Color;
@ -34,7 +34,7 @@ public class AnalogLeverRenderer extends SafeBlockEntityRenderer<AnalogLeverBloc
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
// Handle
SuperByteBuffer handle = CachedPartialBuffers.partial(AllPartialModels.ANALOG_LEVER_HANDLE, leverState);
SuperByteBuffer handle = CachedBuffers.partial(AllPartialModels.ANALOG_LEVER_HANDLE, leverState);
float angle = (float) ((state / 15) * 90 / 180 * Math.PI);
transform(handle, leverState).translate(1 / 2f, 1 / 16f, 1 / 2f)
.rotate(Direction.EAST, angle)
@ -44,7 +44,7 @@ public class AnalogLeverRenderer extends SafeBlockEntityRenderer<AnalogLeverBloc
// Indicator
int color = Color.mixColors(0x2C0300, 0xCD0000, state / 15f);
SuperByteBuffer indicator = transform(CachedPartialBuffers.partial(AllPartialModels.ANALOG_LEVER_INDICATOR, leverState), leverState);
SuperByteBuffer indicator = transform(CachedBuffers.partial(AllPartialModels.ANALOG_LEVER_INDICATOR, leverState), leverState);
indicator.light(light)
.color(color)
.renderInto(ms, vb);

View file

@ -2,8 +2,8 @@ package com.simibubi.create.content.redstone.diodes;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.ColoredOverlayBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.theme.Color;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
@ -21,7 +21,7 @@ public class BrassDiodeRenderer extends ColoredOverlayBlockEntityRenderer<BrassD
@Override
protected SuperByteBuffer getOverlayBuffer(BrassDiodeBlockEntity be) {
return CachedPartialBuffers.partial(AllPartialModels.FLEXPEATER_INDICATOR, be.getBlockState());
return CachedBuffers.partial(AllPartialModels.FLEXPEATER_INDICATOR, be.getBlockState());
}
}

View file

@ -4,9 +4,9 @@ import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import com.simibubi.create.foundation.render.RenderTypes;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
@ -49,11 +49,11 @@ public class DisplayLinkRenderer extends SafeBlockEntityRenderer<DisplayLinkBloc
.rotateX(-AngleHelper.verticalAngle(face) - 90)
.unCentre();
CachedPartialBuffers.partial(AllPartialModels.DISPLAY_LINK_TUBE, blockState)
CachedBuffers.partial(AllPartialModels.DISPLAY_LINK_TUBE, blockState)
.light(LightTexture.FULL_BRIGHT)
.renderInto(ms, buffer.getBuffer(RenderType.translucent()));
CachedPartialBuffers.partial(AllPartialModels.DISPLAY_LINK_GLOW, blockState)
CachedBuffers.partial(AllPartialModels.DISPLAY_LINK_GLOW, blockState)
.light(LightTexture.FULL_BRIGHT)
.color(color, color, color, 255)
.disableDiffuse()

View file

@ -7,10 +7,10 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.redstone.nixieTube.DoubleFaceAttachedBlock.DoubleAttachFace;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import com.simibubi.create.foundation.render.RenderTypes;
import com.simibubi.create.foundation.utility.DyeHelper;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Couple;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.math.AngleHelper;
@ -137,7 +137,7 @@ public class NixieTubeRenderer extends SafeBlockEntityRenderer<NixieTubeBlockEnt
boolean invertTubes =
facing == Direction.DOWN || blockState.getValue(NixieTubeBlock.FACE) == DoubleAttachFace.WALL_REVERSED;
CachedPartialBuffers.partial(AllPartialModels.SIGNAL_PANEL, blockState)
CachedBuffers.partial(AllPartialModels.SIGNAL_PANEL, blockState)
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
@ -166,13 +166,13 @@ public class NixieTubeRenderer extends SafeBlockEntityRenderer<NixieTubeBlockEnt
float longSide = yellow ? 1 : 4;
float longSideGlow = yellow ? 2 : 5.125f;
CachedPartialBuffers.partial(AllPartialModels.SIGNAL_WHITE_CUBE, blockState)
CachedBuffers.partial(AllPartialModels.SIGNAL_WHITE_CUBE, blockState)
.light(0xf000f0)
.disableDiffuse()
.scale(vert ? longSide : 1, vert ? 1 : longSide, 1)
.renderInto(ms, buffer.getBuffer(RenderType.translucent()));
CachedPartialBuffers
CachedBuffers
.partial(
first ? AllPartialModels.SIGNAL_RED_GLOW
: yellow ? AllPartialModels.SIGNAL_YELLOW_GLOW : AllPartialModels.SIGNAL_WHITE_GLOW,
@ -183,7 +183,7 @@ public class NixieTubeRenderer extends SafeBlockEntityRenderer<NixieTubeBlockEnt
.renderInto(ms, buffer.getBuffer(RenderTypes.getAdditive()));
}
CachedPartialBuffers
CachedBuffers
.partial(first ? AllPartialModels.SIGNAL_RED
: yellow ? AllPartialModels.SIGNAL_YELLOW : AllPartialModels.SIGNAL_WHITE, blockState)
.light(0xF000F0)

View file

@ -13,8 +13,8 @@ import com.simibubi.create.content.schematics.cannon.LaunchedItem.ForBelt;
import com.simibubi.create.content.schematics.cannon.LaunchedItem.ForBlockState;
import com.simibubi.create.content.schematics.cannon.LaunchedItem.ForEntity;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource;
@ -57,14 +57,14 @@ public class SchematicannonRenderer extends SafeBlockEntityRenderer<Schematicann
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
SuperByteBuffer connector = CachedPartialBuffers.partial(AllPartialModels.SCHEMATICANNON_CONNECTOR, state);
SuperByteBuffer connector = CachedBuffers.partial(AllPartialModels.SCHEMATICANNON_CONNECTOR, state);
connector.translate(.5f, 0, .5f);
connector.rotate(Direction.UP, (float) ((yaw + 90) / 180 * Math.PI));
connector.translate(-.5f, 0, -.5f);
connector.light(light)
.renderInto(ms, vb);
SuperByteBuffer pipe = CachedPartialBuffers.partial(AllPartialModels.SCHEMATICANNON_PIPE, state);
SuperByteBuffer pipe = CachedBuffers.partial(AllPartialModels.SCHEMATICANNON_PIPE, state);
pipe.translate(.5f, 15 / 16f, .5f);
pipe.rotate(Direction.UP, (float) ((yaw + 90) / 180 * Math.PI));
pipe.rotate(Direction.SOUTH, (float) (pitch / 180 * Math.PI));

View file

@ -12,8 +12,8 @@ import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.simibubi.create.foundation.render.BlockEntityRenderHelper;
import com.simibubi.create.foundation.render.FlwSuperByteBuffer;
import net.createmod.catnip.render.ShadeSpearatingSuperByteBuffer;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.render.SuperRenderTypeBuffer;
import net.createmod.catnip.utility.worldWrappers.SchematicWorld;
@ -136,7 +136,7 @@ public class SchematicRenderer {
renderWorld.renderMode = false;
SuperByteBuffer sbb = new FlwSuperByteBuffer(bufferedData);
SuperByteBuffer sbb = new ShadeSpearatingSuperByteBuffer(bufferedData);
bufferedData.release();
return sbb;
}

View file

@ -12,17 +12,16 @@ import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.core.Materials;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.materials.model.ModelData;
import com.jozufozu.flywheel.util.transform.Transform;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Quaternion;
import com.simibubi.create.content.trains.entity.CarriageBogey;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBlockBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.flw.Transform;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
@ -197,7 +196,7 @@ public abstract class BogeyRenderer {
.mapToObj(i -> materialManager.defaultSolid()
.material(Materials.TRANSFORMED)
.getModel(model).createInstance())
.map((ModelData transform) -> new BogeyModelData((Transform<?>) transform))//TODO
.map(BogeyModelData::new)
.toArray(BogeyModelData[]::new);
contraptionModelData.put(keyFromModel(model), modelData);
}
@ -214,7 +213,7 @@ public abstract class BogeyRenderer {
.mapToObj(i -> materialManager.defaultSolid()
.material(Materials.TRANSFORMED)
.getModel(state).createInstance())
.map((ModelData transform) -> new BogeyModelData((Transform<?>) transform))//TODO
.map(BogeyModelData::new)
.toArray(BogeyModelData[]::new);
contraptionModelData.put(keyFromModel(state), modelData);
}
@ -327,10 +326,10 @@ public abstract class BogeyRenderer {
public record BogeyModelData(Transform<?> transform) implements Transform<BogeyModelData> {
public static BogeyModelData from(PartialModel model) {
BlockState air = Blocks.AIR.defaultBlockState();
return new BogeyModelData(CachedPartialBuffers.partial(model, air));
return new BogeyModelData(CachedBuffers.partial(model, air));
}
public static BogeyModelData from(BlockState model) {
return new BogeyModelData(CachedBlockBuffers.block(model));
return new BogeyModelData(CachedBuffers.block(model));
}
public void render(PoseStack ms, int light, @Nullable VertexConsumer vb) {
transform.scale(1 - 1/512f);

View file

@ -10,8 +10,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix4f;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.ponder.utility.WorldTickHolder;
@ -228,7 +228,7 @@ public class FlapDisplayRenderer extends KineticBlockEntityRenderer<FlapDisplayB
@Override
protected SuperByteBuffer getRotatedModel(FlapDisplayBlockEntity be, BlockState state) {
return CachedPartialBuffers.partialFacingVertical(AllPartialModels.SHAFTLESS_COGWHEEL, state,
return CachedBuffers.partialFacingVertical(AllPartialModels.SHAFTLESS_COGWHEEL, state,
state.getValue(FlapDisplayBlock.HORIZONTAL_FACING));
}

View file

@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.CreateClient;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.Minecraft;
@ -71,7 +71,7 @@ public class CarriageCouplingRenderer {
{
ms.pushPose();
ms.translate(anchor.x - camera.x, anchor.y - camera.y, anchor.z - camera.z);
CachedPartialBuffers.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
CachedBuffers.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
.rotateY(-yRot)
.rotateX(xRot)
.light(lightCoords)
@ -83,7 +83,7 @@ public class CarriageCouplingRenderer {
int couplingSegments = (int) Math.round(couplingDistance * 4);
double stretch = ((anchor2.distanceTo(anchor) - 2 * margin) * 4) / couplingSegments;
for (int j = 0; j < couplingSegments; j++) {
CachedPartialBuffers.partial(AllPartialModels.TRAIN_COUPLING_CABLE, air)
CachedBuffers.partial(AllPartialModels.TRAIN_COUPLING_CABLE, air)
.rotateY(-yRot + 180)
.rotateX(-xRot)
.translate(0, 0, margin + 2 / 16f)
@ -101,7 +101,7 @@ public class CarriageCouplingRenderer {
.add(anchor2)
.subtract(camera);
ms.translate(translation.x, translation.y, translation.z);
CachedPartialBuffers.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
CachedBuffers.partial(AllPartialModels.TRAIN_COUPLING_HEAD, air)
.rotateY(-yRot + 180)
.rotateX(-xRot)
.light(lightCoords2)

View file

@ -7,8 +7,8 @@ import com.simibubi.create.content.contraptions.Contraption;
import com.simibubi.create.content.trains.entity.CarriageContraption;
import com.simibubi.create.content.trains.entity.CarriageContraptionEntity;
import com.simibubi.create.foundation.mixin.accessor.AgeableListModelAccessor;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Couple;
import net.minecraft.client.model.AgeableListModel;
import net.minecraft.client.model.AxolotlModel;
@ -113,7 +113,7 @@ public class TrainHatArmorLayer<T extends LivingEntity, M extends EntityModel<T>
ms.translate(0, -2.25f / 16f, 0);
msr.rotateX(-8.5f);
BlockState air = Blocks.AIR.defaultBlockState();
CachedPartialBuffers.partial(AllPartialModels.TRAIN_HAT, air)
CachedBuffers.partial(AllPartialModels.TRAIN_HAT, air)
.forEntityRender()
.light(light)
.renderInto(ms, buffer.getBuffer(renderType));

View file

@ -9,8 +9,8 @@ import com.simibubi.create.content.trains.track.ITrackBlock;
import com.simibubi.create.content.trains.track.TrackTargetingBehaviour;
import com.simibubi.create.content.trains.track.TrackTargetingBehaviour.RenderedTrackOverlayType;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.ponder.utility.WorldTickHolder;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
@ -33,10 +33,10 @@ public class SignalRenderer extends SafeBlockEntityRenderer<SignalBlockEntity> {
float renderTime = WorldTickHolder.getRenderTime(be.getLevel());
if (signalState.isRedLight(renderTime))
CachedPartialBuffers.partial(AllPartialModels.SIGNAL_ON, blockState)
CachedBuffers.partial(AllPartialModels.SIGNAL_ON, blockState)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
else
CachedPartialBuffers.partial(AllPartialModels.SIGNAL_OFF, blockState)
CachedBuffers.partial(AllPartialModels.SIGNAL_OFF, blockState)
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));

View file

@ -13,7 +13,6 @@ import com.simibubi.create.content.trains.entity.Train;
import com.simibubi.create.content.trains.entity.TrainIconType;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.element.PartialModelGuiElement;
import com.simibubi.create.foundation.gui.widget.IconButton;
import net.createmod.catnip.gui.AbstractSimiScreen;
@ -111,7 +110,7 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen {
if (blockEntity.resolveFlagAngle()) {
msr.translate(1 / 16f, -19 / 16f, -12 / 16f);
StationRenderer.transformFlag(msr, blockEntity, partialTicks, 180, false);
PartialModelGuiElement.of(getFlag(partialTicks))
GuiGameElement.of(getFlag(partialTicks))
.render(ms);
}

View file

@ -11,8 +11,8 @@ import com.simibubi.create.content.trains.track.ITrackBlock;
import com.simibubi.create.content.trains.track.TrackTargetingBehaviour;
import com.simibubi.create.content.trains.track.TrackTargetingBehaviour.RenderedTrackOverlayType;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
@ -99,7 +99,7 @@ public class StationRenderer extends SafeBlockEntityRenderer<StationBlockEntity>
if (valid != -1) {
int lightColor = LevelRenderer.getLightColor(level, currentPos);
SuperByteBuffer sbb = CachedPartialBuffers.partial(assemblyOverlay, trackState);
SuperByteBuffer sbb = CachedBuffers.partial(assemblyOverlay, trackState);
sbb.color(valid);
sbb.light(lightColor);
sbb.renderInto(ms, vb);
@ -115,7 +115,7 @@ public class StationRenderer extends SafeBlockEntityRenderer<StationBlockEntity>
MultiBufferSource buffer, int light, int overlay) {
if (!be.resolveFlagAngle())
return;
SuperByteBuffer flagBB = CachedPartialBuffers.partial(flag, be.getBlockState());
SuperByteBuffer flagBB = CachedBuffers.partial(flag, be.getBlockState());
//transformFlag(flagBB, be, partialTicks, be.flagYRot, be.flagFlipped);//TODO flw
flagBB.translate(0.5f / 16, 0, 0)
.rotateY(be.flagFlipped ? 0 : 180)

View file

@ -11,8 +11,8 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.trains.track.BezierConnection.GirderAngles;
import com.simibubi.create.content.trains.track.BezierConnection.SegmentAngles;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.math.AngleHelper;
@ -60,7 +60,7 @@ public class TrackRenderer extends SafeBlockEntityRenderer<TrackBlockEntity> {
TrackMaterial.TrackModelHolder modelHolder = bc.getMaterial().getModelHolder();
CachedPartialBuffers.partial(modelHolder.tie(), air)
CachedBuffers.partial(modelHolder.tie(), air)
.mulPose(segment.tieTransform.pose())
.mulNormal(segment.tieTransform.normal())
.light(light)
@ -68,7 +68,7 @@ public class TrackRenderer extends SafeBlockEntityRenderer<TrackBlockEntity> {
for (boolean first : Iterate.trueAndFalse) {
Pose transform = segment.railTransforms.get(first);
CachedPartialBuffers.partial(first ? modelHolder.segment_left() : modelHolder.segment_right(), air)
CachedBuffers.partial(first ? modelHolder.segment_left() : modelHolder.segment_right(), air)
.mulPose(transform.pose())
.mulNormal(transform.normal())
.light(light)
@ -93,7 +93,7 @@ public class TrackRenderer extends SafeBlockEntityRenderer<TrackBlockEntity> {
for (boolean first : Iterate.trueAndFalse) {
Pose beamTransform = segment.beams.get(first);
CachedPartialBuffers.partial(GIRDER_SEGMENT_MIDDLE, air)
CachedBuffers.partial(GIRDER_SEGMENT_MIDDLE, air)
.mulPose(beamTransform.pose())
.mulNormal(beamTransform.normal())
.light(light)
@ -102,7 +102,7 @@ public class TrackRenderer extends SafeBlockEntityRenderer<TrackBlockEntity> {
for (boolean top : Iterate.trueAndFalse) {
Pose beamCapTransform = segment.beamCaps.get(top)
.get(first);
CachedPartialBuffers.partial(top ? GIRDER_SEGMENT_TOP : GIRDER_SEGMENT_BOTTOM, air)
CachedBuffers.partial(top ? GIRDER_SEGMENT_TOP : GIRDER_SEGMENT_BOTTOM, air)
.mulPose(beamCapTransform.pose())
.mulNormal(beamCapTransform.normal())
.light(light)

View file

@ -22,8 +22,8 @@ import com.simibubi.create.content.trains.signal.TrackEdgePoint;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.render.CachedPartialBuffers;
import net.createmod.catnip.render.CachedBuffers;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.VecHelper;
import net.createmod.catnip.utility.worldWrappers.SchematicWorld;
@ -323,7 +323,7 @@ public class TrackTargetingBehaviour<T extends TrackEdgePoint> extends BlockEnti
ITrackBlock track = (ITrackBlock) block;
PartialModel partial = track.prepareTrackOverlay(level, pos, trackState, bezier, direction, ms, type);
if (partial != null)
CachedPartialBuffers.partial(partial, trackState)
CachedBuffers.partial(partial, trackState)
.translate(.5, 0, .5)
.scale(scale)
.translate(-.5, 0, -.5)

View file

@ -1,14 +1,12 @@
package com.simibubi.create.foundation.block.connected;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.minecraft.resources.ResourceLocation;
public class CTSpriteShiftEntry extends SpriteShiftEntry {
protected final CTType type;
public CTSpriteShiftEntry(CTType type, ResourceLocation originalTextureLocation, ResourceLocation targetTextureLocation) {
super(originalTextureLocation, targetTextureLocation);
public CTSpriteShiftEntry(CTType type) {
this.type = type;
}

View file

@ -3,10 +3,10 @@ package com.simibubi.create.foundation.block.connected;
import java.util.HashMap;
import java.util.Map;
import net.createmod.catnip.render.SpriteShifter;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.resources.ResourceLocation;
public class CTSpriteShifter extends SpriteShifter {
public class CTSpriteShifter {
private static final Map<String, CTSpriteShiftEntry> ENTRY_CACHE = new HashMap<>();
@ -15,7 +15,8 @@ public class CTSpriteShifter extends SpriteShifter {
if (ENTRY_CACHE.containsKey(key))
return ENTRY_CACHE.get(key);
CTSpriteShiftEntry entry = new CTSpriteShiftEntry(type, blockTexture, connectedTexture);
CTSpriteShiftEntry entry = new CTSpriteShiftEntry(type);
CatnipServices.PLATFORM.executeOnClientOnly(() -> () -> entry.set(blockTexture, connectedTexture));
ENTRY_CACHE.put(key, entry);
return entry;
}

View file

@ -58,7 +58,7 @@ import com.simibubi.create.foundation.utility.ServerSpeedProvider;
import com.simibubi.create.infrastructure.config.AllConfigs;
import net.createmod.catnip.config.ui.BaseConfigScreen;
import net.createmod.catnip.render.DefaultSuperRenderTypeBufferImpl;
import net.createmod.catnip.render.DefaultSuperRenderTypeBuffer;
import net.createmod.catnip.render.SuperRenderTypeBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.worldWrappers.WrappedClientWorld;
@ -198,7 +198,7 @@ public class ClientEvents {
public static void onRenderWorld(RenderLevelLastEvent event) {
PoseStack ms = event.getPoseStack();
ms.pushPose();
SuperRenderTypeBuffer buffer = DefaultSuperRenderTypeBufferImpl.getInstance();
SuperRenderTypeBuffer buffer = DefaultSuperRenderTypeBuffer.getInstance();
float partialTicks = AnimationTickHolder.getPartialTicks();
Vec3 camera = Minecraft.getInstance().gameRenderer.getMainCamera()
.getPosition();

View file

@ -1,22 +0,0 @@
package com.simibubi.create.foundation.gui.element;
import com.jozufozu.flywheel.core.PartialModel;
import net.createmod.catnip.gui.element.GuiGameElement;
public class PartialModelGuiElement extends GuiGameElement {
public static GuiRenderBuilder of(PartialModel partial) {
return new GuiBlockPartialRenderBuilder(partial);
}
public static class GuiBlockPartialRenderBuilder extends GuiBlockModelRenderBuilder {
public GuiBlockPartialRenderBuilder(PartialModel partial) {
super(partial.get(), null);
}
}
}

View file

@ -1,93 +0,0 @@
package com.simibubi.create.foundation.ponder;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.Create;
import net.createmod.ponder.foundation.PonderTag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Blocks;
public class CreatePonderTag extends PonderTag {
public static final PonderTag KINETIC_RELAYS = create("kinetic_relays")
.item(AllBlocks.COGWHEEL.get(), true, false)
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
.addToIndex();
public static final PonderTag KINETIC_SOURCES = create("kinetic_sources")
.item(AllBlocks.WATER_WHEEL.get(), true, false)
.defaultLang("Kinetic Sources", "Components which generate Rotational Force")
.addToIndex();
public static final PonderTag KINETIC_APPLIANCES = create("kinetic_appliances")
.item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
.defaultLang("Kinetic Appliances", "Components which make use of Rotational Force")
.addToIndex();
public static final PonderTag FLUIDS = create("fluids")
.item(AllBlocks.FLUID_PIPE.get(), true, false)
.defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids")
.addToIndex();
public static final PonderTag LOGISTICS = create("logistics")
.item(Blocks.CHEST, true, false)
.defaultLang("Item Transportation", "Components which help moving items around")
.addToIndex();
public static final PonderTag REDSTONE = create("redstone")
.item(Items.REDSTONE, true, false)
.defaultLang("Logic Components", "Components which help with redstone engineering")
.addToIndex();
public static final PonderTag DECORATION = create("decoration")
.item(Items.ROSE_BUSH, true, false)
.defaultLang("Aesthetics", "Components used mostly for decorative purposes");
public static final PonderTag CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false)
.defaultLang("Creative Mode", "Components not usually available for Survival Mode")
.addToIndex();
public static final PonderTag MOVEMENT_ANCHOR = create("movement_anchor")
.item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
.defaultLang("Movement Anchors",
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
.addToIndex();
public static final PonderTag CONTRAPTION_ACTOR = create("contraption_actor")
.item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
.defaultLang("Contraption Actors",
"Components which expose special behaviour when attached to a moving contraption")
.addToIndex();
public static final PonderTag CONTRAPTION_ASSEMBLY = create("contraption_assembly")
.item(AllItems.SUPER_GLUE.get(), true, false)
.defaultLang("Block Attachment Utility",
"Tools and Components used to assemble structures moved as an animated Contraption")
.addToIndex();
public static final PonderTag SAILS = create("windmill_sails")
.item(AllBlocks.WINDMILL_BEARING.get())
.defaultLang("Sails for Windmill Bearings",
"Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so.");
public static final PonderTag ARM_TARGETS = create("arm_targets")
.item(AllBlocks.MECHANICAL_ARM.get())
.defaultLang("Targets for Mechanical Arms",
"Components which can be selected as inputs or outputs to the Mechanical Arm");
public static final PonderTag TRAIN_RELATED = create("train_related")
.item(AllBlocks.TRACK.get())
.defaultLang("Railway Equipment", "Components used in the construction or management of Train Contraptions")
.addToIndex();
public static final PonderTag DISPLAY_SOURCES = create("display_sources")
.item(AllBlocks.DISPLAY_LINK.get(), true, false)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang("Sources for Display Links",
"Components or Blocks which offer some data that can be read with a Display Link");
public static final PonderTag DISPLAY_TARGETS = create("display_targets")
.item(AllBlocks.DISPLAY_LINK.get(), true, false)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang("Targets for Display Links",
"Components or Blocks which can process and display the data received from a Display Link");
public CreatePonderTag(ResourceLocation id) {
super(id);
}
private static PonderTag create(String id) {
return create(Create.ID, id);
}
// Make sure class is loaded; Lang registration happens with builder calls
public static void register() {}
}

View file

@ -16,6 +16,7 @@ import com.simibubi.create.Create;
import com.simibubi.create.infrastructure.config.AllConfigs;
import net.createmod.catnip.platform.CatnipServices;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LevelRenderer;
@ -107,7 +108,7 @@ public class BlockEntityRenderHelper {
if (renderWorld != null) {
int renderWorldLight = LevelRenderer.getLightColor(renderWorld, renderWorldPos);
return FlwSuperByteBuffer.maxLight(worldLight, renderWorldLight);
return SuperByteBuffer.maxLight(worldLight, renderWorldLight);
}
return worldLight;

View file

@ -1,80 +0,0 @@
package com.simibubi.create.foundation.render;
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.FACING;
import java.util.function.Supplier;
import org.apache.commons.lang3.tuple.Pair;
import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import net.createmod.catnip.render.SuperBufferFactory;
import net.createmod.catnip.render.SuperByteBuffer;
import net.createmod.catnip.render.SuperByteBufferCache;
import net.createmod.catnip.render.SuperByteBufferCache.Compartment;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState;
public class CachedPartialBuffers {
public static final Compartment<PartialModel> PARTIAL = new Compartment<>();
public static final Compartment<Pair<Direction, PartialModel>> DIRECTIONAL_PARTIAL = new Compartment<>();
public static SuperByteBuffer partial(PartialModel partial, BlockState referenceState) {
return SuperByteBufferCache.getInstance().get(PARTIAL, partial,
() -> SuperBufferFactory.getInstance().createForBlock(partial.get(), referenceState));
}
public static SuperByteBuffer partial(PartialModel partial, BlockState referenceState,
Supplier<PoseStack> modelTransform) {
return SuperByteBufferCache.getInstance().get(PARTIAL, partial,
() -> SuperBufferFactory.getInstance().createForBlock(partial.get(), referenceState, modelTransform.get()));
}
public static SuperByteBuffer partialFacing(PartialModel partial, BlockState referenceState) {
Direction facing = referenceState.getValue(FACING);
return partialFacing(partial, referenceState, facing);
}
public static SuperByteBuffer partialFacing(PartialModel partial, BlockState referenceState, Direction facing) {
return partialDirectional(partial, referenceState, facing,
rotateToFace(facing));
}
public static SuperByteBuffer partialFacingVertical(PartialModel partial, BlockState referenceState, Direction facing) {
return partialDirectional(partial, referenceState, facing,
rotateToFaceVertical(facing));
}
public static SuperByteBuffer partialDirectional(PartialModel partial, BlockState referenceState, Direction dir,
Supplier<PoseStack> modelTransform) {
return SuperByteBufferCache.getInstance().get(DIRECTIONAL_PARTIAL, Pair.of(dir, partial),
() -> SuperBufferFactory.getInstance().createForBlock(partial.get(), referenceState, modelTransform.get()));
}
public static Supplier<PoseStack> rotateToFace(Direction facing) {
return () -> {
PoseStack stack = new PoseStack();
TransformStack.cast(stack)
.centre()
.rotateY(AngleHelper.horizontalAngle(facing))
.rotateX(AngleHelper.verticalAngle(facing))
.unCentre();
return stack;
};
}
public static Supplier<PoseStack> rotateToFaceVertical(Direction facing) {
return () -> {
PoseStack stack = new PoseStack();
TransformStack.cast(stack)
.centre()
.rotateY(AngleHelper.horizontalAngle(facing))
.rotateX(AngleHelper.verticalAngle(facing) + 90)
.unCentre();
return stack;
};
}
}

View file

@ -1,33 +0,0 @@
package com.simibubi.create.foundation.render;
import javax.annotation.ParametersAreNonnullByDefault;
import com.jozufozu.flywheel.core.model.ModelUtil;
import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferedData;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.PoseStack;
import net.createmod.catnip.render.DefaultSuperBufferFactory;
import net.createmod.catnip.render.SuperBufferFactory;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.world.level.block.state.BlockState;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class FlwSuperBufferFactory implements SuperBufferFactory {
@Override
public SuperByteBuffer create(BufferBuilder builder) {
return new DefaultSuperBufferFactory().create(builder);//TODO
}
@Override
public SuperByteBuffer createForBlock(BakedModel model, BlockState referenceState, PoseStack ms) {
ShadeSeparatedBufferedData data = ModelUtil.getBufferedData(model, referenceState, ms);
FlwSuperByteBuffer sbb = new FlwSuperByteBuffer(data);
data.release();
return sbb;
}
}

View file

@ -1,476 +0,0 @@
package com.simibubi.create.foundation.render;
import java.nio.ByteBuffer;
import java.util.Optional;
import java.util.function.IntPredicate;
import javax.annotation.ParametersAreNonnullByDefault;
import com.jozufozu.flywheel.api.vertex.ShadedVertexList;
import com.jozufozu.flywheel.api.vertex.VertexList;
import com.jozufozu.flywheel.backend.ShadersModHandler;
import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferedData;
import com.jozufozu.flywheel.core.vertex.BlockVertexList;
import com.jozufozu.flywheel.util.DiffuseLightCalculator;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Matrix3f;
import com.mojang.math.Matrix4f;
import com.mojang.math.Quaternion;
import com.mojang.math.Vector3f;
import com.mojang.math.Vector4f;
import it.unimi.dsi.fastutil.longs.Long2IntMap;
import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.catnip.render.SuperByteBuffer;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.util.Mth;
import net.minecraft.world.level.Level;
@SuppressWarnings("unchecked")
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class FlwSuperByteBuffer implements SuperByteBuffer {
private final VertexList template;
private final IntPredicate shadedPredicate;
// Vertex Position
private final PoseStack transforms = new PoseStack();
// Vertex Coloring
private boolean shouldColor;
private int r, g, b, a;
private boolean disableDiffuseMult;
private DiffuseLightCalculator diffuseCalculator;
// Vertex Texture Coords
private SpriteShiftFunc spriteShiftFunc;
// Vertex Overlay Color
private boolean hasOverlay;
private int overlay = OverlayTexture.NO_OVERLAY;
// Vertex Lighting
private boolean useWorldLight;
private Matrix4f lightTransform;
private boolean hasCustomLight;
private int packedLightCoords;
private boolean hybridLight;
// Vertex Normals
private boolean fullNormalTransform;
// Temporary
private static final Long2IntMap WORLD_LIGHT_CACHE = new Long2IntOpenHashMap();
public FlwSuperByteBuffer(ByteBuffer vertexBuffer, BufferBuilder.DrawState drawState, int unshadedStartVertex) {
int vertexCount = drawState.vertexCount();
int stride = drawState.format().getVertexSize();
ShadedVertexList template = new BlockVertexList.Shaded(vertexBuffer, vertexCount, stride, unshadedStartVertex);
shadedPredicate = template::isShaded;
this.template = template;
transforms.pushPose();
}
public FlwSuperByteBuffer(ShadeSeparatedBufferedData data) {
this(data.vertexBuffer(), data.drawState(), data.unshadedStartVertex());
}
public FlwSuperByteBuffer(ByteBuffer vertexBuffer, BufferBuilder.DrawState drawState) {
int vertexCount = drawState.vertexCount();
int stride = drawState.format().getVertexSize();
template = new BlockVertexList(vertexBuffer, vertexCount, stride);
shadedPredicate = index -> true;
transforms.pushPose();
}
public void renderInto(PoseStack input, VertexConsumer builder) {
if (isEmpty())
return;
Matrix4f modelMat = input.last()
.pose()
.copy();
Matrix4f localTransforms = transforms.last()
.pose();
modelMat.multiply(localTransforms);
Matrix3f normalMat;
if (fullNormalTransform) {
normalMat = input.last()
.normal()
.copy();
Matrix3f localNormalTransforms = transforms.last()
.normal();
normalMat.mul(localNormalTransforms);
} else {
normalMat = transforms.last()
.normal()
.copy();
}
if (useWorldLight) {
WORLD_LIGHT_CACHE.clear();
}
final Vector4f pos = new Vector4f();
final Vector3f normal = new Vector3f();
final Vector4f lightPos = new Vector4f();
DiffuseLightCalculator diffuseCalculator = ForcedDiffuseState.getForcedCalculator();
final boolean disableDiffuseMult =
this.disableDiffuseMult || (ShadersModHandler.isShaderPackInUse() && diffuseCalculator == null);
if (diffuseCalculator == null) {
diffuseCalculator = this.diffuseCalculator;
if (diffuseCalculator == null) {
diffuseCalculator = DiffuseLightCalculator.forCurrentLevel();
}
}
final int vertexCount = template.getVertexCount();
for (int i = 0; i < vertexCount; i++) {
float x = template.getX(i);
float y = template.getY(i);
float z = template.getZ(i);
pos.set(x, y, z, 1F);
pos.transform(modelMat);
builder.vertex(pos.x(), pos.y(), pos.z());
float normalX = template.getNX(i);
float normalY = template.getNY(i);
float normalZ = template.getNZ(i);
normal.set(normalX, normalY, normalZ);
normal.transform(normalMat);
float nx = normal.x();
float ny = normal.y();
float nz = normal.z();
byte r, g, b, a;
if (shouldColor) {
r = (byte) this.r;
g = (byte) this.g;
b = (byte) this.b;
a = (byte) this.a;
} else {
r = template.getR(i);
g = template.getG(i);
b = template.getB(i);
a = template.getA(i);
}
if (disableDiffuseMult) {
builder.color(r, g, b, a);
} else {
float instanceDiffuse = diffuseCalculator.getDiffuse(nx, ny, nz, shadedPredicate.test(i));
int colorR = transformColor(r, instanceDiffuse);
int colorG = transformColor(g, instanceDiffuse);
int colorB = transformColor(b, instanceDiffuse);
builder.color(colorR, colorG, colorB, a);
}
float u = template.getU(i);
float v = template.getV(i);
if (spriteShiftFunc != null) {
spriteShiftFunc.shift(builder, u, v);
} else {
builder.uv(u, v);
}
if (hasOverlay) {
builder.overlayCoords(overlay);
}
int light;
if (useWorldLight) {
lightPos.set(((x - .5f) * 15 / 16f) + .5f, (y - .5f) * 15 / 16f + .5f, (z - .5f) * 15 / 16f + .5f, 1f);
lightPos.transform(localTransforms);
if (lightTransform != null) {
lightPos.transform(lightTransform);
}
light = getLight(Minecraft.getInstance().level, lightPos);
if (hasCustomLight) {
light = maxLight(light, packedLightCoords);
}
} else if (hasCustomLight) {
light = packedLightCoords;
} else {
light = template.getLight(i);
}
if (hybridLight) {
builder.uv2(maxLight(light, template.getLight(i)));
} else {
builder.uv2(light);
}
builder.normal(nx, ny, nz);
builder.endVertex();
}
reset();
}
@Override
public FlwSuperByteBuffer reset() {
while (!transforms.clear())
transforms.popPose();
transforms.pushPose();
shouldColor = false;
r = 0;
g = 0;
b = 0;
a = 0;
disableDiffuseMult = false;
diffuseCalculator = null;
spriteShiftFunc = null;
hasOverlay = false;
overlay = OverlayTexture.NO_OVERLAY;
useWorldLight = false;
lightTransform = null;
hasCustomLight = false;
packedLightCoords = 0;
hybridLight = false;
fullNormalTransform = false;
return this;
}
public boolean isEmpty() {
return template.isEmpty();
}
@Override
public void delete() {
template.delete();
}
public PoseStack getTransforms() {
return transforms;
}
@Override
public FlwSuperByteBuffer translate(double x, double y, double z) {
transforms.translate(x, y, z);
return this;
}
@Override
public FlwSuperByteBuffer multiply(Quaternion quaternion) {
transforms.mulPose(quaternion);
return this;
}
@Override
public FlwSuperByteBuffer scale(float factorX, float factorY, float factorZ) {
transforms.scale(factorX, factorY, factorZ);
return this;
}
@Override
public FlwSuperByteBuffer pushPose() {
transforms.pushPose();
return this;
}
@Override
public FlwSuperByteBuffer popPose() {
transforms.popPose();
return this;
}
@Override
public FlwSuperByteBuffer mulPose(Matrix4f pose) {
transforms.last()
.pose()
.multiply(pose);
return this;
}
@Override
public FlwSuperByteBuffer mulNormal(Matrix3f normal) {
transforms.last()
.normal()
.mul(normal);
return this;
}
public FlwSuperByteBuffer transform(PoseStack stack) {
transforms.last()
.pose()
.multiply(stack.last()
.pose());
transforms.last()
.normal()
.mul(stack.last()
.normal());
return this;
}
public FlwSuperByteBuffer rotateCentered(Direction axis, float radians) {
translate(.5f, .5f, .5f).rotate(axis, radians)
.translate(-.5f, -.5f, -.5f);
return this;
}
public FlwSuperByteBuffer rotateCentered(Quaternion q) {
translate(.5f, .5f, .5f).multiply(q)
.translate(-.5f, -.5f, -.5f);
return this;
}
public FlwSuperByteBuffer color(int r, int g, int b, int a) {
shouldColor = true;
this.r = r;
this.g = g;
this.b = b;
this.a = a;
return this;
}
public FlwSuperByteBuffer color(int color) {
shouldColor = true;
r = ((color >> 16) & 0xFF);
g = ((color >> 8) & 0xFF);
b = (color & 0xFF);
a = 255;
return this;
}
/**
* Prevents vertex colors from being multiplied by the diffuse value calculated
* from the final transformed normal vector. Useful for entity rendering, when
* diffuse is applied automatically later.
*/
public FlwSuperByteBuffer disableDiffuse() {
disableDiffuseMult = true;
return this;
}
public FlwSuperByteBuffer diffuseCalculator(DiffuseLightCalculator diffuseCalculator) {
this.diffuseCalculator = diffuseCalculator;
return this;
}
public FlwSuperByteBuffer shiftUV(SpriteShiftEntry entry) {
this.spriteShiftFunc = (builder, u, v) -> builder.uv(entry.getTargetU(u), entry.getTargetV(v));
return this;
}
public FlwSuperByteBuffer shiftUVScrolling(SpriteShiftEntry entry, float scrollU, float scrollV) {
this.spriteShiftFunc = (builder, u, v) -> {
float targetU = u - entry.getOriginal()
.getU0() + entry.getTarget()
.getU0()
+ scrollU;
float targetV = v - entry.getOriginal()
.getV0() + entry.getTarget()
.getV0()
+ scrollV;
builder.uv(targetU, targetV);
};
return this;
}
public FlwSuperByteBuffer shiftUVtoSheet(SpriteShiftEntry entry, float uTarget, float vTarget, int sheetSize) {
this.spriteShiftFunc = (builder, u, v) -> {
float targetU = entry.getTarget()
.getU((SpriteShiftEntry.getUnInterpolatedU(entry.getOriginal(), u) / sheetSize) + uTarget * 16);
float targetV = entry.getTarget()
.getV((SpriteShiftEntry.getUnInterpolatedV(entry.getOriginal(), v) / sheetSize) + vTarget * 16);
builder.uv(targetU, targetV);
};
return this;
}
public FlwSuperByteBuffer overlay() {
hasOverlay = true;
return this;
}
public FlwSuperByteBuffer overlay(int overlay) {
hasOverlay = true;
this.overlay = overlay;
return this;
}
public FlwSuperByteBuffer light() {
useWorldLight = true;
return this;
}
public FlwSuperByteBuffer light(Matrix4f lightTransform) {
useWorldLight = true;
this.lightTransform = lightTransform;
return this;
}
public FlwSuperByteBuffer light(int packedLightCoords) {
hasCustomLight = true;
this.packedLightCoords = packedLightCoords;
return this;
}
/**
* Uses max light from calculated light (world light or custom light) and vertex
* light for the final light value. Ineffective if any other light method was
* not called.
*/
public FlwSuperByteBuffer hybridLight() {
hybridLight = true;
return this;
}
/**
* Transforms normals not only by the local matrix stack, but also by the passed
* matrix stack.
*/
public FlwSuperByteBuffer fullNormalTransform() {
fullNormalTransform = true;
return this;
}
@Deprecated
public static Optional<FlwSuperByteBuffer> cast(SuperByteBuffer buffer) {
if (!(buffer instanceof FlwSuperByteBuffer flwBuffer))
return Optional.empty();
return Optional.of(flwBuffer);
}
public static int transformColor(byte component, float scale) {
return Mth.clamp((int) (Byte.toUnsignedInt(component) * scale), 0, 255);
}
public static int transformColor(int component, float scale) {
return Mth.clamp((int) (component * scale), 0, 255);
}
public static int maxLight(int packedLight1, int packedLight2) {
int blockLight1 = LightTexture.block(packedLight1);
int skyLight1 = LightTexture.sky(packedLight1);
int blockLight2 = LightTexture.block(packedLight2);
int skyLight2 = LightTexture.sky(packedLight2);
return LightTexture.pack(Math.max(blockLight1, blockLight2), Math.max(skyLight1, skyLight2));
}
private static int getLight(Level world, Vector4f lightPos) {
BlockPos pos = new BlockPos(lightPos.x(), lightPos.y(), lightPos.z());
return WORLD_LIGHT_CACHE.computeIfAbsent(pos.asLong(), $ -> LevelRenderer.getLightColor(world, pos));
}
}

View file

@ -1,31 +0,0 @@
package com.simibubi.create.foundation.render;
import javax.annotation.Nullable;
import com.jozufozu.flywheel.util.DiffuseLightCalculator;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
public final class ForcedDiffuseState {
private static final ThreadLocal<ObjectArrayList<DiffuseLightCalculator>> FORCED_DIFFUSE = ThreadLocal.withInitial(ObjectArrayList::new);
private ForcedDiffuseState() {
}
public static void pushCalculator(DiffuseLightCalculator calculator) {
FORCED_DIFFUSE.get().push(calculator);
}
public static void popCalculator() {
FORCED_DIFFUSE.get().pop();
}
@Nullable
public static DiffuseLightCalculator getForcedCalculator() {
ObjectArrayList<DiffuseLightCalculator> stack = FORCED_DIFFUSE.get();
if (stack.isEmpty()) {
return null;
}
return stack.top();
}
}

View file

@ -3,6 +3,7 @@ package com.simibubi.create.infrastructure.command;
import com.mojang.brigadier.builder.ArgumentBuilder;
import com.simibubi.create.CreateClient;
import net.createmod.catnip.CatnipClient;
import net.createmod.catnip.utility.lang.Components;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
@ -25,6 +26,7 @@ public class ClearBufferCacheCommand {
@OnlyIn(Dist.CLIENT)
private static void execute() {
CatnipClient.invalidateRenderers();
CreateClient.invalidateRenderers();
}
}