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}" : '')
}
// 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 catnipInWorkspace = rootProject.hasProperty('multiModWorkspace.catnip')
boolean ponderInWorkspace = rootProject.hasProperty('multiModWorkspace.ponder')
@ -39,8 +35,8 @@ if (ponderInWorkspace) {
evaluationDependsOn(":ponder:Forge")
}
project.logger.lifecycle("MultiModWorkspace ${inMultiModWorkspace || flywheelInWorkspace ? 'enabled' : 'disabled'} for project ${project.name}.")
project.logger.lifecycle("Dependencies included in Workspace: [Flywheel: ${flywheelInWorkspace}], [Catnip: ${catnipInWorkspace}], [Ponder: ${ponderInWorkspace}]")
project.logger.lifecycle("MultiModWorkspace ${inMultiModWorkspace ? 'enabled' : 'disabled'} for project ${project.name}.")
project.logger.lifecycle("Dependencies included in Workspace: [Catnip: ${catnipInWorkspace}], [Ponder: ${ponderInWorkspace}]")
mixin {
add sourceSets.main, 'create.refmap.json'

View file

@ -28,8 +28,8 @@ jei_minecraft_version = 1.20.1
jei_version = 15.10.0.39
curios_minecraft_version = 1.20.1
curios_version = 5.3.1
catnip_version = 0.7.7
ponder_version = 0.7.6
catnip_version = 0.8.11
ponder_version = 0.8.8
cc_tweaked_enable = true
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.ponder.CreatePonderPlugin;
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.infrastructure.config.AllConfigs;
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.ConfigScreen;
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.minecraft.ChatFormatting;
import net.minecraft.client.GraphicsStatus;

View file

@ -1,8 +1,8 @@
package com.simibubi.create.compat.thresholdSwitch;
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.minecraftforge.items.IItemHandler;
@ -11,7 +11,7 @@ public class FunctionalStorage implements ThresholdSwitchCompat {
@Override
public boolean isFromThisMod(BlockEntity blockEntity) {
return blockEntity != null && Mods.FUNCTIONALSTORAGE.id()
.equals(RegisteredObjects.getKeyOrThrow(blockEntity.getType())
.equals(CatnipServices.REGISTRIES.getKeyOrThrow(blockEntity.getType())
.getNamespace());
}

View file

@ -1,8 +1,8 @@
package com.simibubi.create.compat.thresholdSwitch;
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.minecraftforge.items.IItemHandler;
@ -13,7 +13,7 @@ public class SophisticatedStorage implements ThresholdSwitchCompat {
if (be == null)
return false;
String namespace = RegisteredObjects.getKeyOrThrow(be.getType())
String namespace = CatnipServices.REGISTRIES.getKeyOrThrow(be.getType())
.getNamespace();
return

View file

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

View file

@ -2,6 +2,8 @@ package com.simibubi.create.content.contraptions.actors.harvester;
import javax.annotation.Nullable;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import org.apache.commons.lang3.mutable.MutableBoolean;
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.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 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 {

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.ContraptionRotationState;
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 net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.math.AngleHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
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.content.kinetics.base.BackHalfShaftVisual;
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.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.kinetics.base.RotatingInstance;
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 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 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.visual.DynamicVisual;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.pulley;
import com.simibubi.create.AllBlocks;
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.visualization.VisualizationContext;

View file

@ -1,5 +1,7 @@
package com.simibubi.create.content.contraptions.render;
import net.createmod.catnip.render.SuperByteBuffer;
import org.apache.commons.lang3.tuple.Pair;
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.MovementContext;
import com.simibubi.create.foundation.render.BlockEntityRenderHelper;
import com.simibubi.create.foundation.render.SuperByteBuffer;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import dev.engine_room.flywheel.api.visualization.VisualizationManager;

View file

@ -138,6 +138,6 @@ public class ContraptionRenderInfo {
private static class ThreadLocalObjects {
public final PoseStack poseStack = new PoseStack();
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;
import com.simibubi.create.content.contraptions.Contraption;
import com.simibubi.create.foundation.utility.WorldAttached;
import dev.engine_room.flywheel.api.event.ReloadLevelRendererEvent;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import net.createmod.catnip.utility.WorldAttached;
import net.minecraft.client.Minecraft;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;

View file

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

View file

@ -3,7 +3,6 @@ package com.simibubi.create.content.equipment.toolbox;
import java.util.function.Consumer;
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.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.visual.AbstractBlockEntityVisual;
import dev.engine_room.flywheel.lib.visual.SimpleDynamicVisual;
import net.createmod.catnip.utility.Iterate;
import net.minecraft.core.Direction;
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.content.kinetics.base.KineticBlockEntityRenderer;
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.visual.DynamicVisual;

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.kinetics.base;
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.InstanceType;

View file

@ -1,6 +1,6 @@
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.visualization.VisualizationContext;

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.kinetics.base;
import java.util.function.Consumer;
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.model.Model;

View file

@ -3,15 +3,16 @@ package com.simibubi.create.content.kinetics.belt;
import java.util.ArrayList;
import java.util.function.Consumer;
import net.createmod.catnip.render.SpriteShiftEntry;
import org.joml.Quaternionf;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
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.utility.Iterate;
import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance;
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.RotatingInstance;
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.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.ValueSettingsFormatter;
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 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.RotatingInstance;
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 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.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper;
import com.simibubi.create.foundation.utility.AngleHelper;
import net.createmod.catnip.render.VirtualRenderHelper;
import net.createmod.catnip.utility.math.AngleHelper;
import dev.engine_room.flywheel.api.instance.Instance;
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.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate;
import net.createmod.catnip.utility.AnimationTickHolder;
import net.createmod.catnip.utility.Couple;
import net.createmod.catnip.utility.Iterate;
import dev.engine_room.flywheel.api.instance.Instance;
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.simibubi.create.AllPartialModels;
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.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.transform.TransformStack;
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.renderer.entity.ItemRenderer;
import net.minecraft.util.Mth;
@ -101,7 +101,7 @@ public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements S
}
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 baseAngle = (renderTick * 10) % 360;

View file

@ -7,7 +7,7 @@ import org.joml.Quaternionf;
import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels;
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.visual.DynamicVisual;

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.kinetics.saw;
import com.simibubi.create.AllPartialModels;
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.visualization.VisualizationContext;

View file

@ -5,7 +5,7 @@ import java.util.List;
import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour;
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.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.simpleRelays.BracketedKineticBlockEntityRenderer;
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.model.Model;

View file

@ -4,7 +4,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels;
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.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.RotatingInstance;
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.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.RotatingInstance;
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.model.Model;
import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import dev.engine_room.flywheel.lib.model.ModelCache;
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.core.Direction;
import net.minecraft.core.Direction.AxisDirection;
@ -81,7 +81,7 @@ public class WaterWheelVisual<T extends WaterWheelBlockEntity> extends KineticBl
} else {
dir = state.getValue(WaterWheelBlock.FACING);
}
PoseStack transform = CachedBufferer.rotateToFaceVertical(dir).get();
PoseStack transform = CachedBuffers.rotateToFaceVertical(dir).get();
return BakedModelBuilder.create(model)
.poseStack(transform)
.build();

View file

@ -6,7 +6,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapInstance;
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.Instancer;

View file

@ -9,7 +9,7 @@ import java.util.function.Consumer;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapInstance;
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.Instancer;

View file

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

View file

@ -5,7 +5,7 @@ import java.util.Optional;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.trains.entity.CarriageBogey;
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 net.minecraft.core.BlockPos;

View file

@ -9,7 +9,7 @@ import org.joml.Vector4f;
import com.mojang.blaze3d.vertex.PoseStack;
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.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]]
modId="catnip"
mandatory=true
versionRange="[0.6,)"
versionRange="[0.8,)"
ordering="AFTER"
side="BOTH"
[[dependencies.create]]
modId="ponder"
mandatory=true
versionRange="[0.6,)"
versionRange="[0.8,)"
ordering="AFTER"
side="BOTH"