fix imports, adjust buildscripts

This commit is contained in:
zelophed 2024-09-15 02:14:09 +02:00
parent c321202ba0
commit d82644bfba
48 changed files with 80 additions and 294 deletions

View file

@ -23,10 +23,6 @@ base {
version = mod_version + (dev && buildNumber != null ? "-${buildNumber}" : '') version = mod_version + (dev && buildNumber != null ? "-${buildNumber}" : '')
} }
// jozu: I use a gradle workspace with both projects.
// The project is named Flywheel-Forge, but sub-projects are named by folder.
boolean flywheelInWorkspace = findProject(':Flywheel') != null
boolean inMultiModWorkspace = rootProject.hasProperty('multiModWorkspace.enabled') boolean inMultiModWorkspace = rootProject.hasProperty('multiModWorkspace.enabled')
boolean catnipInWorkspace = rootProject.hasProperty('multiModWorkspace.catnip') boolean catnipInWorkspace = rootProject.hasProperty('multiModWorkspace.catnip')
boolean ponderInWorkspace = rootProject.hasProperty('multiModWorkspace.ponder') boolean ponderInWorkspace = rootProject.hasProperty('multiModWorkspace.ponder')
@ -39,8 +35,8 @@ if (ponderInWorkspace) {
evaluationDependsOn(":ponder:Forge") evaluationDependsOn(":ponder:Forge")
} }
project.logger.lifecycle("MultiModWorkspace ${inMultiModWorkspace || flywheelInWorkspace ? 'enabled' : 'disabled'} for project ${project.name}.") project.logger.lifecycle("MultiModWorkspace ${inMultiModWorkspace ? 'enabled' : 'disabled'} for project ${project.name}.")
project.logger.lifecycle("Dependencies included in Workspace: [Flywheel: ${flywheelInWorkspace}], [Catnip: ${catnipInWorkspace}], [Ponder: ${ponderInWorkspace}]") project.logger.lifecycle("Dependencies included in Workspace: [Catnip: ${catnipInWorkspace}], [Ponder: ${ponderInWorkspace}]")
mixin { mixin {
add sourceSets.main, 'create.refmap.json' add sourceSets.main, 'create.refmap.json'

View file

@ -28,8 +28,8 @@ jei_minecraft_version = 1.20.1
jei_version = 15.10.0.39 jei_version = 15.10.0.39
curios_minecraft_version = 1.20.1 curios_minecraft_version = 1.20.1
curios_version = 5.3.1 curios_version = 5.3.1
catnip_version = 0.7.7 catnip_version = 0.8.11
ponder_version = 0.7.6 ponder_version = 0.8.8
cc_tweaked_enable = true cc_tweaked_enable = true
cc_tweaked_minecraft_version = 1.20.1 cc_tweaked_minecraft_version = 1.20.1

View file

@ -21,8 +21,6 @@ import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsClient;
import com.simibubi.create.foundation.gui.CreateTheme; import com.simibubi.create.foundation.gui.CreateTheme;
import com.simibubi.create.foundation.ponder.CreatePonderPlugin; import com.simibubi.create.foundation.ponder.CreatePonderPlugin;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.SuperByteBufferCache;
import com.simibubi.create.foundation.utility.Components;
import com.simibubi.create.foundation.utility.ModelSwapper; import com.simibubi.create.foundation.utility.ModelSwapper;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;
import com.simibubi.create.infrastructure.gui.CreateMainMenuScreen; import com.simibubi.create.infrastructure.gui.CreateMainMenuScreen;
@ -30,6 +28,8 @@ import com.simibubi.create.infrastructure.gui.CreateMainMenuScreen;
import net.createmod.catnip.config.ui.BaseConfigScreen; import net.createmod.catnip.config.ui.BaseConfigScreen;
import net.createmod.catnip.config.ui.ConfigScreen; import net.createmod.catnip.config.ui.ConfigScreen;
import net.createmod.catnip.render.CachedBuffers; 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; import net.createmod.ponder.foundation.PonderIndex;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.GraphicsStatus; import net.minecraft.client.GraphicsStatus;

View file

@ -1,8 +1,8 @@
package com.simibubi.create.compat.thresholdSwitch; package com.simibubi.create.compat.thresholdSwitch;
import com.simibubi.create.compat.Mods; import com.simibubi.create.compat.Mods;
import com.simibubi.create.foundation.utility.RegisteredObjects;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
@ -11,7 +11,7 @@ public class FunctionalStorage implements ThresholdSwitchCompat {
@Override @Override
public boolean isFromThisMod(BlockEntity blockEntity) { public boolean isFromThisMod(BlockEntity blockEntity) {
return blockEntity != null && Mods.FUNCTIONALSTORAGE.id() return blockEntity != null && Mods.FUNCTIONALSTORAGE.id()
.equals(RegisteredObjects.getKeyOrThrow(blockEntity.getType()) .equals(CatnipServices.REGISTRIES.getKeyOrThrow(blockEntity.getType())
.getNamespace()); .getNamespace());
} }

View file

@ -1,8 +1,8 @@
package com.simibubi.create.compat.thresholdSwitch; package com.simibubi.create.compat.thresholdSwitch;
import com.simibubi.create.compat.Mods; import com.simibubi.create.compat.Mods;
import com.simibubi.create.foundation.utility.RegisteredObjects;
import net.createmod.catnip.platform.CatnipServices;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
@ -13,7 +13,7 @@ public class SophisticatedStorage implements ThresholdSwitchCompat {
if (be == null) if (be == null)
return false; return false;
String namespace = RegisteredObjects.getKeyOrThrow(be.getType()) String namespace = CatnipServices.REGISTRIES.getKeyOrThrow(be.getType())
.getNamespace(); .getNamespace();
return return

View file

@ -353,7 +353,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
return false; return false;
OrientedContraptionEntity parent = (OrientedContraptionEntity) riding; OrientedContraptionEntity parent = (OrientedContraptionEntity) riding;
prevYaw = yaw; prevYaw = yaw;
yaw = wrapAngle180(getInitialYaw() - parent.getInitialYaw()) - parent.getViewYRot(1); yaw = AngleHelper.wrapAngle180(getInitialYaw() - parent.getInitialYaw()) - parent.getViewYRot(1);
return false; return false;
} }

View file

@ -2,6 +2,8 @@ package com.simibubi.create.content.contraptions.actors.harvester;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import org.apache.commons.lang3.mutable.MutableBoolean; import org.apache.commons.lang3.mutable.MutableBoolean;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;

View file

@ -2,11 +2,11 @@ package com.simibubi.create.content.contraptions.actors.psi;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.animation.LerpedFloat;
public class PSIActorVisual extends ActorVisual { public class PSIActorVisual extends ActorVisual {

View file

@ -3,10 +3,10 @@ package com.simibubi.create.content.contraptions.actors.seat;
import com.simibubi.create.content.contraptions.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.AbstractContraptionEntity;
import com.simibubi.create.content.contraptions.AbstractContraptionEntity.ContraptionRotationState; import com.simibubi.create.content.contraptions.AbstractContraptionEntity.ContraptionRotationState;
import com.simibubi.create.content.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.trains.entity.CarriageContraptionEntity;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;

View file

@ -8,7 +8,7 @@ import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.BackHalfShaftVisual; import com.simibubi.create.content.kinetics.base.BackHalfShaftVisual;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -8,7 +8,7 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorVisual; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.chassis;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.pulley;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -1,5 +1,7 @@
package com.simibubi.create.content.contraptions.render; package com.simibubi.create.content.contraptions.render;
import net.createmod.catnip.render.SuperByteBuffer;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
@ -10,7 +12,6 @@ import com.simibubi.create.content.contraptions.Contraption;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.foundation.render.BlockEntityRenderHelper; import com.simibubi.create.foundation.render.BlockEntityRenderHelper;
import com.simibubi.create.foundation.render.SuperByteBuffer;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import dev.engine_room.flywheel.api.visualization.VisualizationManager; import dev.engine_room.flywheel.api.visualization.VisualizationManager;

View file

@ -138,6 +138,6 @@ public class ContraptionRenderInfo {
private static class ThreadLocalObjects { private static class ThreadLocalObjects {
public final PoseStack poseStack = new PoseStack(); public final PoseStack poseStack = new PoseStack();
public final RandomSource random = RandomSource.createNewThreadLocalInstance(); public final RandomSource random = RandomSource.createNewThreadLocalInstance();
public final ShadedBlockSbbBuilder sbbBuilder = new ShadedBlockSbbBuilder(); public final ShadedBlockSbbBuilder sbbBuilder = ShadedBlockSbbBuilder.create();
} }
} }

View file

@ -1,11 +1,11 @@
package com.simibubi.create.content.contraptions.render; package com.simibubi.create.content.contraptions.render;
import com.simibubi.create.content.contraptions.Contraption; import com.simibubi.create.content.contraptions.Contraption;
import com.simibubi.create.foundation.utility.WorldAttached;
import dev.engine_room.flywheel.api.event.ReloadLevelRendererEvent; import dev.engine_room.flywheel.api.event.ReloadLevelRendererEvent;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import net.createmod.catnip.utility.WorldAttached;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;

View file

@ -10,9 +10,10 @@ import java.util.Set;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import dev.engine_room.flywheel.lib.transform.TransformStack;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.platform.InputConstants;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.BufferBuilder;
@ -249,7 +250,7 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
Color c = innerColor.copy().setAlpha(0.5f); Color c = innerColor.copy().setAlpha(0.5f);
UIRenderHelper.drawRadialSector(graphics, innerRadius - 3, innerRadius - 2, -(sectorAngle / 2 + 90), sectorAngle, c, c); UIRenderHelper.drawRadialSector(graphics, innerRadius - 3, innerRadius - 2, -(sectorAngle / 2 + 90), sectorAngle, c, c);
TransformStack.cast(poseStack) TransformStack.of(poseStack)
.translateY(-(sectorWidth / 2f + innerRadius)) .translateY(-(sectorWidth / 2f + innerRadius))
.rotateZ(-i * sectorAngle); .rotateZ(-i * sectorAngle);
@ -276,7 +277,7 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
poseStack.pushPose(); poseStack.pushPose();
TransformStack.cast(poseStack) TransformStack.of(poseStack)
.rotateZ(sectorAngle / 2); .rotateZ(sectorAngle / 2);
poseStack.translate(0, -innerRadius - 20, 10); poseStack.translate(0, -innerRadius - 20, 10);
@ -285,7 +286,7 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
UIRenderHelper.angledGradient(graphics, 90, 0, 0, 0.5f, 25 , Color.WHITE.setAlpha(0.5f), Color.WHITE.setAlpha(0.15f)); UIRenderHelper.angledGradient(graphics, 90, 0, 0, 0.5f, 25 , Color.WHITE.setAlpha(0.5f), Color.WHITE.setAlpha(0.15f));
poseStack.popPose(); poseStack.popPose();
TransformStack.cast(poseStack) TransformStack.of(poseStack)
.rotateZ(sectorAngle); .rotateZ(sectorAngle);
} }
@ -301,10 +302,10 @@ public class RadialWrenchMenu extends AbstractSimiScreen {
float b = 0.8f; float b = 0.8f;
poseStack.pushPose(); poseStack.pushPose();
TransformStack.cast(poseStack) TransformStack.of(poseStack)
.rotateZRadians(-theta) .rotateZ((float) -theta)
.translateY(innerRadius + 3) .translateY(innerRadius + 3)
.translateZ(15); .translateZ(15);
RenderSystem.setShader(GameRenderer::getPositionColorShader); RenderSystem.setShader(GameRenderer::getPositionColorShader);

View file

@ -3,7 +3,6 @@ package com.simibubi.create.content.equipment.toolbox;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;
@ -14,6 +13,7 @@ import dev.engine_room.flywheel.lib.instance.TransformedInstance;
import dev.engine_room.flywheel.lib.model.Models; import dev.engine_room.flywheel.lib.model.Models;
import dev.engine_room.flywheel.lib.visual.AbstractBlockEntityVisual; import dev.engine_room.flywheel.lib.visual.AbstractBlockEntityVisual;
import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual; import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual;
import net.createmod.catnip.utility.Iterate;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
public class ToolBoxVisual extends AbstractBlockEntityVisual<ToolboxBlockEntity> implements SimpleDynamicVisual { public class ToolBoxVisual extends AbstractBlockEntityVisual<ToolboxBlockEntity> implements SimpleDynamicVisual {

View file

@ -5,7 +5,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.base.ShaftVisual; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.kinetics.base;
import org.joml.Vector3f; import org.joml.Vector3f;
import com.simibubi.create.foundation.utility.Color; import net.createmod.catnip.utility.theme.Color;
import dev.engine_room.flywheel.api.instance.InstanceHandle; import dev.engine_room.flywheel.api.instance.InstanceHandle;
import dev.engine_room.flywheel.api.instance.InstanceType; import dev.engine_room.flywheel.api.instance.InstanceType;

View file

@ -1,6 +1,6 @@
package com.simibubi.create.content.kinetics.base; package com.simibubi.create.content.kinetics.base;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.kinetics.base;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;

View file

@ -3,15 +3,16 @@ package com.simibubi.create.content.kinetics.belt;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.function.Consumer; import java.util.function.Consumer;
import net.createmod.catnip.render.SpriteShiftEntry;
import org.joml.Quaternionf; import org.joml.Quaternionf;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.Iterate; import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;

View file

@ -5,7 +5,7 @@ import java.util.function.Consumer;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;

View file

@ -14,7 +14,7 @@ import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsBoard; import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsBoard;
import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsFormatter; import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsFormatter;
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.CreateLang;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;

View file

@ -11,7 +11,7 @@ import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -6,9 +6,9 @@ import java.util.function.Consumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftVisual; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Couple; import net.createmod.catnip.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate; import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;

View file

@ -7,9 +7,6 @@ import com.google.common.collect.Lists;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingVisual; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Color;
import com.simibubi.create.foundation.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;
@ -22,6 +19,9 @@ import dev.engine_room.flywheel.lib.instance.TransformedInstance;
import dev.engine_room.flywheel.lib.model.Models; import dev.engine_room.flywheel.lib.model.Models;
import dev.engine_room.flywheel.lib.transform.TransformStack; import dev.engine_room.flywheel.lib.transform.TransformStack;
import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual; import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual;
import net.createmod.catnip.utility.Iterate;
import net.createmod.catnip.utility.theme.Color;
import net.createmod.ponder.utility.LevelTickHolder;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
@ -101,7 +101,7 @@ public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements S
} }
private void animateRave(float partialTick) { private void animateRave(float partialTick) {
var ticks = AnimationTickHolder.getTicks(blockEntity.getLevel()); var ticks = LevelTickHolder.getTicks(blockEntity.getLevel());
float renderTick = ticks + partialTick + (blockEntity.hashCode() % 64); float renderTick = ticks + partialTick + (blockEntity.hashCode() % 64);
float baseAngle = (renderTick * 10) % 360; float baseAngle = (renderTick * 10) % 360;

View file

@ -7,7 +7,7 @@ import org.joml.Quaternionf;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftVisual; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.kinetics.saw;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingVisual; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -5,7 +5,7 @@ import java.util.List;
import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;

View file

@ -13,7 +13,7 @@ import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.Iterate; import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;

View file

@ -4,7 +4,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;

View file

@ -8,7 +8,7 @@ import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.Iterate; import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;

View file

@ -6,13 +6,13 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.CachedBufferer;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.model.Model; import dev.engine_room.flywheel.api.model.Model;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import dev.engine_room.flywheel.lib.model.ModelCache; import dev.engine_room.flywheel.lib.model.ModelCache;
import dev.engine_room.flywheel.lib.model.baked.BakedModelBuilder; import dev.engine_room.flywheel.lib.model.baked.BakedModelBuilder;
import net.createmod.catnip.render.CachedBuffers;
import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Direction.AxisDirection; import net.minecraft.core.Direction.AxisDirection;
@ -81,7 +81,7 @@ public class WaterWheelVisual<T extends WaterWheelBlockEntity> extends KineticBl
} else { } else {
dir = state.getValue(WaterWheelBlock.FACING); dir = state.getValue(WaterWheelBlock.FACING);
} }
PoseStack transform = CachedBufferer.rotateToFaceVertical(dir).get(); PoseStack transform = CachedBuffers.rotateToFaceVertical(dir).get();
return BakedModelBuilder.create(model) return BakedModelBuilder.create(model)
.poseStack(transform) .poseStack(transform)
.build(); .build();

View file

@ -6,7 +6,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapInstance; import com.simibubi.create.content.logistics.flwdata.FlapInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;

View file

@ -9,7 +9,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapInstance; import com.simibubi.create.content.logistics.flwdata.FlapInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.animation.LerpedFloat; import net.createmod.catnip.utility.animation.LerpedFloat;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.instance.Instancer; import dev.engine_room.flywheel.api.instance.Instancer;

View file

@ -2,14 +2,17 @@ package com.simibubi.create.content.processing.burner;
import java.util.function.Consumer; import java.util.function.Consumer;
import net.createmod.catnip.render.SpriteShiftEntry;
import net.createmod.ponder.utility.LevelTickHolder;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AngleHelper; import net.createmod.catnip.utility.math.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;
@ -129,7 +132,7 @@ public class BlazeBurnerVisual extends AbstractBlockEntityVisual<BlazeBurnerBloc
} }
var hashCode = blockEntity.hashCode(); var hashCode = blockEntity.hashCode();
float time = AnimationTickHolder.getRenderTime(level); float time = LevelTickHolder.getRenderTime(level);
float renderTick = time + (hashCode % 13) * 16f; float renderTick = time + (hashCode % 13) * 16f;
float offsetMult = heatLevel.isAtLeast(BlazeBurnerBlock.HeatLevel.FADING) ? 64 : 16; float offsetMult = heatLevel.isAtLeast(BlazeBurnerBlock.HeatLevel.FADING) ? 64 : 16;
float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult; float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult;

