mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-13 22:20:00 +01:00
Wait it's all Flywheel? Always has been.
- add flywheel as a dependency to catnip
This commit is contained in:
parent
f6c6942d14
commit
9098002c17
87 changed files with 239 additions and 986 deletions
src/main/java/com/simibubi/create
CreateClient.java
compat/jei/category/animations
content
contraptions
actors
contraptionControls
harvester
psi
roller
trainControls
bearing
chassis
elevator
gantry
minecart
pulley
render
decoration
equipment
armor
bell
blueprint
symmetryWand
toolbox
fluids
hosePulley
pipes/valve
pump
spout
tank
kinetics
base
belt
clock
crafter
crank
deployer
drill
fan
flywheel
gauge
gearbox
mechanicalArm
millstone
mixer
motor
press
saw
simpleRelays
speedController
steamEngine
transmission
waterwheel
logistics
processing/burner
redstone
analogLever
diodes
displayLink
nixieTube
schematics
trains
foundation
block/connected
events
gui/element
ponder
render
infrastructure/command
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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()));
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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()));
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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() {}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue