mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-28 12:54:40 +01:00
Simply implless
- Use split api/runtime flywheel jars - Update instance types to use single packed light int - Update visuals to use new context location
This commit is contained in:
parent
79e1c8c950
commit
0d324ffdf9
45 changed files with 121 additions and 150 deletions
29
build.gradle
29
build.gradle
|
@ -11,14 +11,6 @@ plugins {
|
||||||
jarJar.enable()
|
jarJar.enable()
|
||||||
|
|
||||||
boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equals('false');
|
boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equals('false');
|
||||||
// jozu: I use a gradle workspace with both projects.
|
|
||||||
// The project is named Flywheel-Forge, but sub-projects are named by folder.
|
|
||||||
Project flywheelProject = findProject(':Flywheel')
|
|
||||||
boolean flywheelInWorkspace = flywheelProject != null
|
|
||||||
|
|
||||||
if (flywheelInWorkspace) {
|
|
||||||
println('Workspace detected, using Flywheel sibling project')
|
|
||||||
}
|
|
||||||
|
|
||||||
ext.buildNumber = System.getenv('BUILD_NUMBER')
|
ext.buildNumber = System.getenv('BUILD_NUMBER')
|
||||||
|
|
||||||
|
@ -75,13 +67,6 @@ minecraft {
|
||||||
|
|
||||||
client {
|
client {
|
||||||
workingDirectory project.file('run')
|
workingDirectory project.file('run')
|
||||||
mods {
|
|
||||||
if (flywheelInWorkspace) {
|
|
||||||
flywheel {
|
|
||||||
source flywheelProject.sourceSets.main
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
|
@ -93,13 +78,6 @@ minecraft {
|
||||||
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP'
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
args '--mod', 'create', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources')
|
args '--mod', 'create', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources')
|
||||||
mods {
|
|
||||||
if (flywheelInWorkspace) {
|
|
||||||
flywheel {
|
|
||||||
source flywheelProject.sourceSets.main
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gameTestServer {
|
gameTestServer {
|
||||||
|
@ -173,11 +151,8 @@ dependencies {
|
||||||
|
|
||||||
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
|
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
|
||||||
|
|
||||||
if (flywheelInWorkspace) {
|
compileOnly fg.deobf("com.jozufozu.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}")
|
||||||
implementation flywheelProject
|
runtimeOnly fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}")
|
||||||
} else {
|
|
||||||
implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}")
|
|
||||||
}
|
|
||||||
|
|
||||||
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-common-api:${jei_version}")
|
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-common-api:${jei_version}")
|
||||||
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge-api:${jei_version}")
|
compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge-api:${jei_version}")
|
||||||
|
|
|
@ -23,7 +23,7 @@ use_parchment = true
|
||||||
# dependency versions
|
# dependency versions
|
||||||
registrate_version = MC1.20-1.3.3
|
registrate_version = MC1.20-1.3.3
|
||||||
flywheel_minecraft_version = 1.20.1
|
flywheel_minecraft_version = 1.20.1
|
||||||
flywheel_version = 1.0.0-alpha-78
|
flywheel_version = 1.0.0-beta-87
|
||||||
jei_minecraft_version = 1.20.1
|
jei_minecraft_version = 1.20.1
|
||||||
jei_version = 15.2.0.22
|
jei_version = 15.2.0.22
|
||||||
curios_minecraft_version = 1.20.1
|
curios_minecraft_version = 1.20.1
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class HarvesterActorVisual extends ActorVisual {
|
||||||
|
|
||||||
horizontalAngle = facing.toYRot() + ((facing.getAxis() == Direction.Axis.X) ? 180 : 0);
|
horizontalAngle = facing.toYRot() + ((facing.getAxis() == Direction.Axis.X) ? 180 : 0);
|
||||||
|
|
||||||
harvester.setBlockLight(localBlockLight());
|
harvester.light(localBlockLight(), 0);
|
||||||
harvester.setChanged();
|
harvester.setChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@ public class PSIActorVisual extends ActorVisual {
|
||||||
instance = new PIInstance(context.instancerProvider(), movementContext.state, movementContext.localPos);
|
instance = new PIInstance(context.instancerProvider(), movementContext.state, movementContext.localPos);
|
||||||
|
|
||||||
instance.init(false);
|
instance.init(false);
|
||||||
instance.middle.setBlockLight(localBlockLight());
|
instance.middle.light(localBlockLight(), 0);
|
||||||
instance.top.setBlockLight(localBlockLight());
|
instance.top.light(localBlockLight(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.actors.psi;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualTickContext;
|
import com.jozufozu.flywheel.api.visual.TickableVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
|
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
|
||||||
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
||||||
|
@ -27,12 +27,12 @@ public class PSIVisual extends AbstractBlockEntityVisual<PortableStorageInterfac
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(VisualTickContext ctx) {
|
public void tick(TickableVisual.Context ctx) {
|
||||||
instance.tick(isLit());
|
instance.tick(isLit());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
instance.beginFrame(blockEntity.getExtensionDistance(ctx.partialTick()));
|
instance.beginFrame(blockEntity.getExtensionDistance(ctx.partialTick()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class RollerActorVisual extends HarvesterActorVisual {
|
||||||
|
|
||||||
frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME))
|
frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME))
|
||||||
.createInstance();
|
.createInstance();
|
||||||
frame.setBlockLight(localBlockLight());
|
frame.light(localBlockLight(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.function.Consumer;
|
||||||
import org.joml.Quaternionf;
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
||||||
|
@ -47,7 +47,7 @@ public class BearingVisual<B extends KineticBlockEntity & IBearingBlockEntity> e
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float interpolatedAngle = blockEntity.getInterpolatedAngle(ctx.partialTick() - 1);
|
float interpolatedAngle = blockEntity.getInterpolatedAngle(ctx.partialTick() - 1);
|
||||||
Quaternionf rot = rotationAxis.rotationDegrees(interpolatedAngle);
|
Quaternionf rot = rotationAxis.rotationDegrees(interpolatedAngle);
|
||||||
|
|
||||||
|
|
|
@ -44,14 +44,14 @@ public class StabilizedBearingVisual extends ActorVisual {
|
||||||
int blockLight = localBlockLight();
|
int blockLight = localBlockLight();
|
||||||
topInstance.setPosition(movementContext.localPos)
|
topInstance.setPosition(movementContext.localPos)
|
||||||
.setRotation(blockOrientation)
|
.setRotation(blockOrientation)
|
||||||
.setBlockLight(blockLight);
|
.light(blockLight, 0);
|
||||||
|
|
||||||
shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, blockState.getValue(BlockStateProperties.FACING).getOpposite()))
|
shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF, blockState.getValue(BlockStateProperties.FACING).getOpposite()))
|
||||||
.createInstance();
|
.createInstance();
|
||||||
|
|
||||||
// not rotating so no need to set speed, axis, etc.
|
// not rotating so no need to set speed, axis, etc.
|
||||||
shaft.setPosition(movementContext.localPos)
|
shaft.setPosition(movementContext.localPos)
|
||||||
.setBlockLight(blockLight);
|
.light(blockLight, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.chassis;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -39,7 +39,7 @@ public class StickerVisual extends AbstractBlockEntityVisual<StickerBlockEntity>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float offset = blockEntity.piston.getValue(ctx.partialTick());
|
float offset = blockEntity.piston.getValue(ctx.partialTick());
|
||||||
|
|
||||||
if (fakeWorld)
|
if (fakeWorld)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.simibubi.create.content.contraptions.elevator;
|
package com.simibubi.create.content.contraptions.elevator;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
||||||
import com.simibubi.create.content.kinetics.base.ShaftVisual;
|
import com.simibubi.create.content.kinetics.base.ShaftVisual;
|
||||||
|
@ -13,7 +13,7 @@ public class ElevatorPulleyVisual extends ShaftVisual<ElevatorPulleyBlockEntity>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.gantry;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -51,7 +51,7 @@ public class GantryCarriageVisual extends ShaftVisual<GantryCarriageBlockEntity>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float cogAngle = getCogAngle();
|
float cogAngle = getCogAngle();
|
||||||
|
|
||||||
if (Mth.equal(cogAngle, lastAngle)) return;
|
if (Mth.equal(cogAngle, lastAngle)) return;
|
||||||
|
|
|
@ -4,11 +4,10 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.instance.Instancer;
|
import com.jozufozu.flywheel.api.instance.Instancer;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.box.MutableBox;
|
import com.jozufozu.flywheel.lib.box.MutableBox;
|
||||||
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
||||||
import com.jozufozu.flywheel.lib.light.LightPacking;
|
|
||||||
import com.jozufozu.flywheel.lib.light.LightVolume;
|
import com.jozufozu.flywheel.lib.light.LightVolume;
|
||||||
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
import com.jozufozu.flywheel.lib.visual.SimpleDynamicVisual;
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
|
@ -60,7 +59,7 @@ public abstract class AbstractPulleyVisual<T extends KineticBlockEntity> extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
updateOffset(ctx.partialTick());
|
updateOffset(ctx.partialTick());
|
||||||
coil.setRotation(rotationAxis.rotationDegrees(offset * 180))
|
coil.setRotation(rotationAxis.rotationDegrees(offset * 180))
|
||||||
.setChanged();
|
.setChanged();
|
||||||
|
@ -75,8 +74,7 @@ public abstract class AbstractPulleyVisual<T extends KineticBlockEntity> extends
|
||||||
short packed = light.getPackedLight(pos.getX(), pos.getY() - i, pos.getZ());
|
short packed = light.getPackedLight(pos.getX(), pos.getY() - i, pos.getZ());
|
||||||
data.setPosition(getVisualPosition())
|
data.setPosition(getVisualPosition())
|
||||||
.nudgePosition(0, -offset, 0)
|
.nudgePosition(0, -offset, 0)
|
||||||
.setBlockLight(LightPacking.getBlock(packed))
|
.light(packed)
|
||||||
.setSkyLight(LightPacking.getSky(packed))
|
|
||||||
.setChanged();
|
.setChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -89,8 +87,7 @@ public abstract class AbstractPulleyVisual<T extends KineticBlockEntity> extends
|
||||||
short packed = light.getPackedLight(pos.getX(), pos.getY(), pos.getZ());
|
short packed = light.getPackedLight(pos.getX(), pos.getY(), pos.getZ());
|
||||||
rope1.setPosition(getVisualPosition())
|
rope1.setPosition(getVisualPosition())
|
||||||
.nudgePosition(0, -halfRopeNudge, 0)
|
.nudgePosition(0, -halfRopeNudge, 0)
|
||||||
.setBlockLight(LightPacking.getBlock(packed))
|
.light(packed)
|
||||||
.setSkyLight(LightPacking.getSky(packed))
|
|
||||||
.setChanged();
|
.setChanged();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -103,8 +100,7 @@ public abstract class AbstractPulleyVisual<T extends KineticBlockEntity> extends
|
||||||
rope.get(i)
|
rope.get(i)
|
||||||
.setPosition(getVisualPosition())
|
.setPosition(getVisualPosition())
|
||||||
.nudgePosition(0, -offset + i + 1, 0)
|
.nudgePosition(0, -offset + i + 1, 0)
|
||||||
.setBlockLight(LightPacking.getBlock(packed))
|
.light(packed)
|
||||||
.setSkyLight(LightPacking.getSky(packed))
|
|
||||||
.setChanged();
|
.setChanged();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -12,15 +12,13 @@ import com.jozufozu.flywheel.api.visual.BlockEntityVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.LitVisual;
|
import com.jozufozu.flywheel.api.visual.LitVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.TickableVisual;
|
import com.jozufozu.flywheel.api.visual.TickableVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
|
||||||
import com.jozufozu.flywheel.api.visual.VisualTickContext;
|
|
||||||
import com.jozufozu.flywheel.api.visualization.BlockEntityVisualizer;
|
import com.jozufozu.flywheel.api.visualization.BlockEntityVisualizer;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualEmbedding;
|
import com.jozufozu.flywheel.api.visualization.VisualEmbedding;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizerRegistry;
|
import com.jozufozu.flywheel.api.visualization.VisualizerRegistry;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
import com.jozufozu.flywheel.lib.model.baked.MultiBlockModelBuilder;
|
import com.jozufozu.flywheel.lib.model.baked.ForgeMultiBlockModelBuilder;
|
||||||
import com.jozufozu.flywheel.lib.task.ForEachPlan;
|
import com.jozufozu.flywheel.lib.task.ForEachPlan;
|
||||||
import com.jozufozu.flywheel.lib.task.NestedPlan;
|
import com.jozufozu.flywheel.lib.task.NestedPlan;
|
||||||
import com.jozufozu.flywheel.lib.task.PlanMap;
|
import com.jozufozu.flywheel.lib.task.PlanMap;
|
||||||
|
@ -52,8 +50,8 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
||||||
protected final VisualEmbedding embedding;
|
protected final VisualEmbedding embedding;
|
||||||
protected final List<BlockEntityVisual<?>> children = new ArrayList<>();
|
protected final List<BlockEntityVisual<?>> children = new ArrayList<>();
|
||||||
protected final List<ActorVisual> actors = new ArrayList<>();
|
protected final List<ActorVisual> actors = new ArrayList<>();
|
||||||
protected final PlanMap<DynamicVisual, VisualFrameContext> dynamicVisuals = new PlanMap<>();
|
protected final PlanMap<DynamicVisual, DynamicVisual.Context> dynamicVisuals = new PlanMap<>();
|
||||||
protected final PlanMap<TickableVisual, VisualTickContext> tickableVisuals = new PlanMap<>();
|
protected final PlanMap<TickableVisual, TickableVisual.Context> tickableVisuals = new PlanMap<>();
|
||||||
protected VirtualRenderWorld virtualRenderWorld;
|
protected VirtualRenderWorld virtualRenderWorld;
|
||||||
protected Model model;
|
protected Model model;
|
||||||
protected TransformedInstance structure;
|
protected TransformedInstance structure;
|
||||||
|
@ -83,7 +81,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
model = new MultiBlockModelBuilder(modelWorld, blocks.positions())
|
model = new ForgeMultiBlockModelBuilder(modelWorld, blocks.positions())
|
||||||
.modelDataLookup(pos -> contraption.modelData.getOrDefault(pos, ModelData.EMPTY))
|
.modelDataLookup(pos -> contraption.modelData.getOrDefault(pos, ModelData.EMPTY))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
@ -155,7 +153,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Plan<VisualTickContext> planTick() {
|
public Plan<TickableVisual.Context> planTick() {
|
||||||
return NestedPlan.of(
|
return NestedPlan.of(
|
||||||
ForEachPlan.of(() -> actors, ActorVisual::tick),
|
ForEachPlan.of(() -> actors, ActorVisual::tick),
|
||||||
tickableVisuals
|
tickableVisuals
|
||||||
|
@ -163,7 +161,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Plan<VisualFrameContext> planFrame() {
|
public Plan<DynamicVisual.Context> planFrame() {
|
||||||
return NestedPlan.of(
|
return NestedPlan.of(
|
||||||
RunnablePlan.of(this::beginFrame),
|
RunnablePlan.of(this::beginFrame),
|
||||||
ForEachPlan.of(() -> actors, ActorVisual::beginFrame),
|
ForEachPlan.of(() -> actors, ActorVisual::beginFrame),
|
||||||
|
@ -171,7 +169,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void beginFrame(VisualFrameContext context) {
|
protected void beginFrame(DynamicVisual.Context context) {
|
||||||
var partialTick = context.partialTick();
|
var partialTick = context.partialTick();
|
||||||
setEmbeddingMatrices(partialTick);
|
setEmbeddingMatrices(partialTick);
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.instance.Instancer;
|
import com.jozufozu.flywheel.api.instance.Instancer;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -50,7 +50,7 @@ public class ToolBoxVisual extends AbstractBlockEntityVisual<ToolboxBlockEntity>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float partialTicks = ctx.partialTick();
|
float partialTicks = ctx.partialTick();
|
||||||
|
|
||||||
float lidAngle = blockEntity.lid.getValue(partialTicks);
|
float lidAngle = blockEntity.lid.getValue(partialTicks);
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.fluids.pipes.valve;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -52,7 +52,7 @@ public class FluidValveVisual extends ShaftVisual<FluidValveBlockEntity> impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (blockEntity.pointer.settled() && settled)
|
if (blockEntity.pointer.settled() && settled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -164,8 +164,7 @@ public class BeltVisual extends KineticBlockEntityVisual<BeltBlockEntity> {
|
||||||
.setRotationOffset(bottom ? 0.5f : 0f)
|
.setRotationOffset(bottom ? 0.5f : 0f)
|
||||||
.setColor(blockEntity)
|
.setColor(blockEntity)
|
||||||
.setPosition(getVisualPosition())
|
.setPosition(getVisualPosition())
|
||||||
.setBlockLight(level.getBrightness(LightLayer.BLOCK, pos))
|
.light(level.getBrightness(LightLayer.BLOCK, pos), level.getBrightness(LightLayer.SKY, pos))
|
||||||
.setSkyLight(level.getBrightness(LightLayer.SKY, pos))
|
|
||||||
.setChanged();
|
.setChanged();
|
||||||
|
|
||||||
return key;
|
return key;
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.model.Model;
|
import com.jozufozu.flywheel.api.model.Model;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -28,7 +28,7 @@ public class HandCrankVisual extends SingleRotatingVisual<HandCrankBlockEntity>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (crank == null)
|
if (crank == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -69,10 +69,10 @@ public class DeployerActorVisual extends ActorVisual {
|
||||||
|
|
||||||
shaft.setRotationAxis(axis)
|
shaft.setRotationAxis(axis)
|
||||||
.setPosition(context.localPos)
|
.setPosition(context.localPos)
|
||||||
.setBlockLight(blockLight);
|
.light(blockLight, 0);
|
||||||
|
|
||||||
pole.setBlockLight(blockLight);
|
pole.light(blockLight, 0);
|
||||||
hand.setBlockLight(blockLight);
|
hand.light(blockLight, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,8 +8,8 @@ import java.util.function.Consumer;
|
||||||
import org.joml.Quaternionf;
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualTickContext;
|
import com.jozufozu.flywheel.api.visual.TickableVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
||||||
|
@ -69,7 +69,7 @@ public class DeployerVisual extends ShaftVisual<DeployerBlockEntity> implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(VisualTickContext ctx) {
|
public void tick(TickableVisual.Context context) {
|
||||||
PartialModel handPose = blockEntity.getHandPose();
|
PartialModel handPose = blockEntity.getHandPose();
|
||||||
|
|
||||||
if (currentHand != handPose) {
|
if (currentHand != handPose) {
|
||||||
|
@ -80,7 +80,7 @@ public class DeployerVisual extends ShaftVisual<DeployerBlockEntity> implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float newProgress = getProgress(ctx.partialTick());
|
float newProgress = getProgress(ctx.partialTick());
|
||||||
|
|
||||||
if (Mth.equal(newProgress, progress)) return;
|
if (Mth.equal(newProgress, progress)) return;
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.kinetics.flywheel;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -36,7 +36,7 @@ public class FlywheelVisual extends KineticBlockEntityVisual<FlywheelBlockEntity
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
|
|
||||||
float partialTicks = ctx.partialTick();
|
float partialTicks = ctx.partialTick();
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.instance.Instancer;
|
import com.jozufozu.flywheel.api.instance.Instancer;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -63,7 +63,7 @@ public abstract class GaugeVisual extends ShaftVisual<GaugeBlockEntity> implemen
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (Mth.equal(blockEntity.prevDialState, blockEntity.dialState))
|
if (Mth.equal(blockEntity.prevDialState, blockEntity.dialState))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,7 @@ public class GearboxVisual extends KineticBlockEntityVisual<GearboxBlockEntity>
|
||||||
.setRotationalSpeed(getSpeed(direction))
|
.setRotationalSpeed(getSpeed(direction))
|
||||||
.setRotationOffset(getRotationOffset(axis)).setColor(blockEntity)
|
.setRotationOffset(getRotationOffset(axis)).setColor(blockEntity)
|
||||||
.setPosition(getVisualPosition())
|
.setPosition(getVisualPosition())
|
||||||
.setBlockLight(blockLight)
|
.light(blockLight, skyLight)
|
||||||
.setSkyLight(skyLight)
|
|
||||||
.setChanged();
|
.setChanged();
|
||||||
|
|
||||||
keys.put(direction, key);
|
keys.put(direction, key);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.function.Consumer;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.model.Model;
|
import com.jozufozu.flywheel.api.model.Model;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
|
@ -70,7 +70,7 @@ public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements S
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (blockEntity.phase == ArmBlockEntity.Phase.DANCING && blockEntity.getSpeed() != 0) {
|
if (blockEntity.phase == ArmBlockEntity.Phase.DANCING && blockEntity.getSpeed() != 0) {
|
||||||
animateRave(ctx.partialTick());
|
animateRave(ctx.partialTick());
|
||||||
firstRender = true;
|
firstRender = true;
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.model.Model;
|
import com.jozufozu.flywheel.api.model.Model;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
||||||
|
@ -49,7 +49,7 @@ public class MixerVisual extends EncasedCogVisual implements SimpleDynamicVisual
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
animate(ctx.partialTick());
|
animate(ctx.partialTick());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.function.Consumer;
|
||||||
import org.joml.Quaternionf;
|
import org.joml.Quaternionf;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
import com.jozufozu.flywheel.lib.instance.OrientedInstance;
|
||||||
|
@ -40,7 +40,7 @@ public class PressVisual extends ShaftVisual<MechanicalPressBlockEntity> impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
transformModels(ctx.partialTick());
|
transformModels(ctx.partialTick());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.kinetics.steamEngine;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -36,7 +36,7 @@ public class SteamEngineVisual extends AbstractBlockEntityVisual<SteamEngineBloc
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
Float angle = blockEntity.getTargetAngle();
|
Float angle = blockEntity.getTargetAngle();
|
||||||
if (angle == null) {
|
if (angle == null) {
|
||||||
piston.setEmptyTransform().setChanged();
|
piston.setEmptyTransform().setChanged();
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class WaterWheelVisual<T extends WaterWheelBlockEntity> extends KineticBl
|
||||||
dir = state.getValue(WaterWheelBlock.FACING);
|
dir = state.getValue(WaterWheelBlock.FACING);
|
||||||
}
|
}
|
||||||
PoseStack transform = CachedBufferer.rotateToFaceVertical(dir).get();
|
PoseStack transform = CachedBufferer.rotateToFaceVertical(dir).get();
|
||||||
return new BakedModelBuilder(model)
|
return BakedModelBuilder.create(model)
|
||||||
.poseStack(transform)
|
.poseStack(transform)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.logistics.depot;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -32,7 +32,7 @@ public class EjectorVisual extends ShaftVisual<EjectorBlockEntity> implements Si
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float lidProgress = getLidProgress(ctx.partialTick());
|
float lidProgress = getLidProgress(ctx.partialTick());
|
||||||
|
|
||||||
if (lidProgress == lastProgress) {
|
if (lidProgress == lastProgress) {
|
||||||
|
|
|
@ -17,6 +17,7 @@ public class FlapInstance extends AbstractInstance implements FlatLit {
|
||||||
public float z;
|
public float z;
|
||||||
public byte blockLight;
|
public byte blockLight;
|
||||||
public byte skyLight;
|
public byte skyLight;
|
||||||
|
public int packedLight;
|
||||||
public float segmentOffsetX;
|
public float segmentOffsetX;
|
||||||
public float segmentOffsetY;
|
public float segmentOffsetY;
|
||||||
public float segmentOffsetZ;
|
public float segmentOffsetZ;
|
||||||
|
@ -49,22 +50,16 @@ public class FlapInstance extends AbstractInstance implements FlatLit {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FlapInstance setBlockLight(int blockLight) {
|
public FlapInstance light(int blockLight, int skyLight) {
|
||||||
this.blockLight = (byte) (blockLight & 0xF);
|
return this.light(LightTexture.pack(blockLight, skyLight));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FlapInstance setSkyLight(int skyLight) {
|
public FlapInstance light(int packedLight) {
|
||||||
this.skyLight = (byte) (skyLight & 0xF);
|
this.packedLight = packedLight;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getPackedLight() {
|
|
||||||
return LightTexture.pack(this.blockLight, this.skyLight);
|
|
||||||
}
|
|
||||||
|
|
||||||
public FlapInstance setSegmentOffset(float x, float y, float z) {
|
public FlapInstance setSegmentOffset(float x, float y, float z) {
|
||||||
this.segmentOffsetX = x;
|
this.segmentOffsetX = x;
|
||||||
this.segmentOffsetY = y;
|
this.segmentOffsetY = y;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.instance.Instancer;
|
import com.jozufozu.flywheel.api.instance.Instancer;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
||||||
import com.jozufozu.flywheel.lib.model.Models;
|
import com.jozufozu.flywheel.lib.model.Models;
|
||||||
|
@ -51,8 +51,7 @@ public class FunnelVisual extends AbstractBlockEntityVisual<FunnelBlockEntity> i
|
||||||
|
|
||||||
key.setPosition(getVisualPosition())
|
key.setPosition(getVisualPosition())
|
||||||
.setSegmentOffset(segmentOffset, 0, -blockEntity.getFlapOffset())
|
.setSegmentOffset(segmentOffset, 0, -blockEntity.getFlapOffset())
|
||||||
.setBlockLight(blockLight)
|
.light(blockLight, skyLight)
|
||||||
.setSkyLight(skyLight)
|
|
||||||
.setHorizontalAngle(horizontalAngle)
|
.setHorizontalAngle(horizontalAngle)
|
||||||
.setFlapness(flapness)
|
.setFlapness(flapness)
|
||||||
.setFlapScale(-1)
|
.setFlapScale(-1)
|
||||||
|
@ -65,7 +64,7 @@ public class FunnelVisual extends AbstractBlockEntityVisual<FunnelBlockEntity> i
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (flaps == null) return;
|
if (flaps == null) return;
|
||||||
|
|
||||||
float flapness = blockEntity.flap.getValue(ctx.partialTick());
|
float flapness = blockEntity.flap.getValue(ctx.partialTick());
|
||||||
|
|
|
@ -8,7 +8,7 @@ import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.instance.Instancer;
|
import com.jozufozu.flywheel.api.instance.Instancer;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
import com.jozufozu.flywheel.lib.instance.AbstractInstance;
|
||||||
import com.jozufozu.flywheel.lib.model.Models;
|
import com.jozufozu.flywheel.lib.model.Models;
|
||||||
|
@ -54,8 +54,7 @@ public class BeltTunnelVisual extends AbstractBlockEntityVisual<BeltTunnelBlockE
|
||||||
|
|
||||||
key.setPosition(getVisualPosition())
|
key.setPosition(getVisualPosition())
|
||||||
.setSegmentOffset(segmentOffset, 0, 0)
|
.setSegmentOffset(segmentOffset, 0, 0)
|
||||||
.setBlockLight(blockLight)
|
.light(blockLight, skyLight)
|
||||||
.setSkyLight(skyLight)
|
|
||||||
.setHorizontalAngle(horizontalAngle)
|
.setHorizontalAngle(horizontalAngle)
|
||||||
.setFlapness(flapness)
|
.setFlapness(flapness)
|
||||||
.setFlapScale(flapScale)
|
.setFlapScale(flapScale)
|
||||||
|
@ -86,7 +85,7 @@ public class BeltTunnelVisual extends AbstractBlockEntityVisual<BeltTunnelBlockE
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
tunnelFlaps.forEach((direction, keys) -> {
|
tunnelFlaps.forEach((direction, keys) -> {
|
||||||
LerpedFloat lerpedFloat = blockEntity.flaps.get(direction);
|
LerpedFloat lerpedFloat = blockEntity.flaps.get(direction);
|
||||||
if (lerpedFloat == null)
|
if (lerpedFloat == null)
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.redstone.analogLever;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -50,7 +50,7 @@ public class AnalogLeverVisual extends AbstractBlockEntityVisual<AnalogLeverBloc
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
if (!blockEntity.clientState.settled())
|
if (!blockEntity.clientState.settled())
|
||||||
animateLever(ctx.partialTick());
|
animateLever(ctx.partialTick());
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.redstone.diodes;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualTickContext;
|
import com.jozufozu.flywheel.api.visual.TickableVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -33,7 +33,7 @@ public class BrassDiodeVisual extends AbstractBlockEntityVisual<BrassDiodeBlockE
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(VisualTickContext ctx) {
|
public void tick(TickableVisual.Context context) {
|
||||||
if (previousState == blockEntity.state) return;
|
if (previousState == blockEntity.state) return;
|
||||||
|
|
||||||
indicator.setColor(getColor());
|
indicator.setColor(getColor());
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.simibubi.create.content.schematics.cannon;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
|
@ -29,7 +29,7 @@ public class SchematicannonVisual extends AbstractBlockEntityVisual<Schematicann
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
float partialTicks = ctx.partialTick();
|
float partialTicks = ctx.partialTick();
|
||||||
|
|
||||||
double[] cannonAngles = SchematicannonRenderer.getCannonAngles(blockEntity, pos, partialTicks);
|
double[] cannonAngles = SchematicannonRenderer.getCannonAngles(blockEntity, pos, partialTicks);
|
||||||
|
|
|
@ -341,13 +341,15 @@ public abstract class BogeyRenderer {
|
||||||
|
|
||||||
public BogeyModelData setTransform(PoseStack ms) {
|
public BogeyModelData setTransform(PoseStack ms) {
|
||||||
if (this.transform instanceof TransformedInstance model)
|
if (this.transform instanceof TransformedInstance model)
|
||||||
model.setTransform(ms);
|
model.setTransform(ms)
|
||||||
|
.setChanged();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BogeyModelData setEmptyTransform() {
|
public BogeyModelData setEmptyTransform() {
|
||||||
if (this.transform instanceof TransformedInstance model)
|
if (this.transform instanceof TransformedInstance model)
|
||||||
model.setEmptyTransform();
|
model.setEmptyTransform()
|
||||||
|
.setChanged();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,7 +361,8 @@ public abstract class BogeyRenderer {
|
||||||
|
|
||||||
public BogeyModelData updateLight(int blockLight, int skyLight) {
|
public BogeyModelData updateLight(int blockLight, int skyLight) {
|
||||||
if (this.transform instanceof TransformedInstance model)
|
if (this.transform instanceof TransformedInstance model)
|
||||||
model.setBlockLight(blockLight).setSkyLight(skyLight);
|
model.light(blockLight, skyLight)
|
||||||
|
.setChanged();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.trains.entity;
|
||||||
|
|
||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.visual.VisualFrameContext;
|
import com.jozufozu.flywheel.api.visual.DynamicVisual;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
@ -44,7 +44,7 @@ public class CarriageContraptionVisual extends ContraptionVisual<CarriageContrap
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginFrame(VisualFrameContext ctx) {
|
public void beginFrame(DynamicVisual.Context ctx) {
|
||||||
super.beginFrame(ctx);
|
super.beginFrame(ctx);
|
||||||
if (bogeys == null) {
|
if (bogeys == null) {
|
||||||
if (entity.isReadyForRender())
|
if (entity.isReadyForRender())
|
||||||
|
|
|
@ -9,6 +9,7 @@ import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.instance.Instance;
|
import com.jozufozu.flywheel.api.instance.Instance;
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
|
||||||
|
import com.jozufozu.flywheel.lib.instance.FlatLit;
|
||||||
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
import com.jozufozu.flywheel.lib.instance.InstanceTypes;
|
||||||
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
import com.jozufozu.flywheel.lib.instance.TransformedInstance;
|
||||||
import com.jozufozu.flywheel.lib.model.Models;
|
import com.jozufozu.flywheel.lib.model.Models;
|
||||||
|
@ -24,6 +25,8 @@ import com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.SectionPos;
|
import net.minecraft.core.SectionPos;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.LightLayer;
|
||||||
|
|
||||||
public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
|
public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
|
||||||
|
|
||||||
|
@ -179,14 +182,11 @@ public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
|
||||||
|
|
||||||
void updateLight() {
|
void updateLight() {
|
||||||
for (int i = 0; i < ties.length; i++)
|
for (int i = 0; i < ties.length; i++)
|
||||||
ties[i].updateLight(level, tiesLightPos[i])
|
TrackVisual.updateLight(ties[i], level, tiesLightPos[i]);
|
||||||
.setChanged();
|
|
||||||
for (int i = 0; i < left.length; i++)
|
for (int i = 0; i < left.length; i++)
|
||||||
left[i].updateLight(level, leftLightPos[i])
|
TrackVisual.updateLight(left[i], level, leftLightPos[i]);
|
||||||
.setChanged();
|
|
||||||
for (int i = 0; i < right.length; i++)
|
for (int i = 0; i < right.length; i++)
|
||||||
right[i].updateLight(level, rightLightPos[i])
|
TrackVisual.updateLight(right[i], level, rightLightPos[i]);
|
||||||
.setChanged();
|
|
||||||
if (girder != null)
|
if (girder != null)
|
||||||
girder.updateLight();
|
girder.updateLight();
|
||||||
}
|
}
|
||||||
|
@ -265,13 +265,11 @@ public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
|
||||||
void updateLight() {
|
void updateLight() {
|
||||||
beams.forEach(arr -> {
|
beams.forEach(arr -> {
|
||||||
for (int i = 0; i < arr.length; i++)
|
for (int i = 0; i < arr.length; i++)
|
||||||
arr[i].updateLight(level, lightPos[i])
|
TrackVisual.updateLight(arr[i], level, lightPos[i]);
|
||||||
.setChanged();
|
|
||||||
});
|
});
|
||||||
beamCaps.forEach(c -> c.forEach(arr -> {
|
beamCaps.forEach(c -> c.forEach(arr -> {
|
||||||
for (int i = 0; i < arr.length; i++)
|
for (int i = 0; i < arr.length; i++)
|
||||||
arr[i].updateLight(level, lightPos[i])
|
TrackVisual.updateLight(arr[i], level, lightPos[i]);
|
||||||
.setChanged();
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,4 +286,9 @@ public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void updateLight(FlatLit instance, Level level, BlockPos pos) {
|
||||||
|
instance.light(level.getBrightness(LightLayer.BLOCK, pos), level.getBrightness(LightLayer.SKY, pos))
|
||||||
|
.setChanged();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,8 +36,8 @@ public class AllInstanceTypes {
|
||||||
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
||||||
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
||||||
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
||||||
MemoryUtil.memPutShort(ptr + 4, instance.blockLight);
|
MemoryUtil.memPutShort(ptr + 4, (short) (instance.packedLight & 0xFFFF));
|
||||||
MemoryUtil.memPutShort(ptr + 6, instance.skyLight);
|
MemoryUtil.memPutShort(ptr + 6, (short) (instance.packedLight >> 16 & 0xFFFF));
|
||||||
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
||||||
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
||||||
|
@ -70,8 +70,8 @@ public class AllInstanceTypes {
|
||||||
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
MemoryUtil.memPutByte(ptr + 1, instance.g);
|
||||||
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
MemoryUtil.memPutByte(ptr + 2, instance.b);
|
||||||
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
MemoryUtil.memPutByte(ptr + 3, instance.a);
|
||||||
MemoryUtil.memPutShort(ptr + 4, instance.blockLight);
|
MemoryUtil.memPutShort(ptr + 4, (short) (instance.packedLight & 0xFFFF));
|
||||||
MemoryUtil.memPutShort(ptr + 6, instance.skyLight);
|
MemoryUtil.memPutShort(ptr + 6, (short) (instance.packedLight >> 16 & 0xFFFF));
|
||||||
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
MemoryUtil.memPutInt(ptr + 8, instance.overlay);
|
||||||
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
MemoryUtil.memPutFloat(ptr + 12, instance.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
MemoryUtil.memPutFloat(ptr + 16, instance.y);
|
||||||
|
@ -143,8 +143,8 @@ public class AllInstanceTypes {
|
||||||
MemoryUtil.memPutFloat(ptr, instance.x);
|
MemoryUtil.memPutFloat(ptr, instance.x);
|
||||||
MemoryUtil.memPutFloat(ptr + 4, instance.y);
|
MemoryUtil.memPutFloat(ptr + 4, instance.y);
|
||||||
MemoryUtil.memPutFloat(ptr + 8, instance.z);
|
MemoryUtil.memPutFloat(ptr + 8, instance.z);
|
||||||
MemoryUtil.memPutShort(ptr + 12, instance.blockLight);
|
MemoryUtil.memPutShort(ptr + 12, (short) (instance.packedLight & 0xFFFF));
|
||||||
MemoryUtil.memPutShort(ptr + 14, instance.skyLight);
|
MemoryUtil.memPutShort(ptr + 14, (short) (instance.packedLight >> 16 & 0xFFFF));
|
||||||
MemoryUtil.memPutFloat(ptr + 16, instance.segmentOffsetX);
|
MemoryUtil.memPutFloat(ptr + 16, instance.segmentOffsetX);
|
||||||
MemoryUtil.memPutFloat(ptr + 20, instance.segmentOffsetY);
|
MemoryUtil.memPutFloat(ptr + 20, instance.segmentOffsetY);
|
||||||
MemoryUtil.memPutFloat(ptr + 24, instance.segmentOffsetZ);
|
MemoryUtil.memPutFloat(ptr + 24, instance.segmentOffsetZ);
|
||||||
|
|
|
@ -8,8 +8,8 @@ import org.joml.Matrix4f;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
|
|
||||||
import com.jozufozu.flywheel.api.visualization.VisualizationManager;
|
import com.jozufozu.flywheel.api.visualization.VisualizationManager;
|
||||||
import com.jozufozu.flywheel.impl.visualization.VisualizationHelper;
|
|
||||||
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
import com.jozufozu.flywheel.lib.transform.TransformStack;
|
||||||
|
import com.jozufozu.flywheel.lib.visual.VisualizationHelper;
|
||||||
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 com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
|
||||||
import com.jozufozu.flywheel.api.model.Model;
|
import com.jozufozu.flywheel.api.model.Model;
|
||||||
import com.jozufozu.flywheel.lib.model.ModelCache;
|
import com.jozufozu.flywheel.lib.model.ModelCache;
|
||||||
import com.jozufozu.flywheel.lib.model.ModelUtil;
|
import com.jozufozu.flywheel.lib.model.ModelUtil;
|
||||||
import com.jozufozu.flywheel.lib.model.baked.BakedModelBuilder;
|
import com.jozufozu.flywheel.lib.model.baked.ForgeBakedModelBuilder;
|
||||||
import com.jozufozu.flywheel.lib.model.baked.VirtualEmptyBlockGetter;
|
import com.jozufozu.flywheel.lib.model.baked.VirtualEmptyBlockGetter;
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder;
|
import com.mojang.blaze3d.vertex.BufferBuilder;
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder.RenderedBuffer;
|
import com.mojang.blaze3d.vertex.BufferBuilder.RenderedBuffer;
|
||||||
|
@ -29,7 +29,7 @@ public class VirtualRenderHelper {
|
||||||
public static final ModelProperty<Boolean> VIRTUAL_PROPERTY = new ModelProperty<>();
|
public static final ModelProperty<Boolean> VIRTUAL_PROPERTY = new ModelProperty<>();
|
||||||
public static final ModelData VIRTUAL_DATA = ModelData.builder().with(VIRTUAL_PROPERTY, true).build();
|
public static final ModelData VIRTUAL_DATA = ModelData.builder().with(VIRTUAL_PROPERTY, true).build();
|
||||||
|
|
||||||
private static final ModelCache<BlockState> VIRTUAL_BLOCKS = new ModelCache<>(state -> new BakedModelBuilder(ModelUtil.VANILLA_RENDERER.getBlockModel(state)).modelData(VIRTUAL_DATA).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);
|
private static final ThreadLocal<ThreadLocalObjects> THREAD_LOCAL_OBJECTS = ThreadLocal.withInitial(ThreadLocalObjects::new);
|
||||||
|
|
||||||
public static boolean isVirtual(ModelData data) {
|
public static boolean isVirtual(ModelData data) {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.util.stream.Stream;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.jozufozu.flywheel.Flywheel;
|
import com.jozufozu.flywheel.api.Flywheel;
|
||||||
import com.jozufozu.flywheel.api.backend.BackendManager;
|
import com.jozufozu.flywheel.api.backend.BackendManager;
|
||||||
import com.mojang.blaze3d.platform.GlUtil;
|
import com.mojang.blaze3d.platform.GlUtil;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
|
@ -73,7 +73,12 @@ public class DebugInformation {
|
||||||
|
|
||||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
||||||
DebugInfoSection.builder("Graphics")
|
DebugInfoSection.builder("Graphics")
|
||||||
.put("Flywheel Version", Flywheel.getVersion().toString())
|
.put("Flywheel Version", ModList.get()
|
||||||
|
.getModContainerById(Flywheel.ID)
|
||||||
|
.map(c -> c.getModInfo()
|
||||||
|
.getVersion()
|
||||||
|
.toString())
|
||||||
|
.orElse("None"))
|
||||||
.put("Flywheel Backend", () -> BackendManager.getBackend().toString())
|
.put("Flywheel Backend", () -> BackendManager.getBackend().toString())
|
||||||
.put("OpenGL Renderer", GlUtil::getRenderer)
|
.put("OpenGL Renderer", GlUtil::getRenderer)
|
||||||
.put("OpenGL Version", GlUtil::getOpenGLVersion)
|
.put("OpenGL Version", GlUtil::getOpenGLVersion)
|
||||||
|
|
|
@ -9,5 +9,5 @@ void flw_instanceVertex(in FlwInstance instance) {
|
||||||
|
|
||||||
flw_vertexPos.xyz = rotateByQuaternion(rotated - .5, instance.rotation) + instance.pos + .5;
|
flw_vertexPos.xyz = rotateByQuaternion(rotated - .5, instance.rotation) + instance.pos + .5;
|
||||||
flw_vertexNormal = rotateByQuaternion(rotateByQuaternion(flw_vertexNormal, kineticRot), instance.rotation);
|
flw_vertexNormal = rotateByQuaternion(rotateByQuaternion(flw_vertexNormal, kineticRot), instance.rotation);
|
||||||
flw_vertexLight = instance.light / 15.;
|
flw_vertexLight = vec2(instance.light) / 256.;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ void flw_instanceVertex(in FlwInstance instance) {
|
||||||
float scroll = fract(instance.speed * flw_renderTicks / (31.5 * 16.) + instance.offset) * scrollSize * instance.scrollMult;
|
float scroll = fract(instance.speed * flw_renderTicks / (31.5 * 16.) + instance.offset) * scrollSize * instance.scrollMult;
|
||||||
|
|
||||||
flw_vertexTexCoord = flw_vertexTexCoord - instance.sourceTexture + instance.scrollTexture.xy + vec2(0, scroll);
|
flw_vertexTexCoord = flw_vertexTexCoord - instance.sourceTexture + instance.scrollTexture.xy + vec2(0, scroll);
|
||||||
flw_vertexLight = instance.light / 15.;
|
flw_vertexLight = vec2(instance.light) / 256.;
|
||||||
flw_vertexOverlay = instance.overlay;
|
flw_vertexOverlay = instance.overlay;
|
||||||
|
|
||||||
#if defined(DEBUG_RAINBOW)
|
#if defined(DEBUG_RAINBOW)
|
||||||
|
|
|
@ -25,5 +25,5 @@ void flw_instanceVertex(in FlwInstance flap) {
|
||||||
|
|
||||||
flw_vertexPos.xyz = rotateByQuaternion(rotated - .5, orientation) + flap.instancePos + .5;
|
flw_vertexPos.xyz = rotateByQuaternion(rotated - .5, orientation) + flap.instancePos + .5;
|
||||||
flw_vertexNormal = rotateByQuaternion(rotateByQuaternion(flw_vertexNormal, flapRotation), orientation);
|
flw_vertexNormal = rotateByQuaternion(rotateByQuaternion(flw_vertexNormal, flapRotation), orientation);
|
||||||
flw_vertexLight = flap.light / 15.;
|
flw_vertexLight = vec2(flap.light) / 256.;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ void flw_instanceVertex(in FlwInstance instance) {
|
||||||
flw_vertexPos.xyz = worldPos.xyz + instance.pos + .5;
|
flw_vertexPos.xyz = worldPos.xyz + instance.pos + .5;
|
||||||
|
|
||||||
flw_vertexNormal = spin * flw_vertexNormal;
|
flw_vertexNormal = spin * flw_vertexNormal;
|
||||||
flw_vertexLight = instance.light / 15.;
|
flw_vertexLight = vec2(instance.light) / 256.;
|
||||||
flw_vertexOverlay = instance.overlay;
|
flw_vertexOverlay = instance.overlay;
|
||||||
|
|
||||||
#if defined(DEBUG_RAINBOW)
|
#if defined(DEBUG_RAINBOW)
|
||||||
|
|
Loading…
Add table
Reference in a new issue