View file

@ -3,8 +3,6 @@ package com.simibubi.create.content.redstone.analogLever;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.Color;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.DynamicVisual; import dev.engine_room.flywheel.api.visual.DynamicVisual;
@ -16,6 +14,8 @@ import dev.engine_room.flywheel.lib.transform.Rotate;
import dev.engine_room.flywheel.lib.transform.Translate; import dev.engine_room.flywheel.lib.transform.Translate;
import dev.engine_room.flywheel.lib.visual.AbstractBlockEntityVisual; import dev.engine_room.flywheel.lib.visual.AbstractBlockEntityVisual;
import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual; import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual;
import net.createmod.catnip.utility.math.AngleHelper;
import net.createmod.catnip.utility.theme.Color;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.block.state.properties.AttachFace;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.redstone.diodes;
import java.util.function.Consumer; import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.Color; import net.createmod.catnip.utility.theme.Color;
import dev.engine_room.flywheel.api.instance.Instance; import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visual.TickableVisual; import dev.engine_room.flywheel.api.visual.TickableVisual;

View file

@ -9,7 +9,7 @@ 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.ForBlockState;
import com.simibubi.create.content.schematics.cannon.LaunchedItem.ForEntity; import com.simibubi.create.content.schematics.cannon.LaunchedItem.ForEntity;
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.visualization.VisualizationManager; import dev.engine_room.flywheel.api.visualization.VisualizationManager;
import net.createmod.catnip.render.CachedBuffers; import net.createmod.catnip.render.CachedBuffers;

