What's in a name

- Rename all *Instance -> *Visual.
- FlapData -> FlapInstance.
- Rename VisualizationContext variables.
This commit is contained in:
Jozufozu 2024-01-17 13:50:26 -08:00
parent 5bac9e5224
commit 1c46bc8ae1
74 changed files with 431 additions and 453 deletions

View file

@ -7,34 +7,34 @@ import com.simibubi.create.content.contraptions.actors.contraptionControls.Contr
import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsRenderer; import com.simibubi.create.content.contraptions.actors.contraptionControls.ContraptionControlsRenderer;
import com.simibubi.create.content.contraptions.actors.harvester.HarvesterBlockEntity; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterBlockEntity;
import com.simibubi.create.content.contraptions.actors.harvester.HarvesterRenderer; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterRenderer;
import com.simibubi.create.content.contraptions.actors.psi.PSIInstance; import com.simibubi.create.content.contraptions.actors.psi.PSIVisual;
import com.simibubi.create.content.contraptions.actors.psi.PortableFluidInterfaceBlockEntity; import com.simibubi.create.content.contraptions.actors.psi.PortableFluidInterfaceBlockEntity;
import com.simibubi.create.content.contraptions.actors.psi.PortableItemInterfaceBlockEntity; import com.simibubi.create.content.contraptions.actors.psi.PortableItemInterfaceBlockEntity;
import com.simibubi.create.content.contraptions.actors.psi.PortableStorageInterfaceRenderer; import com.simibubi.create.content.contraptions.actors.psi.PortableStorageInterfaceRenderer;
import com.simibubi.create.content.contraptions.actors.roller.RollerBlockEntity; import com.simibubi.create.content.contraptions.actors.roller.RollerBlockEntity;
import com.simibubi.create.content.contraptions.actors.roller.RollerRenderer; import com.simibubi.create.content.contraptions.actors.roller.RollerRenderer;
import com.simibubi.create.content.contraptions.bearing.BearingInstance;
import com.simibubi.create.content.contraptions.bearing.BearingRenderer; import com.simibubi.create.content.contraptions.bearing.BearingRenderer;
import com.simibubi.create.content.contraptions.bearing.BearingVisual;
import com.simibubi.create.content.contraptions.bearing.ClockworkBearingBlockEntity; import com.simibubi.create.content.contraptions.bearing.ClockworkBearingBlockEntity;
import com.simibubi.create.content.contraptions.bearing.MechanicalBearingBlockEntity; import com.simibubi.create.content.contraptions.bearing.MechanicalBearingBlockEntity;
import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlockEntity; import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlockEntity;
import com.simibubi.create.content.contraptions.chassis.ChassisBlockEntity; import com.simibubi.create.content.contraptions.chassis.ChassisBlockEntity;
import com.simibubi.create.content.contraptions.chassis.StickerBlockEntity; import com.simibubi.create.content.contraptions.chassis.StickerBlockEntity;
import com.simibubi.create.content.contraptions.chassis.StickerInstance;
import com.simibubi.create.content.contraptions.chassis.StickerRenderer; import com.simibubi.create.content.contraptions.chassis.StickerRenderer;
import com.simibubi.create.content.contraptions.chassis.StickerVisual;
import com.simibubi.create.content.contraptions.elevator.ElevatorContactBlockEntity; import com.simibubi.create.content.contraptions.elevator.ElevatorContactBlockEntity;
import com.simibubi.create.content.contraptions.elevator.ElevatorPulleyBlockEntity; import com.simibubi.create.content.contraptions.elevator.ElevatorPulleyBlockEntity;
import com.simibubi.create.content.contraptions.elevator.ElevatorPulleyRenderer; import com.simibubi.create.content.contraptions.elevator.ElevatorPulleyRenderer;
import com.simibubi.create.content.contraptions.gantry.GantryCarriageBlockEntity; import com.simibubi.create.content.contraptions.gantry.GantryCarriageBlockEntity;
import com.simibubi.create.content.contraptions.gantry.GantryCarriageInstance;
import com.simibubi.create.content.contraptions.gantry.GantryCarriageRenderer; import com.simibubi.create.content.contraptions.gantry.GantryCarriageRenderer;
import com.simibubi.create.content.contraptions.gantry.GantryCarriageVisual;
import com.simibubi.create.content.contraptions.mounted.CartAssemblerBlockEntity; import com.simibubi.create.content.contraptions.mounted.CartAssemblerBlockEntity;
import com.simibubi.create.content.contraptions.piston.MechanicalPistonBlockEntity; import com.simibubi.create.content.contraptions.piston.MechanicalPistonBlockEntity;
import com.simibubi.create.content.contraptions.piston.MechanicalPistonRenderer; import com.simibubi.create.content.contraptions.piston.MechanicalPistonRenderer;
import com.simibubi.create.content.contraptions.pulley.HosePulleyInstance; import com.simibubi.create.content.contraptions.pulley.HosePulleyVisual;
import com.simibubi.create.content.contraptions.pulley.PulleyBlockEntity; import com.simibubi.create.content.contraptions.pulley.PulleyBlockEntity;
import com.simibubi.create.content.contraptions.pulley.PulleyRenderer; import com.simibubi.create.content.contraptions.pulley.PulleyRenderer;
import com.simibubi.create.content.contraptions.pulley.RopePulleyInstance; import com.simibubi.create.content.contraptions.pulley.RopePulleyVisual;
import com.simibubi.create.content.decoration.copycat.CopycatBlockEntity; import com.simibubi.create.content.decoration.copycat.CopycatBlockEntity;
import com.simibubi.create.content.decoration.placard.PlacardBlockEntity; import com.simibubi.create.content.decoration.placard.PlacardBlockEntity;
import com.simibubi.create.content.decoration.placard.PlacardRenderer; import com.simibubi.create.content.decoration.placard.PlacardRenderer;
@ -43,13 +43,13 @@ import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorRenderer;
import com.simibubi.create.content.decoration.steamWhistle.WhistleBlockEntity; import com.simibubi.create.content.decoration.steamWhistle.WhistleBlockEntity;
import com.simibubi.create.content.decoration.steamWhistle.WhistleRenderer; import com.simibubi.create.content.decoration.steamWhistle.WhistleRenderer;
import com.simibubi.create.content.equipment.armor.BacktankBlockEntity; import com.simibubi.create.content.equipment.armor.BacktankBlockEntity;
import com.simibubi.create.content.equipment.armor.BacktankInstance;
import com.simibubi.create.content.equipment.armor.BacktankRenderer; import com.simibubi.create.content.equipment.armor.BacktankRenderer;
import com.simibubi.create.content.equipment.armor.BacktankVisual;
import com.simibubi.create.content.equipment.bell.BellRenderer; import com.simibubi.create.content.equipment.bell.BellRenderer;
import com.simibubi.create.content.equipment.bell.HauntedBellBlockEntity; import com.simibubi.create.content.equipment.bell.HauntedBellBlockEntity;
import com.simibubi.create.content.equipment.bell.PeculiarBellBlockEntity; import com.simibubi.create.content.equipment.bell.PeculiarBellBlockEntity;
import com.simibubi.create.content.equipment.clipboard.ClipboardBlockEntity; import com.simibubi.create.content.equipment.clipboard.ClipboardBlockEntity;
import com.simibubi.create.content.equipment.toolbox.ToolBoxInstance; import com.simibubi.create.content.equipment.toolbox.ToolBoxVisual;
import com.simibubi.create.content.equipment.toolbox.ToolboxBlockEntity; import com.simibubi.create.content.equipment.toolbox.ToolboxBlockEntity;
import com.simibubi.create.content.equipment.toolbox.ToolboxRenderer; import com.simibubi.create.content.equipment.toolbox.ToolboxRenderer;
import com.simibubi.create.content.fluids.drain.ItemDrainBlockEntity; import com.simibubi.create.content.fluids.drain.ItemDrainBlockEntity;
@ -61,99 +61,99 @@ import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlockEntity;
import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity;
import com.simibubi.create.content.fluids.pipes.TransparentStraightPipeRenderer; import com.simibubi.create.content.fluids.pipes.TransparentStraightPipeRenderer;
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlockEntity; import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlockEntity;
import com.simibubi.create.content.fluids.pipes.valve.FluidValveInstance;
import com.simibubi.create.content.fluids.pipes.valve.FluidValveRenderer; import com.simibubi.create.content.fluids.pipes.valve.FluidValveRenderer;
import com.simibubi.create.content.fluids.pipes.valve.FluidValveVisual;
import com.simibubi.create.content.fluids.pump.PumpBlockEntity; import com.simibubi.create.content.fluids.pump.PumpBlockEntity;
import com.simibubi.create.content.fluids.pump.PumpCogInstance; import com.simibubi.create.content.fluids.pump.PumpCogVisual;
import com.simibubi.create.content.fluids.pump.PumpRenderer; import com.simibubi.create.content.fluids.pump.PumpRenderer;
import com.simibubi.create.content.fluids.spout.SpoutBlockEntity; import com.simibubi.create.content.fluids.spout.SpoutBlockEntity;
import com.simibubi.create.content.fluids.spout.SpoutRenderer; import com.simibubi.create.content.fluids.spout.SpoutRenderer;
import com.simibubi.create.content.fluids.tank.CreativeFluidTankBlockEntity; import com.simibubi.create.content.fluids.tank.CreativeFluidTankBlockEntity;
import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity; import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity;
import com.simibubi.create.content.fluids.tank.FluidTankRenderer; import com.simibubi.create.content.fluids.tank.FluidTankRenderer;
import com.simibubi.create.content.kinetics.base.CutoutRotatingInstance; import com.simibubi.create.content.kinetics.base.CutoutRotatingVisual;
import com.simibubi.create.content.kinetics.base.HalfShaftInstance; import com.simibubi.create.content.kinetics.base.HalfShaftVisual;
import com.simibubi.create.content.kinetics.base.HorizontalHalfShaftInstance; import com.simibubi.create.content.kinetics.base.HorizontalHalfShaftVisual;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.base.ShaftInstance;
import com.simibubi.create.content.kinetics.base.ShaftRenderer; import com.simibubi.create.content.kinetics.base.ShaftRenderer;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.content.kinetics.belt.BeltBlockEntity; import com.simibubi.create.content.kinetics.belt.BeltBlockEntity;
import com.simibubi.create.content.kinetics.belt.BeltVisual;
import com.simibubi.create.content.kinetics.belt.BeltRenderer; import com.simibubi.create.content.kinetics.belt.BeltRenderer;
import com.simibubi.create.content.kinetics.belt.BeltVisual;
import com.simibubi.create.content.kinetics.chainDrive.ChainGearshiftBlockEntity; import com.simibubi.create.content.kinetics.chainDrive.ChainGearshiftBlockEntity;
import com.simibubi.create.content.kinetics.clock.CuckooClockBlockEntity; import com.simibubi.create.content.kinetics.clock.CuckooClockBlockEntity;
import com.simibubi.create.content.kinetics.clock.CuckooClockRenderer; import com.simibubi.create.content.kinetics.clock.CuckooClockRenderer;
import com.simibubi.create.content.kinetics.crafter.MechanicalCrafterBlockEntity; import com.simibubi.create.content.kinetics.crafter.MechanicalCrafterBlockEntity;
import com.simibubi.create.content.kinetics.crafter.MechanicalCrafterRenderer; import com.simibubi.create.content.kinetics.crafter.MechanicalCrafterRenderer;
import com.simibubi.create.content.kinetics.crafter.ShaftlessCogwheelInstance; import com.simibubi.create.content.kinetics.crafter.ShaftlessCogwheelVisual;
import com.simibubi.create.content.kinetics.crank.HandCrankBlockEntity; import com.simibubi.create.content.kinetics.crank.HandCrankBlockEntity;
import com.simibubi.create.content.kinetics.crank.HandCrankInstance;
import com.simibubi.create.content.kinetics.crank.HandCrankRenderer; import com.simibubi.create.content.kinetics.crank.HandCrankRenderer;
import com.simibubi.create.content.kinetics.crank.HandCrankVisual;
import com.simibubi.create.content.kinetics.crank.ValveHandleBlockEntity; import com.simibubi.create.content.kinetics.crank.ValveHandleBlockEntity;
import com.simibubi.create.content.kinetics.crusher.CrushingWheelBlockEntity; import com.simibubi.create.content.kinetics.crusher.CrushingWheelBlockEntity;
import com.simibubi.create.content.kinetics.crusher.CrushingWheelControllerBlockEntity; import com.simibubi.create.content.kinetics.crusher.CrushingWheelControllerBlockEntity;
import com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity; import com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity;
import com.simibubi.create.content.kinetics.deployer.DeployerInstance;
import com.simibubi.create.content.kinetics.deployer.DeployerRenderer; import com.simibubi.create.content.kinetics.deployer.DeployerRenderer;
import com.simibubi.create.content.kinetics.deployer.DeployerVisual;
import com.simibubi.create.content.kinetics.drill.DrillBlockEntity; import com.simibubi.create.content.kinetics.drill.DrillBlockEntity;
import com.simibubi.create.content.kinetics.drill.DrillInstance;
import com.simibubi.create.content.kinetics.drill.DrillRenderer; import com.simibubi.create.content.kinetics.drill.DrillRenderer;
import com.simibubi.create.content.kinetics.drill.DrillVisual;
import com.simibubi.create.content.kinetics.fan.EncasedFanBlockEntity; import com.simibubi.create.content.kinetics.fan.EncasedFanBlockEntity;
import com.simibubi.create.content.kinetics.fan.EncasedFanRenderer; import com.simibubi.create.content.kinetics.fan.EncasedFanRenderer;
import com.simibubi.create.content.kinetics.fan.FanInstance; import com.simibubi.create.content.kinetics.fan.FanVisual;
import com.simibubi.create.content.kinetics.fan.NozzleBlockEntity; import com.simibubi.create.content.kinetics.fan.NozzleBlockEntity;
import com.simibubi.create.content.kinetics.flywheel.FlywheelBlockEntity; import com.simibubi.create.content.kinetics.flywheel.FlywheelBlockEntity;
import com.simibubi.create.content.kinetics.flywheel.FlywheelInstance;
import com.simibubi.create.content.kinetics.flywheel.FlywheelRenderer; import com.simibubi.create.content.kinetics.flywheel.FlywheelRenderer;
import com.simibubi.create.content.kinetics.flywheel.FlywheelVisual;
import com.simibubi.create.content.kinetics.gantry.GantryShaftBlockEntity; import com.simibubi.create.content.kinetics.gantry.GantryShaftBlockEntity;
import com.simibubi.create.content.kinetics.gauge.GaugeInstance;
import com.simibubi.create.content.kinetics.gauge.GaugeRenderer; import com.simibubi.create.content.kinetics.gauge.GaugeRenderer;
import com.simibubi.create.content.kinetics.gauge.GaugeVisual;
import com.simibubi.create.content.kinetics.gauge.SpeedGaugeBlockEntity; import com.simibubi.create.content.kinetics.gauge.SpeedGaugeBlockEntity;
import com.simibubi.create.content.kinetics.gauge.StressGaugeBlockEntity; import com.simibubi.create.content.kinetics.gauge.StressGaugeBlockEntity;
import com.simibubi.create.content.kinetics.gearbox.GearboxBlockEntity; import com.simibubi.create.content.kinetics.gearbox.GearboxBlockEntity;
import com.simibubi.create.content.kinetics.gearbox.GearboxInstance;
import com.simibubi.create.content.kinetics.gearbox.GearboxRenderer; import com.simibubi.create.content.kinetics.gearbox.GearboxRenderer;
import com.simibubi.create.content.kinetics.gearbox.GearboxVisual;
import com.simibubi.create.content.kinetics.mechanicalArm.ArmBlockEntity; import com.simibubi.create.content.kinetics.mechanicalArm.ArmBlockEntity;
import com.simibubi.create.content.kinetics.mechanicalArm.ArmInstance;
import com.simibubi.create.content.kinetics.mechanicalArm.ArmRenderer; import com.simibubi.create.content.kinetics.mechanicalArm.ArmRenderer;
import com.simibubi.create.content.kinetics.mechanicalArm.ArmVisual;
import com.simibubi.create.content.kinetics.millstone.MillstoneBlockEntity; import com.simibubi.create.content.kinetics.millstone.MillstoneBlockEntity;
import com.simibubi.create.content.kinetics.millstone.MillstoneCogInstance; import com.simibubi.create.content.kinetics.millstone.MillstoneCogVisual;
import com.simibubi.create.content.kinetics.millstone.MillstoneRenderer; import com.simibubi.create.content.kinetics.millstone.MillstoneRenderer;
import com.simibubi.create.content.kinetics.mixer.MechanicalMixerBlockEntity; import com.simibubi.create.content.kinetics.mixer.MechanicalMixerBlockEntity;
import com.simibubi.create.content.kinetics.mixer.MechanicalMixerRenderer; import com.simibubi.create.content.kinetics.mixer.MechanicalMixerRenderer;
import com.simibubi.create.content.kinetics.mixer.MixerInstance; import com.simibubi.create.content.kinetics.mixer.MixerVisual;
import com.simibubi.create.content.kinetics.motor.CreativeMotorBlockEntity; import com.simibubi.create.content.kinetics.motor.CreativeMotorBlockEntity;
import com.simibubi.create.content.kinetics.motor.CreativeMotorRenderer; import com.simibubi.create.content.kinetics.motor.CreativeMotorRenderer;
import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity; import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity;
import com.simibubi.create.content.kinetics.press.MechanicalPressRenderer; import com.simibubi.create.content.kinetics.press.MechanicalPressRenderer;
import com.simibubi.create.content.kinetics.press.PressInstance; import com.simibubi.create.content.kinetics.press.PressVisual;
import com.simibubi.create.content.kinetics.saw.SawBlockEntity; import com.simibubi.create.content.kinetics.saw.SawBlockEntity;
import com.simibubi.create.content.kinetics.saw.SawInstance;
import com.simibubi.create.content.kinetics.saw.SawRenderer; import com.simibubi.create.content.kinetics.saw.SawRenderer;
import com.simibubi.create.content.kinetics.saw.SawVisual;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntity; import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntity;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityInstance;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity;
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogInstance;
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogRenderer; import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogRenderer;
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogVisual;
import com.simibubi.create.content.kinetics.speedController.SpeedControllerBlockEntity; import com.simibubi.create.content.kinetics.speedController.SpeedControllerBlockEntity;
import com.simibubi.create.content.kinetics.speedController.SpeedControllerRenderer; import com.simibubi.create.content.kinetics.speedController.SpeedControllerRenderer;
import com.simibubi.create.content.kinetics.steamEngine.PoweredShaftBlockEntity; import com.simibubi.create.content.kinetics.steamEngine.PoweredShaftBlockEntity;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineBlockEntity; import com.simibubi.create.content.kinetics.steamEngine.SteamEngineBlockEntity;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineInstance;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineRenderer; import com.simibubi.create.content.kinetics.steamEngine.SteamEngineRenderer;
import com.simibubi.create.content.kinetics.steamEngine.SteamEngineVisual;
import com.simibubi.create.content.kinetics.transmission.ClutchBlockEntity; import com.simibubi.create.content.kinetics.transmission.ClutchBlockEntity;
import com.simibubi.create.content.kinetics.transmission.GearshiftBlockEntity; import com.simibubi.create.content.kinetics.transmission.GearshiftBlockEntity;
import com.simibubi.create.content.kinetics.transmission.SplitShaftInstance;
import com.simibubi.create.content.kinetics.transmission.SplitShaftRenderer; import com.simibubi.create.content.kinetics.transmission.SplitShaftRenderer;
import com.simibubi.create.content.kinetics.transmission.SplitShaftVisual;
import com.simibubi.create.content.kinetics.transmission.sequencer.SequencedGearshiftBlockEntity; import com.simibubi.create.content.kinetics.transmission.sequencer.SequencedGearshiftBlockEntity;
import com.simibubi.create.content.kinetics.turntable.TurntableBlockEntity; import com.simibubi.create.content.kinetics.turntable.TurntableBlockEntity;
import com.simibubi.create.content.kinetics.waterwheel.LargeWaterWheelBlockEntity; import com.simibubi.create.content.kinetics.waterwheel.LargeWaterWheelBlockEntity;
import com.simibubi.create.content.kinetics.waterwheel.WaterWheelBlockEntity; import com.simibubi.create.content.kinetics.waterwheel.WaterWheelBlockEntity;
import com.simibubi.create.content.kinetics.waterwheel.WaterWheelInstance;
import com.simibubi.create.content.kinetics.waterwheel.WaterWheelRenderer; import com.simibubi.create.content.kinetics.waterwheel.WaterWheelRenderer;
import com.simibubi.create.content.kinetics.waterwheel.WaterWheelVisual;
import com.simibubi.create.content.logistics.chute.ChuteBlockEntity; import com.simibubi.create.content.logistics.chute.ChuteBlockEntity;
import com.simibubi.create.content.logistics.chute.ChuteRenderer; import com.simibubi.create.content.logistics.chute.ChuteRenderer;
import com.simibubi.create.content.logistics.chute.SmartChuteBlockEntity; import com.simibubi.create.content.logistics.chute.SmartChuteBlockEntity;
@ -162,14 +162,14 @@ import com.simibubi.create.content.logistics.crate.CreativeCrateBlockEntity;
import com.simibubi.create.content.logistics.depot.DepotBlockEntity; import com.simibubi.create.content.logistics.depot.DepotBlockEntity;
import com.simibubi.create.content.logistics.depot.DepotRenderer; import com.simibubi.create.content.logistics.depot.DepotRenderer;
import com.simibubi.create.content.logistics.depot.EjectorBlockEntity; import com.simibubi.create.content.logistics.depot.EjectorBlockEntity;
import com.simibubi.create.content.logistics.depot.EjectorInstance;
import com.simibubi.create.content.logistics.depot.EjectorRenderer; import com.simibubi.create.content.logistics.depot.EjectorRenderer;
import com.simibubi.create.content.logistics.depot.EjectorVisual;
import com.simibubi.create.content.logistics.funnel.FunnelBlockEntity; import com.simibubi.create.content.logistics.funnel.FunnelBlockEntity;
import com.simibubi.create.content.logistics.funnel.FunnelInstance;
import com.simibubi.create.content.logistics.funnel.FunnelRenderer; import com.simibubi.create.content.logistics.funnel.FunnelRenderer;
import com.simibubi.create.content.logistics.funnel.FunnelVisual;
import com.simibubi.create.content.logistics.tunnel.BeltTunnelBlockEntity; import com.simibubi.create.content.logistics.tunnel.BeltTunnelBlockEntity;
import com.simibubi.create.content.logistics.tunnel.BeltTunnelInstance;
import com.simibubi.create.content.logistics.tunnel.BeltTunnelRenderer; import com.simibubi.create.content.logistics.tunnel.BeltTunnelRenderer;
import com.simibubi.create.content.logistics.tunnel.BeltTunnelVisual;
import com.simibubi.create.content.logistics.tunnel.BrassTunnelBlockEntity; import com.simibubi.create.content.logistics.tunnel.BrassTunnelBlockEntity;
import com.simibubi.create.content.logistics.vault.ItemVaultBlockEntity; import com.simibubi.create.content.logistics.vault.ItemVaultBlockEntity;
import com.simibubi.create.content.processing.basin.BasinBlockEntity; import com.simibubi.create.content.processing.basin.BasinBlockEntity;
@ -177,10 +177,10 @@ import com.simibubi.create.content.processing.basin.BasinRenderer;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity; import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity;
import com.simibubi.create.content.processing.burner.BlazeBurnerRenderer; import com.simibubi.create.content.processing.burner.BlazeBurnerRenderer;
import com.simibubi.create.content.redstone.analogLever.AnalogLeverBlockEntity; import com.simibubi.create.content.redstone.analogLever.AnalogLeverBlockEntity;
import com.simibubi.create.content.redstone.analogLever.AnalogLeverInstance;
import com.simibubi.create.content.redstone.analogLever.AnalogLeverRenderer; import com.simibubi.create.content.redstone.analogLever.AnalogLeverRenderer;
import com.simibubi.create.content.redstone.diodes.BrassDiodeInstance; import com.simibubi.create.content.redstone.analogLever.AnalogLeverVisual;
import com.simibubi.create.content.redstone.diodes.BrassDiodeRenderer; import com.simibubi.create.content.redstone.diodes.BrassDiodeRenderer;
import com.simibubi.create.content.redstone.diodes.BrassDiodeVisual;
import com.simibubi.create.content.redstone.diodes.PulseExtenderBlockEntity; import com.simibubi.create.content.redstone.diodes.PulseExtenderBlockEntity;
import com.simibubi.create.content.redstone.diodes.PulseRepeaterBlockEntity; import com.simibubi.create.content.redstone.diodes.PulseRepeaterBlockEntity;
import com.simibubi.create.content.redstone.displayLink.DisplayLinkBlockEntity; import com.simibubi.create.content.redstone.displayLink.DisplayLinkBlockEntity;
@ -195,8 +195,8 @@ import com.simibubi.create.content.redstone.nixieTube.NixieTubeRenderer;
import com.simibubi.create.content.redstone.smartObserver.SmartObserverBlockEntity; import com.simibubi.create.content.redstone.smartObserver.SmartObserverBlockEntity;
import com.simibubi.create.content.redstone.thresholdSwitch.ThresholdSwitchBlockEntity; import com.simibubi.create.content.redstone.thresholdSwitch.ThresholdSwitchBlockEntity;
import com.simibubi.create.content.schematics.cannon.SchematicannonBlockEntity; import com.simibubi.create.content.schematics.cannon.SchematicannonBlockEntity;
import com.simibubi.create.content.schematics.cannon.SchematicannonInstance;
import com.simibubi.create.content.schematics.cannon.SchematicannonRenderer; import com.simibubi.create.content.schematics.cannon.SchematicannonRenderer;
import com.simibubi.create.content.schematics.cannon.SchematicannonVisual;
import com.simibubi.create.content.schematics.table.SchematicTableBlockEntity; import com.simibubi.create.content.schematics.table.SchematicTableBlockEntity;
import com.simibubi.create.content.trains.bogey.BogeyBlockEntityRenderer; import com.simibubi.create.content.trains.bogey.BogeyBlockEntityRenderer;
import com.simibubi.create.content.trains.bogey.StandardBogeyBlockEntity; import com.simibubi.create.content.trains.bogey.StandardBogeyBlockEntity;
@ -210,9 +210,9 @@ import com.simibubi.create.content.trains.station.StationBlockEntity;
import com.simibubi.create.content.trains.station.StationRenderer; import com.simibubi.create.content.trains.station.StationRenderer;
import com.simibubi.create.content.trains.track.FakeTrackBlockEntity; import com.simibubi.create.content.trains.track.FakeTrackBlockEntity;
import com.simibubi.create.content.trains.track.TrackBlockEntity; import com.simibubi.create.content.trains.track.TrackBlockEntity;
import com.simibubi.create.content.trains.track.TrackInstance;
import com.simibubi.create.content.trains.track.TrackMaterial; import com.simibubi.create.content.trains.track.TrackMaterial;
import com.simibubi.create.content.trains.track.TrackRenderer; import com.simibubi.create.content.trains.track.TrackRenderer;
import com.simibubi.create.content.trains.track.TrackVisual;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer; import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.tterrag.registrate.util.entry.BlockEntityEntry; import com.tterrag.registrate.util.entry.BlockEntityEntry;
@ -221,7 +221,7 @@ public class AllBlockEntityTypes {
// Schematics // Schematics
public static final BlockEntityEntry<SchematicannonBlockEntity> SCHEMATICANNON = REGISTRATE public static final BlockEntityEntry<SchematicannonBlockEntity> SCHEMATICANNON = REGISTRATE
.blockEntity("schematicannon", SchematicannonBlockEntity::new) .blockEntity("schematicannon", SchematicannonBlockEntity::new)
.instance(() -> SchematicannonInstance::new) .instance(() -> SchematicannonVisual::new)
.validBlocks(AllBlocks.SCHEMATICANNON) .validBlocks(AllBlocks.SCHEMATICANNON)
.renderer(() -> SchematicannonRenderer::new) .renderer(() -> SchematicannonRenderer::new)
.register(); .register();
@ -234,28 +234,28 @@ public class AllBlockEntityTypes {
// Kinetics // Kinetics
public static final BlockEntityEntry<BracketedKineticBlockEntity> BRACKETED_KINETIC = REGISTRATE public static final BlockEntityEntry<BracketedKineticBlockEntity> BRACKETED_KINETIC = REGISTRATE
.blockEntity("simple_kinetic", BracketedKineticBlockEntity::new) .blockEntity("simple_kinetic", BracketedKineticBlockEntity::new)
.instance(() -> BracketedKineticBlockEntityInstance::new, false) .instance(() -> BracketedKineticBlockEntityVisual::new, false)
.validBlocks(AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL) .validBlocks(AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL)
.renderer(() -> BracketedKineticBlockEntityRenderer::new) .renderer(() -> BracketedKineticBlockEntityRenderer::new)
.register(); .register();
public static final BlockEntityEntry<CreativeMotorBlockEntity> MOTOR = REGISTRATE public static final BlockEntityEntry<CreativeMotorBlockEntity> MOTOR = REGISTRATE
.blockEntity("motor", CreativeMotorBlockEntity::new) .blockEntity("motor", CreativeMotorBlockEntity::new)
.instance(() -> HalfShaftInstance::new, false) .instance(() -> HalfShaftVisual::new, false)
.validBlocks(AllBlocks.CREATIVE_MOTOR) .validBlocks(AllBlocks.CREATIVE_MOTOR)
.renderer(() -> CreativeMotorRenderer::new) .renderer(() -> CreativeMotorRenderer::new)
.register(); .register();
public static final BlockEntityEntry<GearboxBlockEntity> GEARBOX = REGISTRATE public static final BlockEntityEntry<GearboxBlockEntity> GEARBOX = REGISTRATE
.blockEntity("gearbox", GearboxBlockEntity::new) .blockEntity("gearbox", GearboxBlockEntity::new)
.instance(() -> GearboxInstance::new, false) .instance(() -> GearboxVisual::new, false)
.validBlocks(AllBlocks.GEARBOX) .validBlocks(AllBlocks.GEARBOX)
.renderer(() -> GearboxRenderer::new) .renderer(() -> GearboxRenderer::new)
.register(); .register();
public static final BlockEntityEntry<KineticBlockEntity> ENCASED_SHAFT = REGISTRATE public static final BlockEntityEntry<KineticBlockEntity> ENCASED_SHAFT = REGISTRATE
.blockEntity("encased_shaft", KineticBlockEntity::new) .blockEntity("encased_shaft", KineticBlockEntity::new)
.instance(() -> ShaftInstance::new, false) .instance(() -> ShaftVisual::new, false)
.validBlocks(AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT, AllBlocks.ENCASED_CHAIN_DRIVE, .validBlocks(AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT, AllBlocks.ENCASED_CHAIN_DRIVE,
AllBlocks.METAL_GIRDER_ENCASED_SHAFT) AllBlocks.METAL_GIRDER_ENCASED_SHAFT)
.renderer(() -> ShaftRenderer::new) .renderer(() -> ShaftRenderer::new)
@ -263,28 +263,28 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<SimpleKineticBlockEntity> ENCASED_COGWHEEL = REGISTRATE public static final BlockEntityEntry<SimpleKineticBlockEntity> ENCASED_COGWHEEL = REGISTRATE
.blockEntity("encased_cogwheel", SimpleKineticBlockEntity::new) .blockEntity("encased_cogwheel", SimpleKineticBlockEntity::new)
.instance(() -> EncasedCogInstance::small, false) .instance(() -> EncasedCogVisual::small, false)
.validBlocks(AllBlocks.ANDESITE_ENCASED_COGWHEEL, AllBlocks.BRASS_ENCASED_COGWHEEL) .validBlocks(AllBlocks.ANDESITE_ENCASED_COGWHEEL, AllBlocks.BRASS_ENCASED_COGWHEEL)
.renderer(() -> EncasedCogRenderer::small) .renderer(() -> EncasedCogRenderer::small)
.register(); .register();
public static final BlockEntityEntry<SimpleKineticBlockEntity> ENCASED_LARGE_COGWHEEL = REGISTRATE public static final BlockEntityEntry<SimpleKineticBlockEntity> ENCASED_LARGE_COGWHEEL = REGISTRATE
.blockEntity("encased_large_cogwheel", SimpleKineticBlockEntity::new) .blockEntity("encased_large_cogwheel", SimpleKineticBlockEntity::new)
.instance(() -> EncasedCogInstance::large, false) .instance(() -> EncasedCogVisual::large, false)
.validBlocks(AllBlocks.ANDESITE_ENCASED_LARGE_COGWHEEL, AllBlocks.BRASS_ENCASED_LARGE_COGWHEEL) .validBlocks(AllBlocks.ANDESITE_ENCASED_LARGE_COGWHEEL, AllBlocks.BRASS_ENCASED_LARGE_COGWHEEL)
.renderer(() -> EncasedCogRenderer::large) .renderer(() -> EncasedCogRenderer::large)
.register(); .register();
public static final BlockEntityEntry<ChainGearshiftBlockEntity> ADJUSTABLE_CHAIN_GEARSHIFT = REGISTRATE public static final BlockEntityEntry<ChainGearshiftBlockEntity> ADJUSTABLE_CHAIN_GEARSHIFT = REGISTRATE
.blockEntity("adjustable_chain_gearshift", ChainGearshiftBlockEntity::new) .blockEntity("adjustable_chain_gearshift", ChainGearshiftBlockEntity::new)
.instance(() -> ShaftInstance::new, false) .instance(() -> ShaftVisual::new, false)
.validBlocks(AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) .validBlocks(AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT)
.renderer(() -> ShaftRenderer::new) .renderer(() -> ShaftRenderer::new)
.register(); .register();
public static final BlockEntityEntry<EncasedFanBlockEntity> ENCASED_FAN = REGISTRATE public static final BlockEntityEntry<EncasedFanBlockEntity> ENCASED_FAN = REGISTRATE
.blockEntity("encased_fan", EncasedFanBlockEntity::new) .blockEntity("encased_fan", EncasedFanBlockEntity::new)
.instance(() -> FanInstance::new, false) .instance(() -> FanVisual::new, false)
.validBlocks(AllBlocks.ENCASED_FAN) .validBlocks(AllBlocks.ENCASED_FAN)
.renderer(() -> EncasedFanRenderer::new) .renderer(() -> EncasedFanRenderer::new)
.register(); .register();
@ -297,35 +297,35 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<ClutchBlockEntity> CLUTCH = REGISTRATE public static final BlockEntityEntry<ClutchBlockEntity> CLUTCH = REGISTRATE
.blockEntity("clutch", ClutchBlockEntity::new) .blockEntity("clutch", ClutchBlockEntity::new)
.instance(() -> SplitShaftInstance::new, false) .instance(() -> SplitShaftVisual::new, false)
.validBlocks(AllBlocks.CLUTCH) .validBlocks(AllBlocks.CLUTCH)
.renderer(() -> SplitShaftRenderer::new) .renderer(() -> SplitShaftRenderer::new)
.register(); .register();
public static final BlockEntityEntry<GearshiftBlockEntity> GEARSHIFT = REGISTRATE public static final BlockEntityEntry<GearshiftBlockEntity> GEARSHIFT = REGISTRATE
.blockEntity("gearshift", GearshiftBlockEntity::new) .blockEntity("gearshift", GearshiftBlockEntity::new)
.instance(() -> SplitShaftInstance::new, false) .instance(() -> SplitShaftVisual::new, false)
.validBlocks(AllBlocks.GEARSHIFT) .validBlocks(AllBlocks.GEARSHIFT)
.renderer(() -> SplitShaftRenderer::new) .renderer(() -> SplitShaftRenderer::new)
.register(); .register();
public static final BlockEntityEntry<TurntableBlockEntity> TURNTABLE = REGISTRATE public static final BlockEntityEntry<TurntableBlockEntity> TURNTABLE = REGISTRATE
.blockEntity("turntable", TurntableBlockEntity::new) .blockEntity("turntable", TurntableBlockEntity::new)
.instance(() -> SingleRotatingInstance::new, false) .instance(() -> SingleRotatingVisual::new, false)
.validBlocks(AllBlocks.TURNTABLE) .validBlocks(AllBlocks.TURNTABLE)
.renderer(() -> KineticBlockEntityRenderer::new) .renderer(() -> KineticBlockEntityRenderer::new)
.register(); .register();
public static final BlockEntityEntry<HandCrankBlockEntity> HAND_CRANK = REGISTRATE public static final BlockEntityEntry<HandCrankBlockEntity> HAND_CRANK = REGISTRATE
.blockEntity("hand_crank", HandCrankBlockEntity::new) .blockEntity("hand_crank", HandCrankBlockEntity::new)
.instance(() -> HandCrankInstance::new) .instance(() -> HandCrankVisual::new)
.validBlocks(AllBlocks.HAND_CRANK) .validBlocks(AllBlocks.HAND_CRANK)
.renderer(() -> HandCrankRenderer::new) .renderer(() -> HandCrankRenderer::new)
.register(); .register();
public static final BlockEntityEntry<ValveHandleBlockEntity> VALVE_HANDLE = REGISTRATE public static final BlockEntityEntry<ValveHandleBlockEntity> VALVE_HANDLE = REGISTRATE
.blockEntity("valve_handle", ValveHandleBlockEntity::new) .blockEntity("valve_handle", ValveHandleBlockEntity::new)
.instance(() -> HandCrankInstance::new) .instance(() -> HandCrankVisual::new)
.validBlocks(AllBlocks.COPPER_VALVE_HANDLE) .validBlocks(AllBlocks.COPPER_VALVE_HANDLE)
.validBlocks(AllBlocks.DYED_VALVE_HANDLES.toArray()) .validBlocks(AllBlocks.DYED_VALVE_HANDLES.toArray())
.renderer(() -> HandCrankRenderer::new) .renderer(() -> HandCrankRenderer::new)
@ -333,28 +333,28 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<CuckooClockBlockEntity> CUCKOO_CLOCK = REGISTRATE public static final BlockEntityEntry<CuckooClockBlockEntity> CUCKOO_CLOCK = REGISTRATE
.blockEntity("cuckoo_clock", CuckooClockBlockEntity::new) .blockEntity("cuckoo_clock", CuckooClockBlockEntity::new)
.instance(() -> HorizontalHalfShaftInstance::new) .instance(() -> HorizontalHalfShaftVisual::new)
.validBlocks(AllBlocks.CUCKOO_CLOCK, AllBlocks.MYSTERIOUS_CUCKOO_CLOCK) .validBlocks(AllBlocks.CUCKOO_CLOCK, AllBlocks.MYSTERIOUS_CUCKOO_CLOCK)
.renderer(() -> CuckooClockRenderer::new) .renderer(() -> CuckooClockRenderer::new)
.register(); .register();
public static final BlockEntityEntry<GantryShaftBlockEntity> GANTRY_SHAFT = REGISTRATE public static final BlockEntityEntry<GantryShaftBlockEntity> GANTRY_SHAFT = REGISTRATE
.blockEntity("gantry_shaft", GantryShaftBlockEntity::new) .blockEntity("gantry_shaft", GantryShaftBlockEntity::new)
.instance(() -> SingleRotatingInstance::new, false) .instance(() -> SingleRotatingVisual::new, false)
.validBlocks(AllBlocks.GANTRY_SHAFT) .validBlocks(AllBlocks.GANTRY_SHAFT)
.renderer(() -> KineticBlockEntityRenderer::new) .renderer(() -> KineticBlockEntityRenderer::new)
.register(); .register();
public static final BlockEntityEntry<GantryCarriageBlockEntity> GANTRY_PINION = REGISTRATE public static final BlockEntityEntry<GantryCarriageBlockEntity> GANTRY_PINION = REGISTRATE
.blockEntity("gantry_pinion", GantryCarriageBlockEntity::new) .blockEntity("gantry_pinion", GantryCarriageBlockEntity::new)
.instance(() -> GantryCarriageInstance::new) .instance(() -> GantryCarriageVisual::new)
.validBlocks(AllBlocks.GANTRY_CARRIAGE) .validBlocks(AllBlocks.GANTRY_CARRIAGE)
.renderer(() -> GantryCarriageRenderer::new) .renderer(() -> GantryCarriageRenderer::new)
.register(); .register();
public static final BlockEntityEntry<PumpBlockEntity> MECHANICAL_PUMP = REGISTRATE public static final BlockEntityEntry<PumpBlockEntity> MECHANICAL_PUMP = REGISTRATE
.blockEntity("mechanical_pump", PumpBlockEntity::new) .blockEntity("mechanical_pump", PumpBlockEntity::new)
.instance(() -> PumpCogInstance::new) .instance(() -> PumpCogVisual::new)
.validBlocks(AllBlocks.MECHANICAL_PUMP) .validBlocks(AllBlocks.MECHANICAL_PUMP)
.renderer(() -> PumpRenderer::new) .renderer(() -> PumpRenderer::new)
.register(); .register();
@ -383,7 +383,7 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<FluidValveBlockEntity> FLUID_VALVE = REGISTRATE public static final BlockEntityEntry<FluidValveBlockEntity> FLUID_VALVE = REGISTRATE
.blockEntity("fluid_valve", FluidValveBlockEntity::new) .blockEntity("fluid_valve", FluidValveBlockEntity::new)
.instance(() -> FluidValveInstance::new) .instance(() -> FluidValveVisual::new)
.validBlocks(AllBlocks.FLUID_VALVE) .validBlocks(AllBlocks.FLUID_VALVE)
.renderer(() -> FluidValveRenderer::new) .renderer(() -> FluidValveRenderer::new)
.register(); .register();
@ -402,7 +402,7 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<HosePulleyBlockEntity> HOSE_PULLEY = REGISTRATE public static final BlockEntityEntry<HosePulleyBlockEntity> HOSE_PULLEY = REGISTRATE
.blockEntity("hose_pulley", HosePulleyBlockEntity::new) .blockEntity("hose_pulley", HosePulleyBlockEntity::new)
.instance(() -> HosePulleyInstance::new) .instance(() -> HosePulleyVisual::new)
.validBlocks(AllBlocks.HOSE_PULLEY) .validBlocks(AllBlocks.HOSE_PULLEY)
.renderer(() -> HosePulleyRenderer::new) .renderer(() -> HosePulleyRenderer::new)
.register(); .register();
@ -440,21 +440,21 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<BeltTunnelBlockEntity> ANDESITE_TUNNEL = REGISTRATE public static final BlockEntityEntry<BeltTunnelBlockEntity> ANDESITE_TUNNEL = REGISTRATE
.blockEntity("andesite_tunnel", BeltTunnelBlockEntity::new) .blockEntity("andesite_tunnel", BeltTunnelBlockEntity::new)
.instance(() -> BeltTunnelInstance::new) .instance(() -> BeltTunnelVisual::new)
.validBlocks(AllBlocks.ANDESITE_TUNNEL) .validBlocks(AllBlocks.ANDESITE_TUNNEL)
.renderer(() -> BeltTunnelRenderer::new) .renderer(() -> BeltTunnelRenderer::new)
.register(); .register();
public static final BlockEntityEntry<BrassTunnelBlockEntity> BRASS_TUNNEL = REGISTRATE public static final BlockEntityEntry<BrassTunnelBlockEntity> BRASS_TUNNEL = REGISTRATE
.blockEntity("brass_tunnel", BrassTunnelBlockEntity::new) .blockEntity("brass_tunnel", BrassTunnelBlockEntity::new)
.instance(() -> BeltTunnelInstance::new) .instance(() -> BeltTunnelVisual::new)
.validBlocks(AllBlocks.BRASS_TUNNEL) .validBlocks(AllBlocks.BRASS_TUNNEL)
.renderer(() -> BeltTunnelRenderer::new) .renderer(() -> BeltTunnelRenderer::new)
.register(); .register();
public static final BlockEntityEntry<ArmBlockEntity> MECHANICAL_ARM = REGISTRATE public static final BlockEntityEntry<ArmBlockEntity> MECHANICAL_ARM = REGISTRATE
.blockEntity("mechanical_arm", ArmBlockEntity::new) .blockEntity("mechanical_arm", ArmBlockEntity::new)
.instance(() -> ArmInstance::new) .instance(() -> ArmVisual::new)
.validBlocks(AllBlocks.MECHANICAL_ARM) .validBlocks(AllBlocks.MECHANICAL_ARM)
.renderer(() -> ArmRenderer::new) .renderer(() -> ArmRenderer::new)
.register(); .register();
@ -466,35 +466,35 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<MechanicalPistonBlockEntity> MECHANICAL_PISTON = REGISTRATE public static final BlockEntityEntry<MechanicalPistonBlockEntity> MECHANICAL_PISTON = REGISTRATE
.blockEntity("mechanical_piston", MechanicalPistonBlockEntity::new) .blockEntity("mechanical_piston", MechanicalPistonBlockEntity::new)
.instance(() -> ShaftInstance::new, false) .instance(() -> ShaftVisual::new, false)
.validBlocks(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) .validBlocks(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON)
.renderer(() -> MechanicalPistonRenderer::new) .renderer(() -> MechanicalPistonRenderer::new)
.register(); .register();
public static final BlockEntityEntry<WindmillBearingBlockEntity> WINDMILL_BEARING = REGISTRATE public static final BlockEntityEntry<WindmillBearingBlockEntity> WINDMILL_BEARING = REGISTRATE
.blockEntity("windmill_bearing", WindmillBearingBlockEntity::new) .blockEntity("windmill_bearing", WindmillBearingBlockEntity::new)
.instance(() -> BearingInstance::new) .instance(() -> BearingVisual::new)
.validBlocks(AllBlocks.WINDMILL_BEARING) .validBlocks(AllBlocks.WINDMILL_BEARING)
.renderer(() -> BearingRenderer::new) .renderer(() -> BearingRenderer::new)
.register(); .register();
public static final BlockEntityEntry<MechanicalBearingBlockEntity> MECHANICAL_BEARING = REGISTRATE public static final BlockEntityEntry<MechanicalBearingBlockEntity> MECHANICAL_BEARING = REGISTRATE
.blockEntity("mechanical_bearing", MechanicalBearingBlockEntity::new) .blockEntity("mechanical_bearing", MechanicalBearingBlockEntity::new)
.instance(() -> BearingInstance::new) .instance(() -> BearingVisual::new)
.validBlocks(AllBlocks.MECHANICAL_BEARING) .validBlocks(AllBlocks.MECHANICAL_BEARING)
.renderer(() -> BearingRenderer::new) .renderer(() -> BearingRenderer::new)
.register(); .register();
public static final BlockEntityEntry<ClockworkBearingBlockEntity> CLOCKWORK_BEARING = REGISTRATE public static final BlockEntityEntry<ClockworkBearingBlockEntity> CLOCKWORK_BEARING = REGISTRATE
.blockEntity("clockwork_bearing", ClockworkBearingBlockEntity::new) .blockEntity("clockwork_bearing", ClockworkBearingBlockEntity::new)
.instance(() -> BearingInstance::new) .instance(() -> BearingVisual::new)
.validBlocks(AllBlocks.CLOCKWORK_BEARING) .validBlocks(AllBlocks.CLOCKWORK_BEARING)
.renderer(() -> BearingRenderer::new) .renderer(() -> BearingRenderer::new)
.register(); .register();
public static final BlockEntityEntry<PulleyBlockEntity> ROPE_PULLEY = REGISTRATE public static final BlockEntityEntry<PulleyBlockEntity> ROPE_PULLEY = REGISTRATE
.blockEntity("rope_pulley", PulleyBlockEntity::new) .blockEntity("rope_pulley", PulleyBlockEntity::new)
.instance(() -> RopePulleyInstance::new, false) .instance(() -> RopePulleyVisual::new, false)
.validBlocks(AllBlocks.ROPE_PULLEY) .validBlocks(AllBlocks.ROPE_PULLEY)
.renderer(() -> PulleyRenderer::new) .renderer(() -> PulleyRenderer::new)
.register(); .register();
@ -519,7 +519,7 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<StickerBlockEntity> STICKER = REGISTRATE public static final BlockEntityEntry<StickerBlockEntity> STICKER = REGISTRATE
.blockEntity("sticker", StickerBlockEntity::new) .blockEntity("sticker", StickerBlockEntity::new)
.instance(() -> StickerInstance::new, false) .instance(() -> StickerVisual::new, false)
.validBlocks(AllBlocks.STICKER) .validBlocks(AllBlocks.STICKER)
.renderer(() -> StickerRenderer::new) .renderer(() -> StickerRenderer::new)
.register(); .register();
@ -532,14 +532,14 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<DrillBlockEntity> DRILL = REGISTRATE public static final BlockEntityEntry<DrillBlockEntity> DRILL = REGISTRATE
.blockEntity("drill", DrillBlockEntity::new) .blockEntity("drill", DrillBlockEntity::new)
.instance(() -> DrillInstance::new, false) .instance(() -> DrillVisual::new, false)
.validBlocks(AllBlocks.MECHANICAL_DRILL) .validBlocks(AllBlocks.MECHANICAL_DRILL)
.renderer(() -> DrillRenderer::new) .renderer(() -> DrillRenderer::new)
.register(); .register();
public static final BlockEntityEntry<SawBlockEntity> SAW = REGISTRATE public static final BlockEntityEntry<SawBlockEntity> SAW = REGISTRATE
.blockEntity("saw", SawBlockEntity::new) .blockEntity("saw", SawBlockEntity::new)
.instance(() -> SawInstance::new) .instance(() -> SawVisual::new)
.validBlocks(AllBlocks.MECHANICAL_SAW) .validBlocks(AllBlocks.MECHANICAL_SAW)
.renderer(() -> SawRenderer::new) .renderer(() -> SawRenderer::new)
.register(); .register();
@ -559,7 +559,7 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<PortableItemInterfaceBlockEntity> PORTABLE_STORAGE_INTERFACE = public static final BlockEntityEntry<PortableItemInterfaceBlockEntity> PORTABLE_STORAGE_INTERFACE =
REGISTRATE REGISTRATE
.blockEntity("portable_storage_interface", PortableItemInterfaceBlockEntity::new) .blockEntity("portable_storage_interface", PortableItemInterfaceBlockEntity::new)
.instance(() -> PSIInstance::new) .instance(() -> PSIVisual::new)
.validBlocks(AllBlocks.PORTABLE_STORAGE_INTERFACE) .validBlocks(AllBlocks.PORTABLE_STORAGE_INTERFACE)
.renderer(() -> PortableStorageInterfaceRenderer::new) .renderer(() -> PortableStorageInterfaceRenderer::new)
.register(); .register();
@ -567,14 +567,14 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<PortableFluidInterfaceBlockEntity> PORTABLE_FLUID_INTERFACE = public static final BlockEntityEntry<PortableFluidInterfaceBlockEntity> PORTABLE_FLUID_INTERFACE =
REGISTRATE REGISTRATE
.blockEntity("portable_fluid_interface", PortableFluidInterfaceBlockEntity::new) .blockEntity("portable_fluid_interface", PortableFluidInterfaceBlockEntity::new)
.instance(() -> PSIInstance::new) .instance(() -> PSIVisual::new)
.validBlocks(AllBlocks.PORTABLE_FLUID_INTERFACE) .validBlocks(AllBlocks.PORTABLE_FLUID_INTERFACE)
.renderer(() -> PortableStorageInterfaceRenderer::new) .renderer(() -> PortableStorageInterfaceRenderer::new)
.register(); .register();
public static final BlockEntityEntry<SteamEngineBlockEntity> STEAM_ENGINE = REGISTRATE public static final BlockEntityEntry<SteamEngineBlockEntity> STEAM_ENGINE = REGISTRATE
.blockEntity("steam_engine", SteamEngineBlockEntity::new) .blockEntity("steam_engine", SteamEngineBlockEntity::new)
.instance(() -> SteamEngineInstance::new, false) .instance(() -> SteamEngineVisual::new, false)
.validBlocks(AllBlocks.STEAM_ENGINE) .validBlocks(AllBlocks.STEAM_ENGINE)
.renderer(() -> SteamEngineRenderer::new) .renderer(() -> SteamEngineRenderer::new)
.register(); .register();
@ -587,28 +587,28 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<PoweredShaftBlockEntity> POWERED_SHAFT = REGISTRATE public static final BlockEntityEntry<PoweredShaftBlockEntity> POWERED_SHAFT = REGISTRATE
.blockEntity("powered_shaft", PoweredShaftBlockEntity::new) .blockEntity("powered_shaft", PoweredShaftBlockEntity::new)
.instance(() -> SingleRotatingInstance::new, false) .instance(() -> SingleRotatingVisual::new, false)
.validBlocks(AllBlocks.POWERED_SHAFT) .validBlocks(AllBlocks.POWERED_SHAFT)
.renderer(() -> KineticBlockEntityRenderer::new) .renderer(() -> KineticBlockEntityRenderer::new)
.register(); .register();
public static final BlockEntityEntry<FlywheelBlockEntity> FLYWHEEL = REGISTRATE public static final BlockEntityEntry<FlywheelBlockEntity> FLYWHEEL = REGISTRATE
.blockEntity("flywheel", FlywheelBlockEntity::new) .blockEntity("flywheel", FlywheelBlockEntity::new)
.instance(() -> FlywheelInstance::new, false) .instance(() -> FlywheelVisual::new, false)
.validBlocks(AllBlocks.FLYWHEEL) .validBlocks(AllBlocks.FLYWHEEL)
.renderer(() -> FlywheelRenderer::new) .renderer(() -> FlywheelRenderer::new)
.register(); .register();
public static final BlockEntityEntry<MillstoneBlockEntity> MILLSTONE = REGISTRATE public static final BlockEntityEntry<MillstoneBlockEntity> MILLSTONE = REGISTRATE
.blockEntity("millstone", MillstoneBlockEntity::new) .blockEntity("millstone", MillstoneBlockEntity::new)
.instance(() -> MillstoneCogInstance::new, false) .instance(() -> MillstoneCogVisual::new, false)
.validBlocks(AllBlocks.MILLSTONE) .validBlocks(AllBlocks.MILLSTONE)
.renderer(() -> MillstoneRenderer::new) .renderer(() -> MillstoneRenderer::new)
.register(); .register();
public static final BlockEntityEntry<CrushingWheelBlockEntity> CRUSHING_WHEEL = REGISTRATE public static final BlockEntityEntry<CrushingWheelBlockEntity> CRUSHING_WHEEL = REGISTRATE
.blockEntity("crushing_wheel", CrushingWheelBlockEntity::new) .blockEntity("crushing_wheel", CrushingWheelBlockEntity::new)
.instance(() -> CutoutRotatingInstance::new, false) .instance(() -> CutoutRotatingVisual::new, false)
.validBlocks(AllBlocks.CRUSHING_WHEEL) .validBlocks(AllBlocks.CRUSHING_WHEEL)
.renderer(() -> KineticBlockEntityRenderer::new) .renderer(() -> KineticBlockEntityRenderer::new)
.register(); .register();
@ -622,35 +622,35 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<WaterWheelBlockEntity> WATER_WHEEL = REGISTRATE public static final BlockEntityEntry<WaterWheelBlockEntity> WATER_WHEEL = REGISTRATE
.blockEntity("water_wheel", WaterWheelBlockEntity::new) .blockEntity("water_wheel", WaterWheelBlockEntity::new)
.instance(() -> WaterWheelInstance::standard, false) .instance(() -> WaterWheelVisual::standard, false)
.validBlocks(AllBlocks.WATER_WHEEL) .validBlocks(AllBlocks.WATER_WHEEL)
.renderer(() -> WaterWheelRenderer::standard) .renderer(() -> WaterWheelRenderer::standard)
.register(); .register();
public static final BlockEntityEntry<LargeWaterWheelBlockEntity> LARGE_WATER_WHEEL = REGISTRATE public static final BlockEntityEntry<LargeWaterWheelBlockEntity> LARGE_WATER_WHEEL = REGISTRATE
.blockEntity("large_water_wheel", LargeWaterWheelBlockEntity::new) .blockEntity("large_water_wheel", LargeWaterWheelBlockEntity::new)
.instance(() -> WaterWheelInstance::large, false) .instance(() -> WaterWheelVisual::large, false)
.validBlocks(AllBlocks.LARGE_WATER_WHEEL) .validBlocks(AllBlocks.LARGE_WATER_WHEEL)
.renderer(() -> WaterWheelRenderer::large) .renderer(() -> WaterWheelRenderer::large)
.register(); .register();
public static final BlockEntityEntry<MechanicalPressBlockEntity> MECHANICAL_PRESS = REGISTRATE public static final BlockEntityEntry<MechanicalPressBlockEntity> MECHANICAL_PRESS = REGISTRATE
.blockEntity("mechanical_press", MechanicalPressBlockEntity::new) .blockEntity("mechanical_press", MechanicalPressBlockEntity::new)
.instance(() -> PressInstance::new) .instance(() -> PressVisual::new)
.validBlocks(AllBlocks.MECHANICAL_PRESS) .validBlocks(AllBlocks.MECHANICAL_PRESS)
.renderer(() -> MechanicalPressRenderer::new) .renderer(() -> MechanicalPressRenderer::new)
.register(); .register();
public static final BlockEntityEntry<MechanicalMixerBlockEntity> MECHANICAL_MIXER = REGISTRATE public static final BlockEntityEntry<MechanicalMixerBlockEntity> MECHANICAL_MIXER = REGISTRATE
.blockEntity("mechanical_mixer", MechanicalMixerBlockEntity::new) .blockEntity("mechanical_mixer", MechanicalMixerBlockEntity::new)
.instance(() -> MixerInstance::new) .instance(() -> MixerVisual::new)
.validBlocks(AllBlocks.MECHANICAL_MIXER) .validBlocks(AllBlocks.MECHANICAL_MIXER)
.renderer(() -> MechanicalMixerRenderer::new) .renderer(() -> MechanicalMixerRenderer::new)
.register(); .register();
public static final BlockEntityEntry<DeployerBlockEntity> DEPLOYER = REGISTRATE public static final BlockEntityEntry<DeployerBlockEntity> DEPLOYER = REGISTRATE
.blockEntity("deployer", DeployerBlockEntity::new) .blockEntity("deployer", DeployerBlockEntity::new)
.instance(() -> DeployerInstance::new) .instance(() -> DeployerVisual::new)
.validBlocks(AllBlocks.DEPLOYER) .validBlocks(AllBlocks.DEPLOYER)
.renderer(() -> DeployerRenderer::new) .renderer(() -> DeployerRenderer::new)
.register(); .register();
@ -669,42 +669,42 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<MechanicalCrafterBlockEntity> MECHANICAL_CRAFTER = REGISTRATE public static final BlockEntityEntry<MechanicalCrafterBlockEntity> MECHANICAL_CRAFTER = REGISTRATE
.blockEntity("mechanical_crafter", MechanicalCrafterBlockEntity::new) .blockEntity("mechanical_crafter", MechanicalCrafterBlockEntity::new)
.instance(() -> ShaftlessCogwheelInstance::new) .instance(() -> ShaftlessCogwheelVisual::new)
.validBlocks(AllBlocks.MECHANICAL_CRAFTER) .validBlocks(AllBlocks.MECHANICAL_CRAFTER)
.renderer(() -> MechanicalCrafterRenderer::new) .renderer(() -> MechanicalCrafterRenderer::new)
.register(); .register();
public static final BlockEntityEntry<SequencedGearshiftBlockEntity> SEQUENCED_GEARSHIFT = REGISTRATE public static final BlockEntityEntry<SequencedGearshiftBlockEntity> SEQUENCED_GEARSHIFT = REGISTRATE
.blockEntity("sequenced_gearshift", SequencedGearshiftBlockEntity::new) .blockEntity("sequenced_gearshift", SequencedGearshiftBlockEntity::new)
.instance(() -> SplitShaftInstance::new, false) .instance(() -> SplitShaftVisual::new, false)
.validBlocks(AllBlocks.SEQUENCED_GEARSHIFT) .validBlocks(AllBlocks.SEQUENCED_GEARSHIFT)
.renderer(() -> SplitShaftRenderer::new) .renderer(() -> SplitShaftRenderer::new)
.register(); .register();
public static final BlockEntityEntry<SpeedControllerBlockEntity> ROTATION_SPEED_CONTROLLER = REGISTRATE public static final BlockEntityEntry<SpeedControllerBlockEntity> ROTATION_SPEED_CONTROLLER = REGISTRATE
.blockEntity("rotation_speed_controller", SpeedControllerBlockEntity::new) .blockEntity("rotation_speed_controller", SpeedControllerBlockEntity::new)
.instance(() -> ShaftInstance::new) .instance(() -> ShaftVisual::new)
.validBlocks(AllBlocks.ROTATION_SPEED_CONTROLLER) .validBlocks(AllBlocks.ROTATION_SPEED_CONTROLLER)
.renderer(() -> SpeedControllerRenderer::new) .renderer(() -> SpeedControllerRenderer::new)
.register(); .register();
public static final BlockEntityEntry<SpeedGaugeBlockEntity> SPEEDOMETER = REGISTRATE public static final BlockEntityEntry<SpeedGaugeBlockEntity> SPEEDOMETER = REGISTRATE
.blockEntity("speedometer", SpeedGaugeBlockEntity::new) .blockEntity("speedometer", SpeedGaugeBlockEntity::new)
.instance(() -> GaugeInstance.Speed::new) .instance(() -> GaugeVisual.Speed::new)
.validBlocks(AllBlocks.SPEEDOMETER) .validBlocks(AllBlocks.SPEEDOMETER)
.renderer(() -> GaugeRenderer::speed) .renderer(() -> GaugeRenderer::speed)
.register(); .register();
public static final BlockEntityEntry<StressGaugeBlockEntity> STRESSOMETER = REGISTRATE public static final BlockEntityEntry<StressGaugeBlockEntity> STRESSOMETER = REGISTRATE
.blockEntity("stressometer", StressGaugeBlockEntity::new) .blockEntity("stressometer", StressGaugeBlockEntity::new)
.instance(() -> GaugeInstance.Stress::new) .instance(() -> GaugeVisual.Stress::new)
.validBlocks(AllBlocks.STRESSOMETER) .validBlocks(AllBlocks.STRESSOMETER)
.renderer(() -> GaugeRenderer::stress) .renderer(() -> GaugeRenderer::stress)
.register(); .register();
public static final BlockEntityEntry<AnalogLeverBlockEntity> ANALOG_LEVER = REGISTRATE public static final BlockEntityEntry<AnalogLeverBlockEntity> ANALOG_LEVER = REGISTRATE
.blockEntity("analog_lever", AnalogLeverBlockEntity::new) .blockEntity("analog_lever", AnalogLeverBlockEntity::new)
.instance(() -> AnalogLeverInstance::new, false) .instance(() -> AnalogLeverVisual::new, false)
.validBlocks(AllBlocks.ANALOG_LEVER) .validBlocks(AllBlocks.ANALOG_LEVER)
.renderer(() -> AnalogLeverRenderer::new) .renderer(() -> AnalogLeverRenderer::new)
.register(); .register();
@ -763,14 +763,14 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<EjectorBlockEntity> WEIGHTED_EJECTOR = REGISTRATE public static final BlockEntityEntry<EjectorBlockEntity> WEIGHTED_EJECTOR = REGISTRATE
.blockEntity("weighted_ejector", EjectorBlockEntity::new) .blockEntity("weighted_ejector", EjectorBlockEntity::new)
.instance(() -> EjectorInstance::new) .instance(() -> EjectorVisual::new)
.validBlocks(AllBlocks.WEIGHTED_EJECTOR) .validBlocks(AllBlocks.WEIGHTED_EJECTOR)
.renderer(() -> EjectorRenderer::new) .renderer(() -> EjectorRenderer::new)
.register(); .register();
public static final BlockEntityEntry<FunnelBlockEntity> FUNNEL = REGISTRATE public static final BlockEntityEntry<FunnelBlockEntity> FUNNEL = REGISTRATE
.blockEntity("funnel", FunnelBlockEntity::new) .blockEntity("funnel", FunnelBlockEntity::new)
.instance(() -> FunnelInstance::new) .instance(() -> FunnelVisual::new)
.validBlocks(AllBlocks.BRASS_FUNNEL, AllBlocks.BRASS_BELT_FUNNEL, AllBlocks.ANDESITE_FUNNEL, .validBlocks(AllBlocks.BRASS_FUNNEL, AllBlocks.BRASS_BELT_FUNNEL, AllBlocks.ANDESITE_FUNNEL,
AllBlocks.ANDESITE_BELT_FUNNEL) AllBlocks.ANDESITE_BELT_FUNNEL)
.renderer(() -> FunnelRenderer::new) .renderer(() -> FunnelRenderer::new)
@ -784,14 +784,14 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<PulseExtenderBlockEntity> PULSE_EXTENDER = REGISTRATE public static final BlockEntityEntry<PulseExtenderBlockEntity> PULSE_EXTENDER = REGISTRATE
.blockEntity("pulse_extender", PulseExtenderBlockEntity::new) .blockEntity("pulse_extender", PulseExtenderBlockEntity::new)
.instance(() -> BrassDiodeInstance::new, false) .instance(() -> BrassDiodeVisual::new, false)
.validBlocks(AllBlocks.PULSE_EXTENDER) .validBlocks(AllBlocks.PULSE_EXTENDER)
.renderer(() -> BrassDiodeRenderer::new) .renderer(() -> BrassDiodeRenderer::new)
.register(); .register();
public static final BlockEntityEntry<PulseRepeaterBlockEntity> PULSE_REPEATER = REGISTRATE public static final BlockEntityEntry<PulseRepeaterBlockEntity> PULSE_REPEATER = REGISTRATE
.blockEntity("pulse_repeater", PulseRepeaterBlockEntity::new) .blockEntity("pulse_repeater", PulseRepeaterBlockEntity::new)
.instance(() -> BrassDiodeInstance::new, false) .instance(() -> BrassDiodeVisual::new, false)
.validBlocks(AllBlocks.PULSE_REPEATER) .validBlocks(AllBlocks.PULSE_REPEATER)
.renderer(() -> BrassDiodeRenderer::new) .renderer(() -> BrassDiodeRenderer::new)
.register(); .register();
@ -805,7 +805,7 @@ public class AllBlockEntityTypes {
// Curiosities // Curiosities
public static final BlockEntityEntry<BacktankBlockEntity> BACKTANK = REGISTRATE public static final BlockEntityEntry<BacktankBlockEntity> BACKTANK = REGISTRATE
.blockEntity("backtank", BacktankBlockEntity::new) .blockEntity("backtank", BacktankBlockEntity::new)
.instance(() -> BacktankInstance::new) .instance(() -> BacktankVisual::new)
.validBlocks(AllBlocks.COPPER_BACKTANK, AllBlocks.NETHERITE_BACKTANK) .validBlocks(AllBlocks.COPPER_BACKTANK, AllBlocks.NETHERITE_BACKTANK)
.renderer(() -> BacktankRenderer::new) .renderer(() -> BacktankRenderer::new)
.register(); .register();
@ -824,14 +824,14 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<ToolboxBlockEntity> TOOLBOX = REGISTRATE public static final BlockEntityEntry<ToolboxBlockEntity> TOOLBOX = REGISTRATE
.blockEntity("toolbox", ToolboxBlockEntity::new) .blockEntity("toolbox", ToolboxBlockEntity::new)
.instance(() -> ToolBoxInstance::new, false) .instance(() -> ToolBoxVisual::new, false)
.validBlocks(AllBlocks.TOOLBOXES.toArray()) .validBlocks(AllBlocks.TOOLBOXES.toArray())
.renderer(() -> ToolboxRenderer::new) .renderer(() -> ToolboxRenderer::new)
.register(); .register();
public static final BlockEntityEntry<TrackBlockEntity> TRACK = REGISTRATE public static final BlockEntityEntry<TrackBlockEntity> TRACK = REGISTRATE
.blockEntity("track", TrackBlockEntity::new) .blockEntity("track", TrackBlockEntity::new)
.instance(() -> TrackInstance::new) .instance(() -> TrackVisual::new)
.validBlocksDeferred(TrackMaterial::allBlocks) .validBlocksDeferred(TrackMaterial::allBlocks)
.renderer(() -> TrackRenderer::new) .renderer(() -> TrackRenderer::new)
.register(); .register();
@ -867,7 +867,7 @@ public class AllBlockEntityTypes {
public static final BlockEntityEntry<FlapDisplayBlockEntity> FLAP_DISPLAY = REGISTRATE public static final BlockEntityEntry<FlapDisplayBlockEntity> FLAP_DISPLAY = REGISTRATE
.blockEntity("flap_display", FlapDisplayBlockEntity::new) .blockEntity("flap_display", FlapDisplayBlockEntity::new)
.instance(() -> ShaftlessCogwheelInstance::new) .instance(() -> ShaftlessCogwheelVisual::new)
.renderer(() -> FlapDisplayRenderer::new) .renderer(() -> FlapDisplayRenderer::new)
.validBlocks(AllBlocks.DISPLAY_BOARD) .validBlocks(AllBlocks.DISPLAY_BOARD)
.register(); .register();

View file

@ -15,7 +15,7 @@ import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileEntity
import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileRenderer; import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileRenderer;
import com.simibubi.create.content.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.trains.entity.CarriageContraptionEntity;
import com.simibubi.create.content.trains.entity.CarriageContraptionEntityRenderer; import com.simibubi.create.content.trains.entity.CarriageContraptionEntityRenderer;
import com.simibubi.create.content.trains.entity.CarriageContraptionInstance; import com.simibubi.create.content.trains.entity.CarriageContraptionVisual;
import com.simibubi.create.foundation.data.CreateEntityBuilder; import com.simibubi.create.foundation.data.CreateEntityBuilder;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import com.tterrag.registrate.util.entry.EntityEntry; import com.tterrag.registrate.util.entry.EntityEntry;
@ -41,7 +41,7 @@ public class AllEntityTypes {
GantryContraptionEntity::new, () -> ContraptionEntityRenderer::new, 10, 40, false).register(); GantryContraptionEntity::new, () -> ContraptionEntityRenderer::new, 10, 40, false).register();
public static final EntityEntry<CarriageContraptionEntity> CARRIAGE_CONTRAPTION = public static final EntityEntry<CarriageContraptionEntity> CARRIAGE_CONTRAPTION =
contraption("carriage_contraption", CarriageContraptionEntity::new, contraption("carriage_contraption", CarriageContraptionEntity::new,
() -> CarriageContraptionEntityRenderer::new, 15, 3, true).instance(() -> CarriageContraptionInstance::new) () -> CarriageContraptionEntityRenderer::new, 15, 3, true).instance(() -> CarriageContraptionVisual::new)
.register(); .register();
public static final EntityEntry<SuperGlueEntity> SUPER_GLUE = public static final EntityEntry<SuperGlueEntity> SUPER_GLUE =

View file

@ -1,4 +1,4 @@
package com.simibubi.create.content.contraptions.actors.flwdata; package com.simibubi.create.content.contraptions.actors;
import org.joml.Quaternionf; import org.joml.Quaternionf;
import org.joml.Vector3f; import org.joml.Vector3f;

View file

@ -1,6 +0,0 @@
@ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault
package com.simibubi.create.content.contraptions.actors.flwdata;
import javax.annotation.ParametersAreNonnullByDefault;
import net.minecraft.MethodsReturnNonnullByDefault;

View file

@ -8,7 +8,7 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.model.baked.PartialModel; import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.VecHelper;
@ -18,9 +18,8 @@ import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import net.minecraftforge.client.model.data.ModelData;
public class HarvesterActorInstance extends ActorInstance { public class HarvesterActorVisual extends ActorVisual {
static float originOffset = 1 / 16f; static float originOffset = 1 / 16f;
static Vec3 rotOffset = new Vec3(0.5f, -2 * originOffset + 0.5f, originOffset + 0.5f); static Vec3 rotOffset = new Vec3(0.5f, -2 * originOffset + 0.5f, originOffset + 0.5f);
@ -32,10 +31,10 @@ public class HarvesterActorInstance extends ActorInstance {
private double rotation; private double rotation;
private double previousRotation; private double previousRotation;
public HarvesterActorInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, MovementContext context) { public HarvesterActorVisual(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld, MovementContext movementContext) {
super(materialManager, simulationWorld, context); super(visualizationContext, simulationWorld, movementContext);
BlockState state = context.state; BlockState state = movementContext.state;
facing = state.getValue(BlockStateProperties.HORIZONTAL_FACING); facing = state.getValue(BlockStateProperties.HORIZONTAL_FACING);

View file

@ -7,7 +7,7 @@ import org.apache.commons.lang3.mutable.MutableBoolean;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper;
@ -52,9 +52,9 @@ public class HarvesterMovementBehaviour implements MovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return new HarvesterActorInstance(materialManager, simulationWorld, context); return new HarvesterActorVisual(visualizationContext, simulationWorld, movementContext);
} }
@Override @Override

View file

@ -2,19 +2,19 @@ package com.simibubi.create.content.contraptions.actors.psi;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
public class PSIActorInstance extends ActorInstance { public class PSIActorVisual extends ActorVisual {
private final PIInstance instance; private final PIInstance instance;
public PSIActorInstance(VisualizationContext materialManager, VirtualRenderWorld world, MovementContext context) { public PSIActorVisual(VisualizationContext context, VirtualRenderWorld world, MovementContext movementContext) {
super(materialManager, world, context); super(context, world, movementContext);
instance = new PIInstance(materialManager.instancerProvider(), context.state, context.localPos); instance = new PIInstance(context.instancerProvider(), movementContext.state, movementContext.localPos);
instance.init(false); instance.init(false);
instance.middle.setBlockLight(localBlockLight()); instance.middle.setBlockLight(localBlockLight());

View file

@ -11,11 +11,11 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
public class PSIInstance extends AbstractBlockEntityVisual<PortableStorageInterfaceBlockEntity> implements DynamicVisual, TickableVisual { public class PSIVisual extends AbstractBlockEntityVisual<PortableStorageInterfaceBlockEntity> implements DynamicVisual, TickableVisual {
private final PIInstance instance; private final PIInstance instance;
public PSIInstance(VisualizationContext visualizationContext, PortableStorageInterfaceBlockEntity blockEntity) { public PSIVisual(VisualizationContext visualizationContext, PortableStorageInterfaceBlockEntity blockEntity) {
super(visualizationContext, blockEntity); super(visualizationContext, blockEntity);
instance = new PIInstance(visualizationContext.instancerProvider(), blockState, getVisualPosition()); instance = new PIInstance(visualizationContext.instancerProvider(), blockState, getVisualPosition());

View file

@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.content.trains.entity.CarriageContraption; import com.simibubi.create.content.trains.entity.CarriageContraption;
@ -46,9 +46,9 @@ public class PortableStorageInterfaceMovement implements MovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return new PSIActorInstance(materialManager, simulationWorld, context); return new PSIActorVisual(visualizationContext, simulationWorld, movementContext);
} }
@Override @Override

View file

@ -7,20 +7,19 @@ import com.jozufozu.flywheel.lib.instance.TransformedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.model.baked.PartialModel; import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.actors.harvester.HarvesterActorInstance; import com.simibubi.create.content.contraptions.actors.harvester.HarvesterActorVisual;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import net.minecraftforge.client.model.data.ModelData;
public class RollerActorInstance extends HarvesterActorInstance { public class RollerActorVisual extends HarvesterActorVisual {
TransformedInstance frame; TransformedInstance frame;
public RollerActorInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public RollerActorVisual(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
super(materialManager, simulationWorld, context); super(visualizationContext, simulationWorld, movementContext);
frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME), RenderStage.AFTER_BLOCK_ENTITIES) frame = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ROLLER_FRAME), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -14,7 +14,7 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.contraptions.actors.roller.RollerBlockEntity.RollingMode; import com.simibubi.create.content.contraptions.actors.roller.RollerBlockEntity.RollingMode;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.pulley.PulleyContraption; import com.simibubi.create.content.contraptions.pulley.PulleyContraption;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour; import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour;
@ -76,9 +76,9 @@ public class RollerMovementBehaviour extends BlockBreakingMovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return new RollerActorInstance(materialManager, simulationWorld, context); return new RollerActorVisual(visualizationContext, simulationWorld, movementContext);
} }
@Override @Override

View file

@ -15,7 +15,7 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.model.baked.PartialModel; import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.BackHalfShaftInstance; import com.simibubi.create.content.kinetics.base.BackHalfShaftVisual;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -23,14 +23,14 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class BearingInstance<B extends KineticBlockEntity & IBearingBlockEntity> extends BackHalfShaftInstance<B> implements DynamicVisual { public class BearingVisual<B extends KineticBlockEntity & IBearingBlockEntity> extends BackHalfShaftVisual<B> implements DynamicVisual {
final OrientedInstance topInstance; final OrientedInstance topInstance;
final Axis rotationAxis; final Axis rotationAxis;
final Quaternionf blockOrientation; final Quaternionf blockOrientation;
public BearingInstance(VisualizationContext materialManager, B blockEntity) { public BearingVisual(VisualizationContext context, B blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
Direction facing = blockState.getValue(BlockStateProperties.FACING); Direction facing = blockState.getValue(BlockStateProperties.FACING);
rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, axis).step()); rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, axis).step());

View file

@ -13,7 +13,7 @@ import com.simibubi.create.content.contraptions.ControlledContraptionEntity;
import com.simibubi.create.content.contraptions.OrientedContraptionEntity; import com.simibubi.create.content.contraptions.OrientedContraptionEntity;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.CachedBufferer;
@ -49,7 +49,7 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
float renderPartialTicks = AnimationTickHolder.getPartialTicks(); float renderPartialTicks = AnimationTickHolder.getPartialTicks();
// rotate to match blockstate // rotate to match blockstate
Quaternionf orientation = BearingInstance.getBlockStateOrientation(facing); Quaternionf orientation = BearingVisual.getBlockStateOrientation(facing);
// rotate against parent // rotate against parent
float angle = getCounterRotationAngle(context, facing, renderPartialTicks) * facing.getAxisDirection() float angle = getCounterRotationAngle(context, facing, renderPartialTicks) * facing.getAxisDirection()
@ -78,9 +78,9 @@ public class StabilizedBearingMovementBehaviour implements MovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return new StabilizedBearingInstance(materialManager, simulationWorld, context); return new StabilizedBearingVisual(visualizationContext, simulationWorld, movementContext);
} }
static float getCounterRotationAngle(MovementContext context, Direction facing, float renderPartialTicks) { static float getCounterRotationAngle(MovementContext context, Direction facing, float renderPartialTicks) {

View file

@ -10,7 +10,7 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -20,7 +20,7 @@ import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class StabilizedBearingInstance extends ActorInstance { public class StabilizedBearingVisual extends ActorVisual {
final OrientedInstance topInstance; final OrientedInstance topInstance;
final RotatingInstance shaft; final RotatingInstance shaft;
@ -29,21 +29,21 @@ public class StabilizedBearingInstance extends ActorInstance {
final Axis rotationAxis; final Axis rotationAxis;
final Quaternionf blockOrientation; final Quaternionf blockOrientation;
public StabilizedBearingInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, MovementContext context) { public StabilizedBearingVisual(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld, MovementContext movementContext) {
super(materialManager, simulationWorld, context); super(visualizationContext, simulationWorld, movementContext);
BlockState blockState = context.state; BlockState blockState = movementContext.state;
facing = blockState.getValue(BlockStateProperties.FACING); facing = blockState.getValue(BlockStateProperties.FACING);
rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()).step()); rotationAxis = Axis.of(Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()).step());
blockOrientation = BearingInstance.getBlockStateOrientation(facing); blockOrientation = BearingVisual.getBlockStateOrientation(facing);
topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.BEARING_TOP), RenderStage.AFTER_BLOCK_ENTITIES) topInstance = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.BEARING_TOP), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();
int blockLight = localBlockLight(); int blockLight = localBlockLight();
topInstance.setPosition(context.localPos) topInstance.setPosition(movementContext.localPos)
.setRotation(blockOrientation) .setRotation(blockOrientation)
.setBlockLight(blockLight); .setBlockLight(blockLight);
@ -51,7 +51,7 @@ public class StabilizedBearingInstance extends ActorInstance {
.createInstance(); .createInstance();
// not rotating so no need to set speed, axis, etc. // not rotating so no need to set speed, axis, etc.
shaft.setPosition(context.localPos) shaft.setPosition(movementContext.localPos)
.setBlockLight(blockLight); .setBlockLight(blockLight);
} }

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.behaviour;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld; import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;
@ -94,8 +94,8 @@ public interface MovementBehaviour {
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
@Nullable @Nullable
default ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, default ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return null; return null;
} }
} }

View file

@ -13,13 +13,12 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
public class StickerInstance extends AbstractBlockEntityVisual<StickerBlockEntity> implements DynamicVisual { public class StickerVisual extends AbstractBlockEntityVisual<StickerBlockEntity> implements DynamicVisual {
float lastOffset = Float.NaN; float lastOffset = Float.NaN;
final Direction facing; final Direction facing;
@ -28,8 +27,8 @@ public class StickerInstance extends AbstractBlockEntityVisual<StickerBlockEntit
private final TransformedInstance head; private final TransformedInstance head;
public StickerInstance(VisualizationContext materialManager, StickerBlockEntity blockEntity) { public StickerVisual(VisualizationContext context, StickerBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
head = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.STICKER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); head = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.STICKER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();

View file

@ -4,13 +4,13 @@ import com.jozufozu.flywheel.api.visual.DynamicVisual;
import com.jozufozu.flywheel.api.visual.VisualFrameContext; import com.jozufozu.flywheel.api.visual.VisualFrameContext;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.light.TickingLightListener; import com.jozufozu.flywheel.lib.light.TickingLightListener;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
// TODO // TODO
public class ElevatorPulleyInstance extends ShaftInstance<ElevatorPulleyBlockEntity> implements DynamicVisual, TickingLightListener { public class ElevatorPulleyVisual extends ShaftVisual<ElevatorPulleyBlockEntity> implements DynamicVisual, TickingLightListener {
public ElevatorPulleyInstance(VisualizationContext materialManager, ElevatorPulleyBlockEntity blockEntity) { public ElevatorPulleyVisual(VisualizationContext context, ElevatorPulleyBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -12,16 +12,15 @@ import com.jozufozu.flywheel.lib.instance.TransformedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraftforge.client.model.data.ModelData;
public class GantryCarriageInstance extends ShaftInstance<GantryCarriageBlockEntity> implements DynamicVisual { public class GantryCarriageVisual extends ShaftVisual<GantryCarriageBlockEntity> implements DynamicVisual {
private final TransformedInstance gantryCogs; private final TransformedInstance gantryCogs;
@ -33,8 +32,8 @@ public class GantryCarriageInstance extends ShaftInstance<GantryCarriageBlockEnt
private float lastAngle = Float.NaN; private float lastAngle = Float.NaN;
public GantryCarriageInstance(VisualizationContext materialManager, GantryCarriageBlockEntity blockEntity) { public GantryCarriageVisual(VisualizationContext context, GantryCarriageBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
gantryCogs = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GANTRY_COGS), RenderStage.AFTER_BLOCK_ENTITIES) gantryCogs = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.GANTRY_COGS), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -15,7 +15,7 @@ import com.jozufozu.flywheel.lib.light.LightVolume;
import com.jozufozu.flywheel.lib.light.TickingLightListener; import com.jozufozu.flywheel.lib.light.TickingLightListener;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.render.ConditionalInstance; import com.simibubi.create.foundation.render.ConditionalInstance;
import com.simibubi.create.foundation.render.GroupInstance; import com.simibubi.create.foundation.render.GroupInstance;
import com.simibubi.create.foundation.render.SelectInstance; import com.simibubi.create.foundation.render.SelectInstance;
@ -25,7 +25,7 @@ import net.minecraft.core.SectionPos;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
public abstract class AbstractPulleyInstance<T extends KineticBlockEntity> extends ShaftInstance<T> implements DynamicVisual, TickingLightListener { public abstract class AbstractPulleyVisual<T extends KineticBlockEntity> extends ShaftVisual<T> implements DynamicVisual, TickingLightListener {
final OrientedInstance coil; final OrientedInstance coil;
final SelectInstance<OrientedInstance> magnet; final SelectInstance<OrientedInstance> magnet;
@ -39,7 +39,7 @@ public abstract class AbstractPulleyInstance<T extends KineticBlockEntity> exten
private final MutableBox volume = new MutableBox(); private final MutableBox volume = new MutableBox();
private final LightVolume light; private final LightVolume light;
public AbstractPulleyInstance(VisualizationContext dispatcher, T blockEntity) { public AbstractPulleyVisual(VisualizationContext dispatcher, T blockEntity) {
super(dispatcher, blockEntity); super(dispatcher, blockEntity);
rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis); rotatingAbout = Direction.get(Direction.AxisDirection.POSITIVE, axis);

View file

@ -10,9 +10,9 @@ import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.fluids.hosePulley.HosePulleyBlockEntity; import com.simibubi.create.content.fluids.hosePulley.HosePulleyBlockEntity;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
public class HosePulleyInstance extends AbstractPulleyInstance<HosePulleyBlockEntity> { public class HosePulleyVisual extends AbstractPulleyVisual<HosePulleyBlockEntity> {
public HosePulleyInstance(VisualizationContext dispatcher, HosePulleyBlockEntity blockEntity) { public HosePulleyVisual(VisualizationContext dispatcher, HosePulleyBlockEntity blockEntity) {
super(dispatcher, blockEntity); super(dispatcher, blockEntity);
} }

View file

@ -12,9 +12,9 @@ import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
public class RopePulleyInstance extends AbstractPulleyInstance<PulleyBlockEntity> { public class RopePulleyVisual extends AbstractPulleyVisual<PulleyBlockEntity> {
public RopePulleyInstance(VisualizationContext materialManager, PulleyBlockEntity blockEntity) { public RopePulleyVisual(VisualizationContext context, PulleyBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
protected Instancer<OrientedInstance> getRopeModel() { protected Instancer<OrientedInstance> getRopeModel() {

View file

@ -7,13 +7,13 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
public abstract class ActorInstance { public abstract class ActorVisual {
protected final VisualizationContext visualizationContext; protected final VisualizationContext visualizationContext;
protected final InstancerProvider instancerProvider; protected final InstancerProvider instancerProvider;
protected final BlockAndTintGetter simulationWorld; protected final BlockAndTintGetter simulationWorld;
protected final MovementContext context; protected final MovementContext context;
public ActorInstance(VisualizationContext visualizationContext, BlockAndTintGetter world, MovementContext context) { public ActorVisual(VisualizationContext visualizationContext, BlockAndTintGetter world, MovementContext context) {
this.visualizationContext = visualizationContext; this.visualizationContext = visualizationContext;
this.instancerProvider = visualizationContext.instancerProvider(); this.instancerProvider = visualizationContext.instancerProvider();
this.simulationWorld = world; this.simulationWorld = world;

View file

@ -3,12 +3,12 @@ package com.simibubi.create.content.equipment.armor;
import com.jozufozu.flywheel.api.model.Model; import com.jozufozu.flywheel.api.model.Model;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
public class BacktankInstance extends SingleRotatingInstance<BacktankBlockEntity> { public class BacktankVisual extends SingleRotatingVisual<BacktankBlockEntity> {
public BacktankInstance(VisualizationContext materialManager, BacktankBlockEntity blockEntity) { public BacktankVisual(VisualizationContext context, BacktankBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -13,21 +13,18 @@ import com.jozufozu.flywheel.lib.instance.TransformedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.ModelData;
public class ToolBoxInstance extends AbstractBlockEntityVisual<ToolboxBlockEntity> implements DynamicVisual { public class ToolBoxVisual extends AbstractBlockEntityVisual<ToolboxBlockEntity> implements DynamicVisual {
private final Direction facing; private final Direction facing;
private TransformedInstance lid; private TransformedInstance lid;
private TransformedInstance[] drawers; private TransformedInstance[] drawers;
public ToolBoxInstance(VisualizationContext materialManager, ToolboxBlockEntity blockEntity) { public ToolBoxVisual(VisualizationContext context, ToolboxBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
facing = blockState.getValue(ToolboxBlock.FACING) facing = blockState.getValue(ToolboxBlock.FACING)
.getOpposite(); .getOpposite();

View file

@ -12,14 +12,14 @@ import com.jozufozu.flywheel.lib.instance.TransformedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
public class FluidValveInstance extends ShaftInstance<FluidValveBlockEntity> implements DynamicVisual { public class FluidValveVisual extends ShaftVisual<FluidValveBlockEntity> implements DynamicVisual {
protected TransformedInstance pointer; protected TransformedInstance pointer;
protected boolean settled; protected boolean settled;
@ -28,7 +28,7 @@ public class FluidValveInstance extends ShaftInstance<FluidValveBlockEntity> imp
protected final double yRot; protected final double yRot;
protected final int pointerRotationOffset; protected final int pointerRotationOffset;
public FluidValveInstance(VisualizationContext dispatcher, FluidValveBlockEntity blockEntity) { public FluidValveVisual(VisualizationContext dispatcher, FluidValveBlockEntity blockEntity) {
super(dispatcher, blockEntity); super(dispatcher, blockEntity);
Direction facing = blockState.getValue(FluidValveBlock.FACING); Direction facing = blockState.getValue(FluidValveBlock.FACING);

View file

@ -6,16 +6,16 @@ import com.jozufozu.flywheel.api.visual.VisualFrameContext;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class PumpCogInstance extends SingleRotatingInstance<PumpBlockEntity> implements DynamicVisual { public class PumpCogVisual extends SingleRotatingVisual<PumpBlockEntity> implements DynamicVisual {
public PumpCogInstance(VisualizationContext materialManager, PumpBlockEntity blockEntity) { public PumpCogVisual(VisualizationContext context, PumpBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -5,9 +5,9 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class BackHalfShaftInstance<T extends KineticBlockEntity> extends HalfShaftInstance<T> { public class BackHalfShaftVisual<T extends KineticBlockEntity> extends HalfShaftVisual<T> {
public BackHalfShaftInstance(VisualizationContext materialManager, T blockEntity) { public BackHalfShaftVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -1,9 +0,0 @@
package com.simibubi.create.content.kinetics.base;
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
public class CutoutRotatingInstance<T extends KineticBlockEntity> extends SingleRotatingInstance<T> {
public CutoutRotatingInstance(VisualizationContext materialManager, T blockEntity) {
super(materialManager, blockEntity);
}
}

View file

@ -0,0 +1,9 @@
package com.simibubi.create.content.kinetics.base;
import com.jozufozu.flywheel.api.visualization.VisualizationContext;
public class CutoutRotatingVisual<T extends KineticBlockEntity> extends SingleRotatingVisual<T> {
public CutoutRotatingVisual(VisualizationContext context, T blockEntity) {
super(context, blockEntity);
}
}

View file

@ -8,9 +8,9 @@ import com.simibubi.create.AllPartialModels;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class HalfShaftInstance<T extends KineticBlockEntity> extends SingleRotatingInstance<T> { public class HalfShaftVisual<T extends KineticBlockEntity> extends SingleRotatingVisual<T> {
public HalfShaftInstance(VisualizationContext materialManager, T blockEntity) { public HalfShaftVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -5,10 +5,10 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class HorizontalHalfShaftInstance<T extends KineticBlockEntity> extends HalfShaftInstance<T> { public class HorizontalHalfShaftVisual<T extends KineticBlockEntity> extends HalfShaftVisual<T> {
public HorizontalHalfShaftInstance(VisualizationContext materialManager, T blockEntity) { public HorizontalHalfShaftVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -10,12 +10,12 @@ import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.Axis;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public abstract class KineticBlockEntityInstance<T extends KineticBlockEntity> extends AbstractBlockEntityVisual<T> { public abstract class KineticBlockEntityVisual<T extends KineticBlockEntity> extends AbstractBlockEntityVisual<T> {
protected final Direction.Axis axis; protected final Direction.Axis axis;
public KineticBlockEntityInstance(VisualizationContext materialManager, T blockEntity) { public KineticBlockEntityVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
axis = (blockState.getBlock() instanceof IRotate irotate) ? irotate.getRotationAxis(blockState) : Axis.Y; axis = (blockState.getBlock() instanceof IRotate irotate) ? irotate.getRotationAxis(blockState) : Axis.Y;
} }

View file

@ -4,10 +4,10 @@ import com.jozufozu.flywheel.api.model.Model;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
public class ShaftInstance<T extends KineticBlockEntity> extends SingleRotatingInstance<T> { public class ShaftVisual<T extends KineticBlockEntity> extends SingleRotatingVisual<T> {
public ShaftInstance(VisualizationContext materialManager, T blockEntity) { public ShaftVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -9,12 +9,12 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
public class SingleRotatingInstance<T extends KineticBlockEntity> extends KineticBlockEntityInstance<T> { public class SingleRotatingVisual<T extends KineticBlockEntity> extends KineticBlockEntityVisual<T> {
protected RotatingInstance rotatingModel; protected RotatingInstance rotatingModel;
public SingleRotatingInstance(VisualizationContext materialManager, T blockEntity) { public SingleRotatingVisual(VisualizationContext context, T blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -15,7 +15,7 @@ import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.jozufozu.flywheel.lib.transform.TransformStack; import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
@ -26,7 +26,7 @@ import net.minecraft.util.Mth;
import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.DyeColor;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
public class BeltVisual extends KineticBlockEntityInstance<BeltBlockEntity> { public class BeltVisual extends KineticBlockEntityVisual<BeltBlockEntity> {
boolean upward; boolean upward;
boolean diagonal; boolean diagonal;
@ -39,8 +39,8 @@ public class BeltVisual extends KineticBlockEntityInstance<BeltBlockEntity> {
protected ArrayList<BeltInstance> keys; protected ArrayList<BeltInstance> keys;
protected RotatingInstance pulleyKey; protected RotatingInstance pulleyKey;
public BeltVisual(VisualizationContext materialManager, BeltBlockEntity blockEntity) { public BeltVisual(VisualizationContext context, BeltBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
if (!AllBlocks.BELT.has(blockState)) if (!AllBlocks.BELT.has(blockState))
return; return;

View file

@ -7,21 +7,21 @@ import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
public class ShaftlessCogwheelInstance extends SingleRotatingInstance<KineticBlockEntity> { public class ShaftlessCogwheelVisual extends SingleRotatingVisual<KineticBlockEntity> {
public ShaftlessCogwheelInstance(VisualizationContext materialManager, KineticBlockEntity blockEntity) { public ShaftlessCogwheelVisual(VisualizationContext context, KineticBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override
protected Model model() { protected Model model() {
Direction facing = blockState.getValue(MechanicalCrafterBlock.HORIZONTAL_FACING); Direction facing = blockState.getValue(MechanicalCrafterBlock.HORIZONTAL_FACING);
return Models.partial(AllPartialModels.SHAFTLESS_COGWHEEL, facing, ShaftlessCogwheelInstance::rotateToFace); return Models.partial(AllPartialModels.SHAFTLESS_COGWHEEL, facing, ShaftlessCogwheelVisual::rotateToFace);
} }
private static void rotateToFace(Direction facing, PoseStack stack) { private static void rotateToFace(Direction facing, PoseStack stack) {

View file

@ -10,18 +10,18 @@ import com.jozufozu.flywheel.api.visual.VisualFrameContext;
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;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class HandCrankInstance extends SingleRotatingInstance<HandCrankBlockEntity> implements DynamicVisual { public class HandCrankVisual extends SingleRotatingVisual<HandCrankBlockEntity> implements DynamicVisual {
private TransformedInstance crank; private TransformedInstance crank;
private Direction facing; private Direction facing;
public HandCrankInstance(VisualizationContext modelManager, HandCrankBlockEntity blockEntity) { public HandCrankVisual(VisualizationContext modelManager, HandCrankBlockEntity blockEntity) {
super(modelManager, blockEntity); super(modelManager, blockEntity);
facing = blockState.getValue(BlockStateProperties.FACING); facing = blockState.getValue(BlockStateProperties.FACING);
Model model = blockEntity.getRenderedHandleInstance(); Model model = blockEntity.getRenderedHandleInstance();

View file

@ -13,9 +13,9 @@ import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.kinetics.base.IRotate; import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
@ -31,7 +31,7 @@ import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
public class DeployerActorInstance extends ActorInstance { public class DeployerActorVisual extends ActorVisual {
private final PoseStack stack = new PoseStack(); private final PoseStack stack = new PoseStack();
Direction facing; Direction facing;
@ -45,8 +45,8 @@ public class DeployerActorInstance extends ActorInstance {
TransformedInstance hand; TransformedInstance hand;
RotatingInstance shaft; RotatingInstance shaft;
public DeployerActorInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, MovementContext context) { public DeployerActorVisual(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld, MovementContext context) {
super(materialManager, simulationWorld, context); super(visualizationContext, simulationWorld, context);
BlockState state = context.state; BlockState state = context.state;
DeployerBlockEntity.Mode mode = NBTHelper.readEnum(context.blockEntityData, "Mode", DeployerBlockEntity.Mode.class); DeployerBlockEntity.Mode mode = NBTHelper.readEnum(context.blockEntityData, "Mode", DeployerBlockEntity.Mode.class);
PartialModel handPose = DeployerRenderer.getHandPose(mode); PartialModel handPose = DeployerRenderer.getHandPose(mode);
@ -59,13 +59,11 @@ public class DeployerActorInstance extends ActorInstance {
xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0; xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0;
zRot = rotatePole ? 90 : 0; zRot = rotatePole ? 90 : 0;
var instancerProvider = materialManager.instancerProvider();
pole = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.DEPLOYER_POLE), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); pole = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.DEPLOYER_POLE), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();
hand = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(handPose), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); hand = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(handPose), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();
Direction.Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); Direction.Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state);
shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(KineticBlockEntityInstance.shaft(axis)), RenderStage.AFTER_BLOCK_ENTITIES) shaft = instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(KineticBlockEntityVisual.shaft(axis)), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();
int blockLight = localBlockLight(); int blockLight = localBlockLight();

View file

@ -16,7 +16,7 @@ import com.simibubi.create.content.contraptions.OrientedContraptionEntity;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.mounted.MountedContraption; import com.simibubi.create.content.contraptions.mounted.MountedContraption;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity.Mode; import com.simibubi.create.content.kinetics.deployer.DeployerBlockEntity.Mode;
@ -295,8 +295,8 @@ public class DeployerMovementBehaviour implements MovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld,
MovementContext context) { MovementContext movementContext) {
return new DeployerActorInstance(materialManager, simulationWorld, context); return new DeployerActorVisual(visualizationContext, simulationWorld, movementContext);
} }
} }

View file

@ -20,7 +20,7 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.model.baked.PartialModel; import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
@ -29,7 +29,7 @@ import net.minecraft.core.Direction;
import net.minecraft.core.Vec3i; import net.minecraft.core.Vec3i;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
public class DeployerInstance extends ShaftInstance<DeployerBlockEntity> implements DynamicVisual, TickableVisual { public class DeployerVisual extends ShaftVisual<DeployerBlockEntity> implements DynamicVisual, TickableVisual {
final Direction facing; final Direction facing;
final float yRot; final float yRot;
@ -43,8 +43,8 @@ public class DeployerInstance extends ShaftInstance<DeployerBlockEntity> impleme
PartialModel currentHand; PartialModel currentHand;
float progress; float progress;
public DeployerInstance(VisualizationContext materialManager, DeployerBlockEntity blockEntity) { public DeployerVisual(VisualizationContext context, DeployerBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
facing = blockState.getValue(FACING); facing = blockState.getValue(FACING);

View file

@ -6,8 +6,9 @@ import com.jozufozu.flywheel.api.event.RenderStage;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.contraptions.actors.flwdata.ActorInstance; import com.simibubi.create.content.contraptions.actors.ActorInstance;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.VecHelper;
@ -17,13 +18,13 @@ import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public class DrillActorInstance extends com.simibubi.create.content.contraptions.render.ActorInstance { public class DrillActorVisual extends ActorVisual {
ActorInstance drillHead; ActorInstance drillHead;
private final Direction facing; private final Direction facing;
public DrillActorInstance(VisualizationContext materialManager, VirtualRenderWorld contraption, MovementContext context) { public DrillActorVisual(VisualizationContext visualizationContext, VirtualRenderWorld contraption, MovementContext context) {
super(materialManager, contraption, context); super(visualizationContext, contraption, context);
BlockState state = context.state; BlockState state = context.state;
@ -38,8 +39,7 @@ public class DrillActorInstance extends com.simibubi.create.content.contraptions
else else
eulerY = facing.toYRot() + ((axis == Direction.Axis.X) ? 180 : 0); eulerY = facing.toYRot() + ((axis == Direction.Axis.X) ? 180 : 0);
drillHead = materialManager.instancerProvider() drillHead = instancerProvider.instancer(AllInstanceTypes.ACTORS, Models.partial(AllPartialModels.DRILL_HEAD), RenderStage.AFTER_BLOCK_ENTITIES)
.instancer(AllInstanceTypes.ACTORS, Models.partial(AllPartialModels.DRILL_HEAD), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();
drillHead.setPosition(context.localPos) drillHead.setPosition(context.localPos)

View file

@ -5,7 +5,7 @@ import javax.annotation.Nullable;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.simibubi.create.AllTags; import com.simibubi.create.AllTags;
import com.simibubi.create.content.contraptions.behaviour.MovementContext; import com.simibubi.create.content.contraptions.behaviour.MovementContext;
import com.simibubi.create.content.contraptions.render.ActorInstance; import com.simibubi.create.content.contraptions.render.ActorVisual;
import com.simibubi.create.content.contraptions.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour; import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour;
@ -52,8 +52,8 @@ public class DrillMovementBehaviour extends BlockBreakingMovementBehaviour {
@Nullable @Nullable
@Override @Override
public ActorInstance createInstance(VisualizationContext materialManager, VirtualRenderWorld simulationWorld, MovementContext context) { public ActorVisual createInstance(VisualizationContext visualizationContext, VirtualRenderWorld simulationWorld, MovementContext movementContext) {
return new DrillActorInstance(materialManager, simulationWorld, context); return new DrillActorVisual(visualizationContext, simulationWorld, movementContext);
} }
@Override @Override

View file

@ -4,15 +4,15 @@ import com.jozufozu.flywheel.api.model.Model;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class DrillInstance extends SingleRotatingInstance<DrillBlockEntity> { public class DrillVisual extends SingleRotatingVisual<DrillBlockEntity> {
public DrillInstance(VisualizationContext materialManager, DrillBlockEntity blockEntity) { public DrillVisual(VisualizationContext context, DrillBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -9,7 +9,7 @@ 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.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
@ -17,15 +17,15 @@ import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
public class FanInstance extends KineticBlockEntityInstance<EncasedFanBlockEntity> { public class FanVisual extends KineticBlockEntityVisual<EncasedFanBlockEntity> {
protected final RotatingInstance shaft; protected final RotatingInstance shaft;
protected final RotatingInstance fan; protected final RotatingInstance fan;
final Direction direction; final Direction direction;
private final Direction opposite; private final Direction opposite;
public FanInstance(VisualizationContext materialManager, EncasedFanBlockEntity blockEntity) { public FanVisual(VisualizationContext context, EncasedFanBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
direction = blockState.getValue(FACING); direction = blockState.getValue(FACING);

View file

@ -11,7 +11,7 @@ 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.transform.TransformStack; import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
@ -20,14 +20,14 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
public class FlywheelInstance extends KineticBlockEntityInstance<FlywheelBlockEntity> implements DynamicVisual { public class FlywheelVisual extends KineticBlockEntityVisual<FlywheelBlockEntity> implements DynamicVisual {
protected final RotatingInstance shaft; protected final RotatingInstance shaft;
protected final TransformedInstance wheel; protected final TransformedInstance wheel;
protected float lastAngle = Float.NaN; protected float lastAngle = Float.NaN;
public FlywheelInstance(VisualizationContext materialManager, FlywheelBlockEntity blockEntity) { public FlywheelVisual(VisualizationContext context, FlywheelBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
shaft = setup(instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(shaft()), RenderStage.AFTER_BLOCK_ENTITIES) shaft = setup(instancerProvider.instancer(AllInstanceTypes.ROTATING, VirtualRenderHelper.blockModel(shaft()), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance()); .createInstance());

View file

@ -15,7 +15,7 @@ import com.jozufozu.flywheel.lib.model.Models;
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;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
@ -23,14 +23,14 @@ import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
public abstract class GaugeInstance extends ShaftInstance<GaugeBlockEntity> implements DynamicVisual { public abstract class GaugeVisual extends ShaftVisual<GaugeBlockEntity> implements DynamicVisual {
protected final ArrayList<DialFace> faces; protected final ArrayList<DialFace> faces;
protected PoseStack ms; protected PoseStack ms;
protected GaugeInstance(VisualizationContext materialManager, GaugeBlockEntity blockEntity) { protected GaugeVisual(VisualizationContext context, GaugeBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
faces = new ArrayList<>(2); faces = new ArrayList<>(2);
@ -153,9 +153,9 @@ public abstract class GaugeInstance extends ShaftInstance<GaugeBlockEntity> impl
} }
} }
public static class Speed extends GaugeInstance { public static class Speed extends GaugeVisual {
public Speed(VisualizationContext materialManager, GaugeBlockEntity blockEntity) { public Speed(VisualizationContext context, GaugeBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override
@ -164,9 +164,9 @@ public abstract class GaugeInstance extends ShaftInstance<GaugeBlockEntity> impl
} }
} }
public static class Stress extends GaugeInstance { public static class Stress extends GaugeVisual {
public Stress(VisualizationContext materialManager, GaugeBlockEntity blockEntity) { public Stress(VisualizationContext context, GaugeBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -10,7 +10,7 @@ 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;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
@ -20,13 +20,13 @@ import net.minecraft.core.Direction;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class GearboxInstance extends KineticBlockEntityInstance<GearboxBlockEntity> { public class GearboxVisual extends KineticBlockEntityVisual<GearboxBlockEntity> {
protected final EnumMap<Direction, RotatingInstance> keys; protected final EnumMap<Direction, RotatingInstance> keys;
protected Direction sourceFacing; protected Direction sourceFacing;
public GearboxInstance(VisualizationContext materialManager, GearboxBlockEntity blockEntity) { public GearboxVisual(VisualizationContext context, GearboxBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
keys = new EnumMap<>(Direction.class); keys = new EnumMap<>(Direction.class);

View file

@ -17,7 +17,7 @@ import com.jozufozu.flywheel.lib.model.Models;
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;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Color;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
@ -28,7 +28,7 @@ import net.minecraft.util.Mth;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implements DynamicVisual { public class ArmVisual extends SingleRotatingVisual<ArmBlockEntity> implements DynamicVisual {
final TransformedInstance base; final TransformedInstance base;
final TransformedInstance lowerBody; final TransformedInstance lowerBody;
@ -46,8 +46,8 @@ public class ArmInstance extends SingleRotatingInstance<ArmBlockEntity> implemen
private float upperArmAngle = Float.NaN; private float upperArmAngle = Float.NaN;
private float headAngle = Float.NaN; private float headAngle = Float.NaN;
public ArmInstance(VisualizationContext materialManager, ArmBlockEntity blockEntity) { public ArmVisual(VisualizationContext context, ArmBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
base = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE), RenderStage.AFTER_BLOCK_ENTITIES) base = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ARM_BASE), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -4,12 +4,12 @@ import com.jozufozu.flywheel.api.model.Model;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
public class MillstoneCogInstance extends SingleRotatingInstance<MillstoneBlockEntity> { public class MillstoneCogVisual extends SingleRotatingVisual<MillstoneBlockEntity> {
public MillstoneCogInstance(VisualizationContext materialManager, MillstoneBlockEntity blockEntity) { public MillstoneCogVisual(VisualizationContext context, MillstoneBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -13,20 +13,20 @@ import com.jozufozu.flywheel.lib.instance.OrientedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogInstance; import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogVisual;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
public class MixerInstance extends EncasedCogInstance implements DynamicVisual { public class MixerVisual extends EncasedCogVisual implements DynamicVisual {
private final RotatingInstance mixerHead; private final RotatingInstance mixerHead;
private final OrientedInstance mixerPole; private final OrientedInstance mixerPole;
private final MechanicalMixerBlockEntity mixer; private final MechanicalMixerBlockEntity mixer;
public MixerInstance(VisualizationContext materialManager, MechanicalMixerBlockEntity blockEntity) { public MixerVisual(VisualizationContext context, MechanicalMixerBlockEntity blockEntity) {
super(materialManager, blockEntity, false); super(context, blockEntity, false);
this.mixer = blockEntity; this.mixer = blockEntity;
mixerHead = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.MECHANICAL_MIXER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES) mixerHead = instancerProvider.instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.MECHANICAL_MIXER_HEAD), RenderStage.AFTER_BLOCK_ENTITIES)

View file

@ -14,16 +14,16 @@ import com.jozufozu.flywheel.lib.instance.OrientedInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
public class PressInstance extends ShaftInstance<MechanicalPressBlockEntity> implements DynamicVisual { public class PressVisual extends ShaftVisual<MechanicalPressBlockEntity> implements DynamicVisual {
private final OrientedInstance pressHead; private final OrientedInstance pressHead;
public PressInstance(VisualizationContext materialManager, MechanicalPressBlockEntity blockEntity) { public PressVisual(VisualizationContext context, MechanicalPressBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
pressHead = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_PRESS_HEAD), RenderStage.AFTER_BLOCK_ENTITIES) pressHead = instancerProvider.instancer(InstanceTypes.ORIENTED, Models.partial(AllPartialModels.MECHANICAL_PRESS_HEAD), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -4,7 +4,7 @@ import com.jozufozu.flywheel.api.model.Model;
import com.jozufozu.flywheel.api.visualization.VisualizationContext; import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.render.VirtualRenderHelper; import com.simibubi.create.foundation.render.VirtualRenderHelper;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
@ -12,10 +12,10 @@ import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class SawInstance extends SingleRotatingInstance<SawBlockEntity> { public class SawVisual extends SingleRotatingVisual<SawBlockEntity> {
public SawInstance(VisualizationContext materialManager, SawBlockEntity blockEntity) { public SawVisual(VisualizationContext context, SawBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override

View file

@ -13,20 +13,20 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.content.kinetics.base.SingleRotatingInstance;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.content.kinetics.base.SingleRotatingVisual;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Direction.AxisDirection; import net.minecraft.core.Direction.AxisDirection;
public class BracketedKineticBlockEntityInstance extends SingleRotatingInstance<BracketedKineticBlockEntity> { public class BracketedKineticBlockEntityVisual extends SingleRotatingVisual<BracketedKineticBlockEntity> {
protected RotatingInstance additionalShaft; protected RotatingInstance additionalShaft;
public BracketedKineticBlockEntityInstance(VisualizationContext materialManager, BracketedKineticBlockEntity blockEntity) { public BracketedKineticBlockEntityVisual(VisualizationContext context, BracketedKineticBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
} }
@Override @Override
@ -42,7 +42,7 @@ public class BracketedKineticBlockEntityInstance extends SingleRotatingInstance<
Direction.Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity); Direction.Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity);
BlockPos pos = blockEntity.getBlockPos(); BlockPos pos = blockEntity.getBlockPos();
float offset = BracketedKineticBlockEntityRenderer.getShaftAngleOffset(axis, pos); float offset = BracketedKineticBlockEntityRenderer.getShaftAngleOffset(axis, pos);
var model = Models.partial(AllPartialModels.COGWHEEL_SHAFT, axis, BracketedKineticBlockEntityInstance::rotateToAxis); var model = Models.partial(AllPartialModels.COGWHEEL_SHAFT, axis, BracketedKineticBlockEntityVisual::rotateToAxis);
Instancer<RotatingInstance> half = instancerProvider.instancer(AllInstanceTypes.ROTATING, model, RenderStage.AFTER_BLOCK_ENTITIES); Instancer<RotatingInstance> half = instancerProvider.instancer(AllInstanceTypes.ROTATING, model, RenderStage.AFTER_BLOCK_ENTITIES);
additionalShaft = setup(half.createInstance(), speed); additionalShaft = setup(half.createInstance(), speed);
@ -55,7 +55,7 @@ public class BracketedKineticBlockEntityInstance extends SingleRotatingInstance<
return super.model(); return super.model();
Direction.Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity); Direction.Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity);
return Models.partial(AllPartialModels.SHAFTLESS_LARGE_COGWHEEL, axis, BracketedKineticBlockEntityInstance::rotateToAxis); return Models.partial(AllPartialModels.SHAFTLESS_LARGE_COGWHEEL, axis, BracketedKineticBlockEntityVisual::rotateToAxis);
} }
private static void rotateToAxis(Direction.Axis axis, PoseStack ms) { private static void rotateToAxis(Direction.Axis axis, PoseStack ms) {

View file

@ -16,7 +16,7 @@ import com.mojang.math.Axis;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.IRotate; import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
@ -28,7 +28,7 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
public class EncasedCogInstance extends KineticBlockEntityInstance<KineticBlockEntity> { public class EncasedCogVisual extends KineticBlockEntityVisual<KineticBlockEntity> {
private boolean large; private boolean large;
@ -36,15 +36,15 @@ public class EncasedCogInstance extends KineticBlockEntityInstance<KineticBlockE
protected Optional<RotatingInstance> rotatingTopShaft; protected Optional<RotatingInstance> rotatingTopShaft;
protected Optional<RotatingInstance> rotatingBottomShaft; protected Optional<RotatingInstance> rotatingBottomShaft;
public static EncasedCogInstance small(VisualizationContext modelManager, KineticBlockEntity blockEntity) { public static EncasedCogVisual small(VisualizationContext modelManager, KineticBlockEntity blockEntity) {
return new EncasedCogInstance(modelManager, blockEntity, false); return new EncasedCogVisual(modelManager, blockEntity, false);
} }
public static EncasedCogInstance large(VisualizationContext modelManager, KineticBlockEntity blockEntity) { public static EncasedCogVisual large(VisualizationContext modelManager, KineticBlockEntity blockEntity) {
return new EncasedCogInstance(modelManager, blockEntity, true); return new EncasedCogVisual(modelManager, blockEntity, true);
} }
public EncasedCogInstance(VisualizationContext modelManager, KineticBlockEntity blockEntity, boolean large) { public EncasedCogVisual(VisualizationContext modelManager, KineticBlockEntity blockEntity, boolean large) {
super(modelManager, blockEntity); super(modelManager, blockEntity);
this.large = large; this.large = large;
} }
@ -102,7 +102,7 @@ public class EncasedCogInstance extends KineticBlockEntityInstance<KineticBlockE
Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), AxisDirection.POSITIVE); Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), AxisDirection.POSITIVE);
PartialModel partial = large ? AllPartialModels.SHAFTLESS_LARGE_COGWHEEL : AllPartialModels.SHAFTLESS_COGWHEEL; PartialModel partial = large ? AllPartialModels.SHAFTLESS_LARGE_COGWHEEL : AllPartialModels.SHAFTLESS_COGWHEEL;
return Models.partial(partial, facing, EncasedCogInstance::transformCog); return Models.partial(partial, facing, EncasedCogVisual::transformCog);
} }
private static void transformCog(Direction dir, PoseStack stack) { private static void transformCog(Direction dir, PoseStack stack) {

View file

@ -18,16 +18,15 @@ import com.simibubi.create.foundation.utility.AngleHelper;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.Axis;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraftforge.client.model.data.ModelData;
public class SteamEngineInstance extends AbstractBlockEntityVisual<SteamEngineBlockEntity> implements DynamicVisual { public class SteamEngineVisual extends AbstractBlockEntityVisual<SteamEngineBlockEntity> implements DynamicVisual {
protected final TransformedInstance piston; protected final TransformedInstance piston;
protected final TransformedInstance linkage; protected final TransformedInstance linkage;
protected final TransformedInstance connector; protected final TransformedInstance connector;
public SteamEngineInstance(VisualizationContext materialManager, SteamEngineBlockEntity blockEntity) { public SteamEngineVisual(VisualizationContext context, SteamEngineBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
piston = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ENGINE_PISTON), RenderStage.AFTER_BLOCK_ENTITIES) piston = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ENGINE_PISTON), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -10,7 +10,7 @@ import com.jozufozu.flywheel.lib.instance.AbstractInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.IRotate; import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
@ -18,11 +18,11 @@ import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
public class SplitShaftInstance extends KineticBlockEntityInstance<SplitShaftBlockEntity> { public class SplitShaftVisual extends KineticBlockEntityVisual<SplitShaftBlockEntity> {
protected final ArrayList<RotatingInstance> keys; protected final ArrayList<RotatingInstance> keys;
public SplitShaftInstance(VisualizationContext modelManager, SplitShaftBlockEntity blockEntity) { public SplitShaftVisual(VisualizationContext modelManager, SplitShaftBlockEntity blockEntity) {
super(modelManager, blockEntity); super(modelManager, blockEntity);
keys = new ArrayList<>(2); keys = new ArrayList<>(2);

View file

@ -5,7 +5,7 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.model.ModelCache; import com.jozufozu.flywheel.lib.model.ModelCache;
import com.jozufozu.flywheel.lib.model.baked.BakedModelBuilder; import com.jozufozu.flywheel.lib.model.baked.BakedModelBuilder;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.CutoutRotatingInstance; import com.simibubi.create.content.kinetics.base.CutoutRotatingVisual;
import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.CachedBufferer;
import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.BakedModel;
@ -13,24 +13,24 @@ import net.minecraft.core.Direction;
import net.minecraft.core.Direction.AxisDirection; import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public class WaterWheelInstance<T extends WaterWheelBlockEntity> extends CutoutRotatingInstance<T> { public class WaterWheelVisual<T extends WaterWheelBlockEntity> extends CutoutRotatingVisual<T> {
private static final ModelCache<WaterWheelModelKey> MODEL_CACHE = new ModelCache<>(WaterWheelInstance::createModel); private static final ModelCache<WaterWheelModelKey> MODEL_CACHE = new ModelCache<>(WaterWheelVisual::createModel);
protected final boolean large; protected final boolean large;
protected final WaterWheelModelKey key; protected final WaterWheelModelKey key;
public WaterWheelInstance(VisualizationContext materialManager, T blockEntity, boolean large) { public WaterWheelVisual(VisualizationContext context, T blockEntity, boolean large) {
super(materialManager, blockEntity); super(context, blockEntity);
this.large = large; this.large = large;
key = new WaterWheelModelKey(large, blockState, blockEntity.material); key = new WaterWheelModelKey(large, blockState, blockEntity.material);
} }
public static <T extends WaterWheelBlockEntity> WaterWheelInstance<T> standard(VisualizationContext materialManager, T blockEntity) { public static <T extends WaterWheelBlockEntity> WaterWheelVisual<T> standard(VisualizationContext context, T blockEntity) {
return new WaterWheelInstance<>(materialManager, blockEntity, false); return new WaterWheelVisual<>(context, blockEntity, false);
} }
public static <T extends WaterWheelBlockEntity> WaterWheelInstance<T> large(VisualizationContext materialManager, T blockEntity) { public static <T extends WaterWheelBlockEntity> WaterWheelVisual<T> large(VisualizationContext context, T blockEntity) {
return new WaterWheelInstance<>(materialManager, blockEntity, true); return new WaterWheelVisual<>(context, blockEntity, true);
} }
@Override @Override

View file

@ -11,18 +11,16 @@ 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;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.ShaftInstance; import com.simibubi.create.content.kinetics.base.ShaftVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.util.Mth; public class EjectorVisual extends ShaftVisual<EjectorBlockEntity> implements DynamicVisual {
public class EjectorInstance extends ShaftInstance<EjectorBlockEntity> implements DynamicVisual {
protected final TransformedInstance plate; protected final TransformedInstance plate;
private float lastProgress = Float.NaN; private float lastProgress = Float.NaN;
public EjectorInstance(VisualizationContext dispatcher, EjectorBlockEntity blockEntity) { public EjectorVisual(VisualizationContext dispatcher, EjectorBlockEntity blockEntity) {
super(dispatcher, blockEntity); super(dispatcher, blockEntity);
plate = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); plate = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.EJECTOR_TOP), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();

View file

@ -10,7 +10,7 @@ import com.jozufozu.flywheel.lib.instance.FlatLit;
import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.LightTexture;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
public class FlapData extends AbstractInstance implements FlatLit { public class FlapInstance extends AbstractInstance implements FlatLit {
public float x; public float x;
public float y; public float y;
@ -28,20 +28,20 @@ public class FlapData extends AbstractInstance implements FlatLit {
public float flapScale; public float flapScale;
public float flapness; public float flapness;
public FlapData(InstanceType<?> type, InstanceHandle handle) { public FlapInstance(InstanceType<?> type, InstanceHandle handle) {
super(type, handle); super(type, handle);
} }
public FlapData setPosition(BlockPos pos) { public FlapInstance setPosition(BlockPos pos) {
return setPosition(pos.getX(), pos.getY(), pos.getZ()); return setPosition(pos.getX(), pos.getY(), pos.getZ());
} }
public FlapData setPosition(Vector3f pos) { public FlapInstance setPosition(Vector3f pos) {
return setPosition(pos.x(), pos.y(), pos.z()); return setPosition(pos.x(), pos.y(), pos.z());
} }
public FlapData setPosition(float x, float y, float z) { public FlapInstance setPosition(float x, float y, float z) {
this.x = x; this.x = x;
this.y = y; this.y = y;
this.z = z; this.z = z;
@ -49,13 +49,13 @@ public class FlapData extends AbstractInstance implements FlatLit {
} }
@Override @Override
public FlapData setBlockLight(int blockLight) { public FlapInstance setBlockLight(int blockLight) {
this.blockLight = (byte) (blockLight & 0xF); this.blockLight = (byte) (blockLight & 0xF);
return this; return this;
} }
@Override @Override
public FlapData setSkyLight(int skyLight) { public FlapInstance setSkyLight(int skyLight) {
this.skyLight = (byte) (skyLight & 0xF); this.skyLight = (byte) (skyLight & 0xF);
return this; return this;
} }
@ -65,34 +65,34 @@ public class FlapData extends AbstractInstance implements FlatLit {
return LightTexture.pack(this.blockLight, this.skyLight); return LightTexture.pack(this.blockLight, this.skyLight);
} }
public FlapData 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;
this.segmentOffsetZ = z; this.segmentOffsetZ = z;
return this; return this;
} }
public FlapData setIntensity(float intensity) { public FlapInstance setIntensity(float intensity) {
this.intensity = intensity; this.intensity = intensity;
return this; return this;
} }
public FlapData setHorizontalAngle(float horizontalAngle) { public FlapInstance setHorizontalAngle(float horizontalAngle) {
this.horizontalAngle = horizontalAngle; this.horizontalAngle = horizontalAngle;
return this; return this;
} }
public FlapData setFlapScale(float flapScale) { public FlapInstance setFlapScale(float flapScale) {
this.flapScale = flapScale; this.flapScale = flapScale;
return this; return this;
} }
public FlapData setFlapness(float flapness) { public FlapInstance setFlapness(float flapness) {
this.flapness = flapness; this.flapness = flapness;
return this; return this;
} }
public FlapData setPivotVoxelSpace(float x, float y, float z) { public FlapInstance setPivotVoxelSpace(float x, float y, float z) {
pivotX = x / 16f; pivotX = x / 16f;
pivotY = y / 16f; pivotY = y / 16f;
pivotZ = z / 16f; pivotZ = z / 16f;

View file

@ -14,19 +14,19 @@ import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.model.baked.PartialModel; import com.jozufozu.flywheel.lib.model.baked.PartialModel;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapData; import com.simibubi.create.content.logistics.flwdata.FlapInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
public class FunnelInstance extends AbstractBlockEntityVisual<FunnelBlockEntity> implements DynamicVisual { public class FunnelVisual extends AbstractBlockEntityVisual<FunnelBlockEntity> implements DynamicVisual {
private final ArrayList<FlapData> flaps; private final ArrayList<FlapInstance> flaps;
public FunnelInstance(VisualizationContext materialManager, FunnelBlockEntity blockEntity) { public FunnelVisual(VisualizationContext context, FunnelBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
flaps = new ArrayList<>(4); flaps = new ArrayList<>(4);
@ -34,7 +34,7 @@ public class FunnelInstance extends AbstractBlockEntityVisual<FunnelBlockEntity>
PartialModel flapPartial = (blockState.getBlock() instanceof FunnelBlock ? AllPartialModels.FUNNEL_FLAP PartialModel flapPartial = (blockState.getBlock() instanceof FunnelBlock ? AllPartialModels.FUNNEL_FLAP
: AllPartialModels.BELT_FUNNEL_FLAP); : AllPartialModels.BELT_FUNNEL_FLAP);
Instancer<FlapData> model = instancerProvider.instancer(AllInstanceTypes.FLAPS, Models.partial(flapPartial), RenderStage.AFTER_BLOCK_ENTITIES); Instancer<FlapInstance> model = instancerProvider.instancer(AllInstanceTypes.FLAPS, Models.partial(flapPartial), RenderStage.AFTER_BLOCK_ENTITIES);
int blockLight = level.getBrightness(LightLayer.BLOCK, pos); int blockLight = level.getBrightness(LightLayer.BLOCK, pos);
int skyLight = level.getBrightness(LightLayer.SKY, pos); int skyLight = level.getBrightness(LightLayer.SKY, pos);
@ -48,7 +48,7 @@ public class FunnelInstance extends AbstractBlockEntityVisual<FunnelBlockEntity>
float intensity = segment == 3 ? 1.5f : segment + 1; float intensity = segment == 3 ? 1.5f : segment + 1;
float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f; float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f;
FlapData key = model.createInstance(); FlapInstance key = model.createInstance();
key.setPosition(getVisualPosition()) key.setPosition(getVisualPosition())
.setSegmentOffset(segmentOffset, 0, -blockEntity.getFlapOffset()) .setSegmentOffset(segmentOffset, 0, -blockEntity.getFlapOffset())
@ -70,7 +70,7 @@ public class FunnelInstance extends AbstractBlockEntityVisual<FunnelBlockEntity>
float flapness = blockEntity.flap.getValue(AnimationTickHolder.getPartialTicks()); float flapness = blockEntity.flap.getValue(AnimationTickHolder.getPartialTicks());
for (FlapData flap : flaps) { for (FlapInstance flap : flaps) {
flap.setFlapness(flapness); flap.setFlapness(flapness);
} }
} }

View file

@ -16,7 +16,7 @@ import com.jozufozu.flywheel.lib.instance.AbstractInstance;
import com.jozufozu.flywheel.lib.model.Models; import com.jozufozu.flywheel.lib.model.Models;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.logistics.flwdata.FlapData; import com.simibubi.create.content.logistics.flwdata.FlapInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes; import com.simibubi.create.foundation.render.AllInstanceTypes;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat;
@ -24,16 +24,16 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
public class BeltTunnelInstance extends AbstractBlockEntityVisual<BeltTunnelBlockEntity> implements DynamicVisual { public class BeltTunnelVisual extends AbstractBlockEntityVisual<BeltTunnelBlockEntity> implements DynamicVisual {
private final Map<Direction, ArrayList<FlapData>> tunnelFlaps; private final Map<Direction, ArrayList<FlapInstance>> tunnelFlaps;
public BeltTunnelInstance(VisualizationContext materialManager, BeltTunnelBlockEntity blockEntity) { public BeltTunnelVisual(VisualizationContext context, BeltTunnelBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
tunnelFlaps = new EnumMap<>(Direction.class); tunnelFlaps = new EnumMap<>(Direction.class);
Instancer<FlapData> model = instancerProvider.instancer(AllInstanceTypes.FLAPS, Models.partial(AllPartialModels.BELT_TUNNEL_FLAP), RenderStage.AFTER_BLOCK_ENTITIES); Instancer<FlapInstance> model = instancerProvider.instancer(AllInstanceTypes.FLAPS, Models.partial(AllPartialModels.BELT_TUNNEL_FLAP), RenderStage.AFTER_BLOCK_ENTITIES);
int blockLight = level.getBrightness(LightLayer.BLOCK, pos); int blockLight = level.getBrightness(LightLayer.BLOCK, pos);
int skyLight = level.getBrightness(LightLayer.SKY, pos); int skyLight = level.getBrightness(LightLayer.SKY, pos);
@ -46,13 +46,13 @@ public class BeltTunnelInstance extends AbstractBlockEntityVisual<BeltTunnelBloc
float flapScale = direction.getAxis() == Direction.Axis.X ? 1 : -1; float flapScale = direction.getAxis() == Direction.Axis.X ? 1 : -1;
ArrayList<FlapData> flaps = new ArrayList<>(4); ArrayList<FlapInstance> flaps = new ArrayList<>(4);
for (int segment = 0; segment <= 3; segment++) { for (int segment = 0; segment <= 3; segment++) {
float intensity = segment == 3 ? 1.5f : segment + 1; float intensity = segment == 3 ? 1.5f : segment + 1;
float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f; float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f;
FlapData key = model.createInstance(); FlapInstance key = model.createInstance();
key.setPosition(getVisualPosition()) key.setPosition(getVisualPosition())
.setSegmentOffset(segmentOffset, 0, 0) .setSegmentOffset(segmentOffset, 0, 0)
@ -84,7 +84,7 @@ public class BeltTunnelInstance extends AbstractBlockEntityVisual<BeltTunnelBloc
return; return;
float flapness = lerpedFloat.getValue(AnimationTickHolder.getPartialTicks()); float flapness = lerpedFloat.getValue(AnimationTickHolder.getPartialTicks());
for (FlapData flap : keys) { for (FlapInstance flap : keys) {
flap.setFlapness(flapness); flap.setFlapness(flapness);
} }
}); });

View file

@ -21,7 +21,7 @@ import com.simibubi.create.foundation.utility.Color;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.properties.AttachFace; import net.minecraft.world.level.block.state.properties.AttachFace;
public class AnalogLeverInstance extends AbstractBlockEntityVisual<AnalogLeverBlockEntity> implements DynamicVisual { public class AnalogLeverVisual extends AbstractBlockEntityVisual<AnalogLeverBlockEntity> implements DynamicVisual {
protected final TransformedInstance handle; protected final TransformedInstance handle;
protected final TransformedInstance indicator; protected final TransformedInstance indicator;
@ -29,8 +29,8 @@ public class AnalogLeverInstance extends AbstractBlockEntityVisual<AnalogLeverBl
final float rX; final float rX;
final float rY; final float rY;
public AnalogLeverInstance(VisualizationContext materialManager, AnalogLeverBlockEntity blockEntity) { public AnalogLeverVisual(VisualizationContext context, AnalogLeverBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
handle = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ANALOG_LEVER_HANDLE), RenderStage.AFTER_BLOCK_ENTITIES) handle = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.ANALOG_LEVER_HANDLE), RenderStage.AFTER_BLOCK_ENTITIES)
.createInstance(); .createInstance();

View file

@ -14,14 +14,14 @@ import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Color;
public class BrassDiodeInstance extends AbstractBlockEntityVisual<BrassDiodeBlockEntity> implements TickableVisual { public class BrassDiodeVisual extends AbstractBlockEntityVisual<BrassDiodeBlockEntity> implements TickableVisual {
protected final TransformedInstance indicator; protected final TransformedInstance indicator;
protected int previousState; protected int previousState;
public BrassDiodeInstance(VisualizationContext materialManager, BrassDiodeBlockEntity blockEntity) { public BrassDiodeVisual(VisualizationContext context, BrassDiodeBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
indicator = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLEXPEATER_INDICATOR), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); indicator = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.FLEXPEATER_INDICATOR), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();

View file

@ -6,7 +6,6 @@ import com.jozufozu.flywheel.api.event.RenderStage;
import com.jozufozu.flywheel.api.instance.Instance; import com.jozufozu.flywheel.api.instance.Instance;
import com.jozufozu.flywheel.api.visual.DynamicVisual; import com.jozufozu.flywheel.api.visual.DynamicVisual;
import com.jozufozu.flywheel.api.visual.VisualFrameContext; import com.jozufozu.flywheel.api.visual.VisualFrameContext;
import com.jozufozu.flywheel.api.visual.VisualTickContext;
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;
@ -15,17 +14,16 @@ import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractBlockEntityVisual;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllPartialModels; import com.simibubi.create.AllPartialModels;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
public class SchematicannonInstance extends AbstractBlockEntityVisual<SchematicannonBlockEntity> implements DynamicVisual { public class SchematicannonVisual extends AbstractBlockEntityVisual<SchematicannonBlockEntity> implements DynamicVisual {
private final TransformedInstance connector; private final TransformedInstance connector;
private final TransformedInstance pipe; private final TransformedInstance pipe;
public SchematicannonInstance(VisualizationContext materialManager, SchematicannonBlockEntity blockEntity) { public SchematicannonVisual(VisualizationContext context, SchematicannonBlockEntity blockEntity) {
super(materialManager, blockEntity); super(context, blockEntity);
connector = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.SCHEMATICANNON_CONNECTOR), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); connector = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.SCHEMATICANNON_CONNECTOR), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();
pipe = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.SCHEMATICANNON_PIPE), RenderStage.AFTER_BLOCK_ENTITIES).createInstance(); pipe = instancerProvider.instancer(InstanceTypes.TRANSFORMED, Models.partial(AllPartialModels.SCHEMATICANNON_PIPE), RenderStage.AFTER_BLOCK_ENTITIES).createInstance();

View file

@ -16,7 +16,7 @@ public class BackupBogeyRenderer extends BogeyRenderer.CommonRenderer {
} }
@Override @Override
public void initialiseContraptionModelData(VisualizationContext materialManager, CarriageBogey carriageBogey) { public void initialiseContraptionModelData(VisualizationContext context, CarriageBogey carriageBogey) {
} }
} }

View file

@ -181,21 +181,21 @@ public abstract class BogeyRenderer {
/** /**
* Provides render implementations a point in setup to instantiate all model data to be needed * Provides render implementations a point in setup to instantiate all model data to be needed
* *
* @param materialManager The material manager * @param context The visualization context
* @param carriageBogey The bogey to create data for * @param carriageBogey The bogey to create data for
*/ */
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public abstract void initialiseContraptionModelData(VisualizationContext materialManager, CarriageBogey carriageBogey); public abstract void initialiseContraptionModelData(VisualizationContext context, CarriageBogey carriageBogey);
/** /**
* Creates instances of models for in-world rendering to a set length from a provided partial model * Creates instances of models for in-world rendering to a set length from a provided partial model
* *
* @param materialManager The material manager * @param context The visualization context
* @param model Partial model to be instanced * @param model Partial model to be instanced
* @param count Amount of models neeeded * @param count Amount of models neeeded
*/ */
public void createModelInstance(VisualizationContext materialManager, PartialModel model, int count) { public void createModelInstance(VisualizationContext context, PartialModel model, int count) {
var instancer = materialManager.instancerProvider() var instancer = context.instancerProvider()
.instancer(InstanceTypes.TRANSFORMED, Models.partial(model), RenderStage.AFTER_BLOCK_ENTITIES); .instancer(InstanceTypes.TRANSFORMED, Models.partial(model), RenderStage.AFTER_BLOCK_ENTITIES);
BogeyModelData[] modelData = IntStream.range(0, count) BogeyModelData[] modelData = IntStream.range(0, count)
.mapToObj(i -> instancer.createInstance()) .mapToObj(i -> instancer.createInstance())
@ -207,12 +207,12 @@ public abstract class BogeyRenderer {
/** /**
* Creates instances of models for in-contraption rendering to a set length from a provided blockstate * Creates instances of models for in-contraption rendering to a set length from a provided blockstate
* *
* @param materialManager The material manager * @param context The visualization context
* @param state Blockstate of the model to be created * @param state Blockstate of the model to be created
* @param count Amount of models needed * @param count Amount of models needed
*/ */
public void createModelInstance(VisualizationContext materialManager, BlockState state, int count) { public void createModelInstance(VisualizationContext context, BlockState state, int count) {
var instancer = materialManager.instancerProvider() var instancer = context.instancerProvider()
.instancer(InstanceTypes.TRANSFORMED, VirtualRenderHelper.blockModel(state), RenderStage.AFTER_BLOCK_ENTITIES); .instancer(InstanceTypes.TRANSFORMED, VirtualRenderHelper.blockModel(state), RenderStage.AFTER_BLOCK_ENTITIES);
BogeyModelData[] modelData = IntStream.range(0, count) BogeyModelData[] modelData = IntStream.range(0, count)
.mapToObj(i -> instancer.createInstance()) .mapToObj(i -> instancer.createInstance())
@ -224,23 +224,23 @@ public abstract class BogeyRenderer {
/** /**
* Creates a single instance of models for in-contraption rendering from a provided blockstate * Creates a single instance of models for in-contraption rendering from a provided blockstate
* *
* @param materialManager The material manager * @param context The visualization context
* @param states Blockstates of the models to be created * @param states Blockstates of the models to be created
*/ */
public void createModelInstance(VisualizationContext materialManager, BlockState... states) { public void createModelInstance(VisualizationContext context, BlockState... states) {
for (BlockState state : states) for (BlockState state : states)
this.createModelInstance(materialManager, state, 1); this.createModelInstance(context, state, 1);
} }
/** /**
* Helper function to create a single model instance for in-contraption rendering * Helper function to create a single model instance for in-contraption rendering
* *
* @param materialManager The material manager * @param context The visualization context
* @param models The type of model to create instances of * @param models The type of model to create instances of
*/ */
public void createModelInstance(VisualizationContext materialManager, PartialModel... models) { public void createModelInstance(VisualizationContext context, PartialModel... models) {
for (PartialModel model : models) for (PartialModel model : models)
createModelInstance(materialManager, model, 1); createModelInstance(context, model, 1);
} }
/** /**

View file

@ -116,8 +116,8 @@ public class BogeyStyle {
return this.commonRendererFactory.map(Supplier::get); return this.commonRendererFactory.map(Supplier::get);
} }
public BogeyInstance createInstance(CarriageBogey bogey, BogeySizes.BogeySize size, VisualizationContext materialManager) { public BogeyVisual createVisual(CarriageBogey bogey, BogeySizes.BogeySize size, VisualizationContext context) {
return new BogeyInstance(bogey, this, size, materialManager); return new BogeyVisual(bogey, this, size, context);
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)

View file

@ -13,7 +13,7 @@ import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.LightLayer; import net.minecraft.world.level.LightLayer;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
public final class BogeyInstance { public final class BogeyVisual {
private final BogeySizes.BogeySize size; private final BogeySizes.BogeySize size;
private final BogeyStyle style; private final BogeyStyle style;
@ -21,8 +21,8 @@ public final class BogeyInstance {
public final BogeyRenderer renderer; public final BogeyRenderer renderer;
public final Optional<BogeyRenderer.CommonRenderer> commonRenderer; public final Optional<BogeyRenderer.CommonRenderer> commonRenderer;
public BogeyInstance(CarriageBogey bogey, BogeyStyle style, BogeySizes.BogeySize size, public BogeyVisual(CarriageBogey bogey, BogeyStyle style, BogeySizes.BogeySize size,
VisualizationContext materialManager) { VisualizationContext context) {
this.bogey = bogey; this.bogey = bogey;
this.size = size; this.size = size;
this.style = style; this.style = style;
@ -30,8 +30,8 @@ public final class BogeyInstance {
this.renderer = this.style.createRendererInstance(this.size); this.renderer = this.style.createRendererInstance(this.size);
this.commonRenderer = this.style.getNewCommonRenderInstance(); this.commonRenderer = this.style.getNewCommonRenderInstance();
commonRenderer.ifPresent(bogeyRenderer -> bogeyRenderer.initialiseContraptionModelData(materialManager, bogey)); commonRenderer.ifPresent(bogeyRenderer -> bogeyRenderer.initialiseContraptionModelData(context, bogey));
renderer.initialiseContraptionModelData(materialManager, bogey); renderer.initialiseContraptionModelData(context, bogey);
} }
public void beginFrame(float wheelAngle, PoseStack ms) { public void beginFrame(float wheelAngle, PoseStack ms) {
@ -59,7 +59,7 @@ public final class BogeyInstance {
} }
@FunctionalInterface @FunctionalInterface
interface BogeyInstanceFactory { interface BogeyVisualFactory {
BogeyInstance create(CarriageBogey bogey, BogeySizes.BogeySize size, VisualizationContext materialManager); BogeyVisual create(CarriageBogey bogey, BogeySizes.BogeySize size, VisualizationContext context);
} }
} }

View file

@ -22,8 +22,8 @@ import net.minecraft.nbt.CompoundTag;
public class StandardBogeyRenderer { public class StandardBogeyRenderer {
public static class CommonStandardBogeyRenderer extends BogeyRenderer.CommonRenderer { public static class CommonStandardBogeyRenderer extends BogeyRenderer.CommonRenderer {
@Override @Override
public void initialiseContraptionModelData(VisualizationContext materialManager, CarriageBogey carriageBogey) { public void initialiseContraptionModelData(VisualizationContext context, CarriageBogey carriageBogey) {
createModelInstance(materialManager, AllBlocks.SHAFT.getDefaultState() createModelInstance(context, AllBlocks.SHAFT.getDefaultState()
.setValue(ShaftBlock.AXIS, Direction.Axis.Z), 2); .setValue(ShaftBlock.AXIS, Direction.Axis.Z), 2);
} }
@ -45,9 +45,9 @@ public class StandardBogeyRenderer {
public static class SmallStandardBogeyRenderer extends BogeyRenderer { public static class SmallStandardBogeyRenderer extends BogeyRenderer {
@Override @Override
public void initialiseContraptionModelData(VisualizationContext materialManager, CarriageBogey carriageBogey) { public void initialiseContraptionModelData(VisualizationContext context, CarriageBogey carriageBogey) {
createModelInstance(materialManager, SMALL_BOGEY_WHEELS, 2); createModelInstance(context, SMALL_BOGEY_WHEELS, 2);
createModelInstance(materialManager, BOGEY_FRAME); createModelInstance(context, BOGEY_FRAME);
} }
@ -78,9 +78,9 @@ public class StandardBogeyRenderer {
public static class LargeStandardBogeyRenderer extends BogeyRenderer { public static class LargeStandardBogeyRenderer extends BogeyRenderer {
@Override @Override
public void initialiseContraptionModelData(VisualizationContext materialManager, CarriageBogey carriageBogey) { public void initialiseContraptionModelData(VisualizationContext context, CarriageBogey carriageBogey) {
createModelInstance(materialManager, LARGE_BOGEY_WHEELS, BOGEY_DRIVE, BOGEY_PISTON, BOGEY_PIN); createModelInstance(context, LARGE_BOGEY_WHEELS, BOGEY_DRIVE, BOGEY_PISTON, BOGEY_PIN);
createModelInstance(materialManager, AllBlocks.SHAFT.getDefaultState() createModelInstance(context, AllBlocks.SHAFT.getDefaultState()
.setValue(ShaftBlock.AXIS, Direction.Axis.X), 2); .setValue(ShaftBlock.AXIS, Direction.Axis.X), 2);
} }

View file

@ -10,8 +10,8 @@ import com.simibubi.create.AllBogeyStyles;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.content.trains.bogey.AbstractBogeyBlock; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlock;
import com.simibubi.create.content.trains.bogey.AbstractBogeyBlockEntity; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlockEntity;
import com.simibubi.create.content.trains.bogey.BogeyInstance;
import com.simibubi.create.content.trains.bogey.BogeyStyle; import com.simibubi.create.content.trains.bogey.BogeyStyle;
import com.simibubi.create.content.trains.bogey.BogeyVisual;
import com.simibubi.create.content.trains.graph.DimensionPalette; import com.simibubi.create.content.trains.graph.DimensionPalette;
import com.simibubi.create.content.trains.graph.TrackGraph; import com.simibubi.create.content.trains.graph.TrackGraph;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
@ -199,8 +199,8 @@ public class CarriageBogey {
return new CarriageBogey(type, upsideDown, data, points.getFirst(), points.getSecond()); return new CarriageBogey(type, upsideDown, data, points.getFirst(), points.getSecond());
} }
public BogeyInstance createInstance(VisualizationContext materialManager) { public BogeyVisual createVisual(VisualizationContext context) {
return this.getStyle().createInstance(this, type.getSize(), materialManager); return this.getStyle().createVisual(this, type.getSize(), context);
} }
public BogeyStyle getStyle() { public BogeyStyle getStyle() {

View file

@ -737,10 +737,10 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private WeakReference<CarriageContraptionInstance> instanceHolder; private WeakReference<CarriageContraptionVisual> instanceHolder;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public void bindInstance(CarriageContraptionInstance instance) { public void bindInstance(CarriageContraptionVisual instance) {
this.instanceHolder = new WeakReference<>(instance); this.instanceHolder = new WeakReference<>(instance);
updateRenderedPortalCutoff(); updateRenderedPortalCutoff();
} }
@ -780,7 +780,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
// update hidden bogeys (if instanced) // update hidden bogeys (if instanced)
if (instanceHolder == null) if (instanceHolder == null)
return; return;
CarriageContraptionInstance instance = instanceHolder.get(); CarriageContraptionVisual instance = instanceHolder.get();
if (instance == null) if (instance == null)
return; return;

View file

@ -8,22 +8,22 @@ import com.jozufozu.flywheel.api.visualization.VisualizationContext;
import com.jozufozu.flywheel.lib.transform.TransformStack; import com.jozufozu.flywheel.lib.transform.TransformStack;
import com.jozufozu.flywheel.lib.visual.AbstractEntityVisual; import com.jozufozu.flywheel.lib.visual.AbstractEntityVisual;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.trains.bogey.BogeyInstance;
import com.simibubi.create.content.trains.bogey.BogeyRenderer; import com.simibubi.create.content.trains.bogey.BogeyRenderer;
import com.simibubi.create.content.trains.bogey.BogeyVisual;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
public class CarriageContraptionInstance extends AbstractEntityVisual<CarriageContraptionEntity> implements DynamicVisual { public class CarriageContraptionVisual extends AbstractEntityVisual<CarriageContraptionEntity> implements DynamicVisual {
private final PoseStack ms = new PoseStack(); private final PoseStack ms = new PoseStack();
private Carriage carriage; private Carriage carriage;
private Couple<BogeyInstance> bogeys; private Couple<BogeyVisual> bogeys;
private Couple<Boolean> bogeyHidden; private Couple<Boolean> bogeyHidden;
public CarriageContraptionInstance(VisualizationContext materialManager, CarriageContraptionEntity entity) { public CarriageContraptionVisual(VisualizationContext context, CarriageContraptionEntity entity) {
super(materialManager, entity); super(context, entity);
bogeyHidden = Couple.create(() -> false); bogeyHidden = Couple.create(() -> false);
entity.bindInstance(this); entity.bindInstance(this);
} }
@ -36,7 +36,7 @@ public class CarriageContraptionInstance extends AbstractEntityVisual<CarriageCo
return; return;
bogeys = carriage.bogeys.mapNotNullWithParam((bogey, manager) -> bogeys = carriage.bogeys.mapNotNullWithParam((bogey, manager) ->
bogey.getStyle().createInstance(bogey, bogey.type.getSize(), manager), visualizationContext); bogey.getStyle().createVisual(bogey, bogey.type.getSize(), manager), visualizationContext);
updateLight(); updateLight();
} }
@ -65,7 +65,7 @@ public class CarriageContraptionInstance extends AbstractEntityVisual<CarriageCo
.translate(instancePosition); .translate(instancePosition);
for (boolean current : Iterate.trueAndFalse) { for (boolean current : Iterate.trueAndFalse) {
BogeyInstance instance = bogeys.get(current); BogeyVisual instance = bogeys.get(current);
if (instance == null) if (instance == null)
continue; continue;
if (bogeyHidden.get(current)) { if (bogeyHidden.get(current)) {

View file

@ -26,16 +26,14 @@ import com.simibubi.create.content.trains.track.BezierConnection.SegmentAngles;
import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraftforge.client.model.data.ModelData;
public class TrackInstance extends AbstractBlockEntityVisual<TrackBlockEntity> { public class TrackVisual extends AbstractBlockEntityVisual<TrackBlockEntity> {
private List<BezierTrackInstance> instances; private List<BezierTrackVisual> visuals;
public TrackInstance(VisualizationContext materialManager, TrackBlockEntity track) { public TrackVisual(VisualizationContext context, TrackBlockEntity track) {
super(materialManager, track); super(context, track);
} }
@Override @Override
@ -44,7 +42,7 @@ public class TrackInstance extends AbstractBlockEntityVisual<TrackBlockEntity> {
return; return;
_delete(); _delete();
instances = blockEntity.connections.values() visuals = blockEntity.connections.values()
.stream() .stream()
.map(this::createInstance) .map(this::createInstance)
.filter(Objects::nonNull) .filter(Objects::nonNull)
@ -63,35 +61,35 @@ public class TrackInstance extends AbstractBlockEntityVisual<TrackBlockEntity> {
@Override @Override
public void updateLight() { public void updateLight() {
if (instances == null) if (visuals == null)
return; return;
instances.forEach(BezierTrackInstance::updateLight); visuals.forEach(BezierTrackVisual::updateLight);
} }
@Nullable @Nullable
private BezierTrackInstance createInstance(BezierConnection bc) { private BezierTrackVisual createInstance(BezierConnection bc) {
if (!bc.isPrimary()) if (!bc.isPrimary())
return null; return null;
return new BezierTrackInstance(bc); return new BezierTrackVisual(bc);
} }
@Override @Override
public void _delete() { public void _delete() {
if (instances == null) if (visuals == null)
return; return;
instances.forEach(BezierTrackInstance::delete); visuals.forEach(BezierTrackVisual::delete);
} }
@Override @Override
public void collectCrumblingInstances(Consumer<Instance> consumer) { public void collectCrumblingInstances(Consumer<Instance> consumer) {
if (instances == null) if (visuals == null)
return; return;
for (BezierTrackInstance instance : instances) { for (BezierTrackVisual instance : visuals) {
instance.collectCrumblingInstances(consumer); instance.collectCrumblingInstances(consumer);
} }
} }
private class BezierTrackInstance { private class BezierTrackVisual {
private final TransformedInstance[] ties; private final TransformedInstance[] ties;
private final TransformedInstance[] left; private final TransformedInstance[] left;
@ -100,11 +98,11 @@ public class TrackInstance extends AbstractBlockEntityVisual<TrackBlockEntity> {
private final BlockPos[] leftLightPos; private final BlockPos[] leftLightPos;
private final BlockPos[] rightLightPos; private final BlockPos[] rightLightPos;
private @Nullable GirderInstance girder; private @Nullable GirderVisual girder;
private BezierTrackInstance(BezierConnection bc) { private BezierTrackVisual(BezierConnection bc) {
BlockPos tePosition = bc.tePositions.getFirst(); BlockPos tePosition = bc.tePositions.getFirst();
girder = bc.hasGirder ? new GirderInstance(bc) : null; girder = bc.hasGirder ? new GirderVisual(bc) : null;
PoseStack pose = new PoseStack(); PoseStack pose = new PoseStack();
TransformStack.of(pose) TransformStack.of(pose)
@ -182,13 +180,13 @@ public class TrackInstance extends AbstractBlockEntityVisual<TrackBlockEntity> {
girder.collectCrumblingInstances(consumer); girder.collectCrumblingInstances(consumer);
} }
private class GirderInstance { private class GirderVisual {
private final Couple<TransformedInstance[]> beams; private final Couple<TransformedInstance[]> beams;
private final Couple<Couple<TransformedInstance[]>> beamCaps; private final Couple<Couple<TransformedInstance[]>> beamCaps;
private final BlockPos[] lightPos; private final BlockPos[] lightPos;
private GirderInstance(BezierConnection bc) { private GirderVisual(BezierConnection bc) {
BlockPos tePosition = bc.tePositions.getFirst(); BlockPos tePosition = bc.tePositions.getFirst();
PoseStack pose = new PoseStack(); PoseStack pose = new PoseStack();
TransformStack.of(pose) TransformStack.of(pose)

View file

@ -9,10 +9,10 @@ import com.jozufozu.flywheel.api.layout.FloatRepr;
import com.jozufozu.flywheel.api.layout.IntegerRepr; import com.jozufozu.flywheel.api.layout.IntegerRepr;
import com.jozufozu.flywheel.api.layout.LayoutBuilder; import com.jozufozu.flywheel.api.layout.LayoutBuilder;
import com.jozufozu.flywheel.lib.instance.SimpleInstanceType; import com.jozufozu.flywheel.lib.instance.SimpleInstanceType;
import com.simibubi.create.content.contraptions.actors.flwdata.ActorInstance; import com.simibubi.create.content.contraptions.actors.ActorInstance;
import com.simibubi.create.content.kinetics.base.RotatingInstance; import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.content.kinetics.belt.BeltInstance; import com.simibubi.create.content.kinetics.belt.BeltInstance;
import com.simibubi.create.content.logistics.flwdata.FlapData; import com.simibubi.create.content.logistics.flwdata.FlapInstance;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
@ -120,7 +120,7 @@ public class AllInstanceTypes {
MemoryUtil.memPutFloat(ptr + 42, instance.speed); MemoryUtil.memPutFloat(ptr + 42, instance.speed);
}) })
.register(); .register();
public static final InstanceType<FlapData> FLAPS = SimpleInstanceType.builder(FlapData::new) public static final InstanceType<FlapInstance> FLAPS = SimpleInstanceType.builder(FlapInstance::new)
.cullShader(asResource("instance/cull/flap.glsl")) .cullShader(asResource("instance/cull/flap.glsl"))
.vertexShader(asResource("instance/flap.vert")) .vertexShader(asResource("instance/flap.vert"))
.layout(LayoutBuilder.create() .layout(LayoutBuilder.create()