View file

@ -14,7 +14,7 @@ import org.joml.Quaternionfc;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.trains.entity.CarriageBogey; import com.simibubi.create.content.trains.entity.CarriageBogey;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import net.createmod.catnip.render.VirtualRenderHelper;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import dev.engine_room.flywheel.lib.instance.InstanceTypes; import dev.engine_room.flywheel.lib.instance.InstanceTypes;

View file

@ -5,7 +5,7 @@ import java.util.Optional;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.trains.entity.CarriageBogey; import com.simibubi.create.content.trains.entity.CarriageBogey;
import com.simibubi.create.content.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.trains.entity.CarriageContraptionEntity;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import dev.engine_room.flywheel.api.visualization.VisualizationContext; import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;

View file

@ -9,7 +9,7 @@ import org.joml.Vector4f;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.createmod.catnip.utility.AnimationTickHolder;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;

View file

@ -1,126 +0,0 @@
package com.simibubi.create.foundation.render;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.BufferBuilder.RenderedBuffer;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.simibubi.create.foundation.mixin.accessor.BufferBuilderAccessor;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import net.minecraft.client.renderer.block.model.BakedQuad;
public class ShadedBlockSbbBuilder implements VertexConsumer {
protected final BufferBuilder bufferBuilder;
protected final IntList shadeSwapVertices = new IntArrayList();
protected boolean currentShade;
public ShadedBlockSbbBuilder(BufferBuilder bufferBuilder) {
this.bufferBuilder = bufferBuilder;
}
public ShadedBlockSbbBuilder() {
this(new BufferBuilder(512));
}
public void begin() {
bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK);
shadeSwapVertices.clear();
currentShade = true;
}
public SuperByteBuffer end() {
RenderedBuffer data = bufferBuilder.end();
int vertexCount = data.drawState().vertexCount();
MutableTemplateMesh mutableMesh = new MutableTemplateMesh(vertexCount);
VirtualRenderHelper.transferBlockVertexData(data.vertexBuffer(), data.drawState().format().getVertexSize(), 0, mutableMesh, 0, vertexCount);
return new SuperByteBuffer(mutableMesh.toImmutable(), shadeSwapVertices.toIntArray());
}
public BufferBuilder unwrap(boolean shade) {
prepareForGeometry(shade);
return bufferBuilder;
}
private void prepareForGeometry(boolean shade) {
if (shade != currentShade) {
shadeSwapVertices.add(((BufferBuilderAccessor) bufferBuilder).create$getVertices());
currentShade = shade;
}
}
private void prepareForGeometry(BakedQuad quad) {
prepareForGeometry(quad.isShade());
}
@Override
public void putBulkData(PoseStack.Pose pose, BakedQuad quad, float red, float green, float blue, int light, int overlay) {
prepareForGeometry(quad);
bufferBuilder.putBulkData(pose, quad, red, green, blue, light, overlay);
}
@Override
public void putBulkData(PoseStack.Pose pose, BakedQuad quad, float red, float green, float blue, float alpha, int light, int overlay, boolean readExistingColor) {
prepareForGeometry(quad);
bufferBuilder.putBulkData(pose, quad, red, green, blue, alpha, light, overlay, readExistingColor);
}
@Override
public void putBulkData(PoseStack.Pose pose, BakedQuad quad, float[] brightnesses, float red, float green, float blue, int[] lights, int overlay, boolean readExistingColor) {
prepareForGeometry(quad);
bufferBuilder.putBulkData(pose, quad, brightnesses, red, green, blue, lights, overlay, readExistingColor);
}
@Override
public void putBulkData(PoseStack.Pose pose, BakedQuad quad, float[] brightnesses, float red, float green, float blue, float alpha, int[] lights, int overlay, boolean readExistingColor) {
prepareForGeometry(quad);
bufferBuilder.putBulkData(pose, quad, brightnesses, red, green, blue, alpha, lights, overlay, readExistingColor);
}
@Override
public VertexConsumer vertex(double x, double y, double z) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public VertexConsumer color(int red, int green, int blue, int alpha) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public VertexConsumer uv(float u, float v) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public VertexConsumer overlayCoords(int u, int v) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public VertexConsumer uv2(int u, int v) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public VertexConsumer normal(float x, float y, float z) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public void endVertex() {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public void defaultColor(int red, int green, int blue, int alpha) {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
@Override
public void unsetDefaultColor() {
throw new UnsupportedOperationException("ShadedBlockSbbBuilder only supports putBulkData!");
}
}

View file

@ -1,92 +0,0 @@
package com.simibubi.create.foundation.render;
import java.nio.ByteBuffer;
import org.jetbrains.annotations.Nullable;
import com.mojang.blaze3d.vertex.PoseStack;
import dev.engine_room.flywheel.api.model.Model;
import dev.engine_room.flywheel.lib.model.ModelCache;
import dev.engine_room.flywheel.lib.model.ModelUtil;
import dev.engine_room.flywheel.lib.model.baked.ForgeBakedModelBuilder;
import dev.engine_room.flywheel.lib.model.baked.VirtualEmptyBlockGetter;
import net.minecraft.client.renderer.block.BlockRenderDispatcher;
import net.minecraft.client.renderer.block.ModelBlockRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelProperty;
public class VirtualRenderHelper {
public static final ModelProperty<Boolean> VIRTUAL_PROPERTY = new ModelProperty<>();
public static final ModelData VIRTUAL_DATA = ModelData.builder().with(VIRTUAL_PROPERTY, true).build();
private static final ModelCache<BlockState> VIRTUAL_BLOCKS = new ModelCache<>(state -> new ForgeBakedModelBuilder(ModelUtil.VANILLA_RENDERER.getBlockModel(state)).modelData(VIRTUAL_DATA).build());
private static final ThreadLocal<ThreadLocalObjects> THREAD_LOCAL_OBJECTS = ThreadLocal.withInitial(ThreadLocalObjects::new);
public static boolean isVirtual(ModelData data) {
return data.has(VirtualRenderHelper.VIRTUAL_PROPERTY) && data.get(VirtualRenderHelper.VIRTUAL_PROPERTY);
}
/**
* A copy of {@link dev.engine_room.flywheel.lib.model.Models#block(BlockState)}, but with virtual model data passed in.
* @param state The block state to get the model for.
* @return The model for the given block state.
*/
public static Model blockModel(BlockState state) {
return VIRTUAL_BLOCKS.get(state);
}
public static SuperByteBuffer bufferBlock(BlockState state) {
return bufferModel(ModelUtil.VANILLA_RENDERER.getBlockModel(state), state);
}
public static SuperByteBuffer bufferModel(BakedModel model, BlockState state) {
return bufferModel(model, state, null);
}
public static SuperByteBuffer bufferModel(BakedModel model, BlockState state, @Nullable PoseStack poseStack) {
BlockRenderDispatcher dispatcher = ModelUtil.VANILLA_RENDERER;
ModelBlockRenderer renderer = dispatcher.getModelRenderer();
ThreadLocalObjects objects = THREAD_LOCAL_OBJECTS.get();
if (poseStack == null) {
poseStack = objects.identityPoseStack;
}
RandomSource random = objects.random;
ShadedBlockSbbBuilder sbbBuilder = objects.sbbBuilder;
sbbBuilder.begin();
ModelData modelData = model.getModelData(VirtualEmptyBlockGetter.FULL_DARK, BlockPos.ZERO, state, VIRTUAL_DATA);
poseStack.pushPose();
renderer.tesselateBlock(VirtualEmptyBlockGetter.FULL_DARK, model, state, BlockPos.ZERO, poseStack, sbbBuilder, false, random, 42L, OverlayTexture.NO_OVERLAY, modelData, null);
poseStack.popPose();
return sbbBuilder.end();
}
public static void transferBlockVertexData(ByteBuffer vertexBuffer, int stride, int srcIndex, MutableTemplateMesh mutableMesh, int dstIndex, int vertexCount) {
for (int i = 0; i < vertexCount; i++) {
mutableMesh.x(dstIndex + i, vertexBuffer.getFloat(srcIndex + i * stride));
mutableMesh.y(dstIndex + i, vertexBuffer.getFloat(srcIndex + i * stride + 4));
mutableMesh.z(dstIndex + i, vertexBuffer.getFloat(srcIndex + i * stride + 8));
mutableMesh.color(dstIndex + i, vertexBuffer.getInt(srcIndex + i * stride + 12));
mutableMesh.u(dstIndex + i, vertexBuffer.getFloat(srcIndex + i * stride + 16));
mutableMesh.v(dstIndex + i, vertexBuffer.getFloat(srcIndex + i * stride + 20));
mutableMesh.overlay(dstIndex + i, OverlayTexture.NO_OVERLAY);
mutableMesh.light(dstIndex + i, vertexBuffer.getInt(srcIndex + i * stride + 24));
mutableMesh.normal(dstIndex + i, vertexBuffer.getInt(srcIndex + i * stride + 28));
}
}
private static class ThreadLocalObjects {
public final PoseStack identityPoseStack = new PoseStack();
public final RandomSource random = RandomSource.createNewThreadLocalInstance();
public final ShadedBlockSbbBuilder sbbBuilder = new ShadedBlockSbbBuilder();
}
}

View file

@ -40,13 +40,13 @@ ${mod_description}
[[dependencies.create]] [[dependencies.create]]
modId="catnip" modId="catnip"
mandatory=true mandatory=true
versionRange="[0.6,)" versionRange="[0.8,)"
ordering="AFTER" ordering="AFTER"
side="BOTH" side="BOTH"
[[dependencies.create]] [[dependencies.create]]
modId="ponder" modId="ponder"
mandatory=true mandatory=true
versionRange="[0.6,)" versionRange="[0.8,)"
ordering="AFTER" ordering="AFTER"
side="BOTH" side="BOTH"