From bce234ec504e69046acdd33d3504acd245ca9b5c Mon Sep 17 00:00:00 2001 From: zelophed Date: Thu, 18 Aug 2022 17:30:48 +0200 Subject: [PATCH] Pondering Alone, Part I --- build.gradle | 81 +- .../com/simibubi/create/AllBlockPartials.java | 4 +- .../java/com/simibubi/create/AllBlocks.java | 2 +- .../com/simibubi/create/AllEntityTypes.java | 2 +- .../com/simibubi/create/AllParticleTypes.java | 2 +- .../com/simibubi/create/AllRecipeTypes.java | 2 +- .../java/com/simibubi/create/AllShapes.java | 2 +- .../com/simibubi/create/AllSoundEvents.java | 4 +- .../simibubi/create/AllSpecialTextures.java | 16 +- .../com/simibubi/create/AllSpriteShifts.java | 2 +- .../java/com/simibubi/create/AllTags.java | 4 +- .../com/simibubi/create/CreateClient.java | 26 +- .../api/connectivity/ConnectivityHandler.java | 12 +- .../java/com/simibubi/create/compat/Mods.java | 3 +- .../simibubi/create/compat/jei/CreateJEI.java | 2 +- .../create/compat/jei/DoubleItemIcon.java | 2 +- .../jei/PotionFluidSubtypeInterpreter.java | 2 +- .../compat/jei/ScreenResourceWrapper.java | 8 +- .../compat/jei/category/BasinCategory.java | 6 +- .../jei/category/CreateRecipeCategory.java | 12 +- .../compat/jei/category/CrushingCategory.java | 2 +- .../jei/category/DeployingCategory.java | 4 +- .../jei/category/FanBlastingCategory.java | 2 +- .../jei/category/FanHauntingCategory.java | 2 +- .../jei/category/FanSmokingCategory.java | 2 +- .../jei/category/FanWashingCategory.java | 2 +- .../jei/category/ItemApplicationCategory.java | 6 +- .../jei/category/PolishingCategory.java | 2 +- .../category/ProcessingViaFanCategory.java | 4 +- .../category/SequencedAssemblyCategory.java | 12 +- .../animations/AnimatedBlazeBurner.java | 5 +- .../category/animations/AnimatedDeployer.java | 2 +- .../animations/AnimatedItemDrain.java | 2 +- .../category/animations/AnimatedKinetics.java | 11 +- .../category/animations/AnimatedMixer.java | 2 +- .../category/animations/AnimatedPress.java | 2 +- .../category/animations/AnimatedSpout.java | 4 +- .../SequencedAssemblySubCategory.java | 4 +- .../content/contraptions/KineticDebugger.java | 9 +- .../contraptions/RotationPropagator.java | 14 +- .../contraptions/TorquePropagator.java | 2 +- .../base/DirectionalAxisKineticBlock.java | 5 +- .../base/DirectionalKineticBlock.java | 3 +- .../base/GeneratingKineticTileEntity.java | 10 +- .../base/HorizontalAxisKineticBlock.java | 3 +- .../base/HorizontalKineticBlock.java | 3 +- .../content/contraptions/base/IRotate.java | 11 +- .../base/KineticEffectHandler.java | 2 +- .../contraptions/base/KineticTileEntity.java | 24 +- .../base/KineticTileEntityRenderer.java | 6 +- .../base/RotatedPillarKineticBlock.java | 3 +- .../contraptions/base/flwdata/BeltType.java | 2 +- .../base/flwdata/KineticData.java | 2 +- .../base/flwdata/RotatingType.java | 2 +- .../BlockBreakingKineticTileEntity.java | 8 +- .../components/actors/DrillActorInstance.java | 4 +- .../actors/DrillMovementBehaviour.java | 2 +- .../components/actors/DrillRenderer.java | 6 +- .../actors/HarvesterActorInstance.java | 8 +- .../actors/HarvesterMovementBehaviour.java | 2 +- .../components/actors/HarvesterRenderer.java | 8 +- .../components/actors/PIInstance.java | 2 +- .../components/actors/PSIActorInstance.java | 5 +- .../components/actors/PSIInstance.java | 3 +- .../actors/PloughMovementBehaviour.java | 2 +- .../PortableStorageInterfaceMovement.java | 6 +- .../PortableStorageInterfaceRenderer.java | 6 +- .../PortableStorageInterfaceTileEntity.java | 2 +- .../actors/SawMovementBehaviour.java | 2 +- .../actors/SeatMovementBehaviour.java | 4 +- .../components/clock/CuckooClockRenderer.java | 2 +- .../clock/CuckooClockTileEntity.java | 12 +- .../crafter/ConnectedInputHandler.java | 2 +- .../crafter/MechanicalCrafterBlock.java | 8 +- .../crafter/MechanicalCrafterRenderer.java | 6 +- .../crafter/MechanicalCrafterTileEntity.java | 6 +- .../components/crafter/RecipeGridHandler.java | 4 +- .../components/crank/HandCrankBlock.java | 8 +- .../components/crank/HandCrankInstance.java | 2 +- .../components/crank/HandCrankTileEntity.java | 2 +- .../components/crank/ValveHandleBlock.java | 4 +- .../crusher/CrushingWheelBlock.java | 4 +- .../crusher/CrushingWheelControllerBlock.java | 8 +- .../CrushingWheelControllerTileEntity.java | 4 +- .../crusher/CrushingWheelTileEntity.java | 4 +- .../deployer/DeployerActorInstance.java | 8 +- .../deployer/DeployerApplicationRecipe.java | 4 +- .../deployer/DeployerFakePlayer.java | 4 +- .../deployer/DeployerFilterSlot.java | 4 +- .../components/deployer/DeployerHandler.java | 2 +- .../components/deployer/DeployerInstance.java | 4 +- .../deployer/DeployerMovementBehaviour.java | 6 +- .../deployer/DeployerMovingInteraction.java | 2 +- .../components/deployer/DeployerRenderer.java | 13 +- .../deployer/DeployerTileEntity.java | 6 +- .../components/fan/AirCurrent.java | 4 +- .../components/fan/EncasedFanBlock.java | 4 +- .../components/fan/EncasedFanRenderer.java | 4 +- .../components/fan/NozzleTileEntity.java | 2 +- .../components/flywheel/FlyWheelInstance.java | 4 +- .../components/flywheel/FlywheelRenderer.java | 2 +- .../flywheel/FlywheelTileEntity.java | 4 +- .../components/millstone/MillstoneBlock.java | 2 +- .../millstone/MillstoneTileEntity.java | 4 +- .../mixer/MechanicalMixerRenderer.java | 4 +- .../mixer/MechanicalMixerTileEntity.java | 8 +- .../components/mixer/MixerInstance.java | 2 +- .../motor/CreativeMotorTileEntity.java | 6 +- .../press/MechanicalPressTileEntity.java | 2 +- .../components/press/PressInstance.java | 5 +- .../components/press/PressingBehaviour.java | 4 +- .../components/press/PressingRecipe.java | 8 +- .../components/saw/CuttingRecipe.java | 8 +- .../components/saw/SawFilterSlot.java | 2 +- .../components/saw/SawRenderer.java | 4 +- .../components/saw/SawTileEntity.java | 6 +- .../components/steam/PoweredShaftBlock.java | 10 +- .../components/steam/SteamEngineBlock.java | 14 +- .../components/steam/SteamEngineRenderer.java | 4 +- .../steam/SteamEngineTileEntity.java | 8 +- .../components/steam/SteamEngineValueBox.java | 6 +- .../steam/whistle/WhistleBlock.java | 4 +- .../steam/whistle/WhistleExtenderBlock.java | 2 +- .../steam/whistle/WhistleRenderer.java | 6 +- .../steam/whistle/WhistleTileEntity.java | 14 +- .../AbstractContraptionEntity.java | 8 +- .../structureMovement/AssemblyException.java | 6 +- .../structureMovement/Contraption.java | 10 +- .../ContraptionCollider.java | 8 +- .../structureMovement/ContraptionHandler.java | 10 +- .../ContraptionHandlerClient.java | 6 +- .../structureMovement/ContraptionWorld.java | 3 +- .../ControlledContraptionEntity.java | 6 +- .../DirectionalExtenderScrollOptionSlot.java | 2 +- .../IControlContraption.java | 6 +- .../IDisplayAssemblyExceptions.java | 8 +- .../MountedFluidStorage.java | 6 +- .../structureMovement/MountedStorage.java | 4 +- .../MountedStorageManager.java | 2 +- .../structureMovement/MovementContext.java | 5 +- .../OrientedContraptionEntity.java | 10 +- .../structureMovement/StructureTransform.java | 10 +- .../bearing/BearingInstance.java | 4 +- .../bearing/BearingRenderer.java | 2 +- .../bearing/ClockworkBearingTileEntity.java | 13 +- .../bearing/ClockworkContraption.java | 2 +- .../bearing/MechanicalBearingTileEntity.java | 8 +- .../structureMovement/bearing/SailBlock.java | 8 +- .../bearing/StabilizedBearingInstance.java | 2 +- .../StabilizedBearingMovementBehaviour.java | 2 +- .../bearing/WindmillBearingBlock.java | 6 +- .../bearing/WindmillBearingTileEntity.java | 7 +- .../chassis/AbstractChassisBlock.java | 2 +- .../chassis/ChassisRangeDisplay.java | 14 +- .../chassis/ChassisTileEntity.java | 8 +- .../chassis/StickerInstance.java | 4 +- .../chassis/StickerRenderer.java | 6 +- .../chassis/StickerTileEntity.java | 6 +- .../gantry/GantryCarriageBlock.java | 4 +- .../gantry/GantryCarriageInstance.java | 4 +- .../gantry/GantryCarriageRenderer.java | 8 +- .../gantry/GantryContraptionEntity.java | 4 +- .../glue/SuperGlueEntity.java | 6 +- .../glue/SuperGlueHandler.java | 6 +- .../structureMovement/glue/SuperGlueItem.java | 2 +- .../glue/SuperGlueSelectionHandler.java | 24 +- .../glue/SuperGlueSelectionHelper.java | 2 +- .../interaction/controls/ControlsHandler.java | 6 +- .../controls/ControlsMovementBehaviour.java | 8 +- .../controls/ControlsRenderer.java | 4 +- .../controls/ControlsServerHandler.java | 4 +- .../interaction/controls/TrainHUD.java | 30 +- .../mounted/CartAssembleRailType.java | 10 +- .../mounted/CartAssemblerBlockItem.java | 6 +- .../mounted/CartAssemblerTileEntity.java | 13 +- .../mounted/MinecartContraptionItem.java | 10 +- .../mounted/MountedContraption.java | 8 +- .../piston/LinearActuatorTileEntity.java | 4 +- .../piston/MechanicalPistonBlock.java | 4 +- .../piston/PistonContraption.java | 2 +- .../piston/PistonExtensionPoleBlock.java | 8 +- .../pulley/AbstractPulleyRenderer.java | 2 +- .../pulley/HosePulleyInstance.java | 3 +- .../pulley/RopePulleyInstance.java | 3 +- .../render/ContraptionMatrices.java | 2 +- .../render/ContraptionRenderInfo.java | 2 +- .../render/FlwContraption.java | 3 +- .../render/SBBContraptionManager.java | 2 +- .../train/CouplingHandler.java | 14 +- .../train/CouplingHandlerClient.java | 2 +- .../train/CouplingPhysics.java | 14 +- .../train/CouplingRenderer.java | 14 +- .../train/MinecartCouplingItem.java | 2 +- .../train/MinecartSim2020.java | 2 +- .../CapabilityMinecartController.java | 4 +- .../train/capability/MinecartController.java | 12 +- .../tracks/ControllerRailBlock.java | 4 +- .../components/turntable/TurntableBlock.java | 6 +- .../turntable/TurntableHandler.java | 10 +- .../waterwheel/WaterWheelBlock.java | 6 +- .../waterwheel/WaterWheelTileEntity.java | 4 +- .../contraptions/fluids/FlowSource.java | 2 +- .../content/contraptions/fluids/FluidFX.java | 2 +- .../contraptions/fluids/FluidNetwork.java | 6 +- .../contraptions/fluids/FluidPropagator.java | 4 +- .../fluids/FluidTransportBehaviour.java | 4 +- .../contraptions/fluids/OpenEndedPipe.java | 2 +- .../fluids/PipeAttachmentModel.java | 6 +- .../contraptions/fluids/PipeConnection.java | 12 +- .../contraptions/fluids/PumpCogInstance.java | 4 +- .../contraptions/fluids/PumpRenderer.java | 2 +- .../contraptions/fluids/PumpTileEntity.java | 12 +- .../fluids/actors/FillingRecipe.java | 8 +- .../fluids/actors/FluidDrainingBehaviour.java | 4 +- .../fluids/actors/FluidFillingBehaviour.java | 4 +- .../actors/FluidManipulationBehaviour.java | 4 +- .../fluids/actors/HosePulleyBlock.java | 4 +- .../fluids/actors/HosePulleyTileEntity.java | 2 +- .../fluids/actors/ItemDrainRenderer.java | 2 +- .../fluids/actors/ItemDrainTileEntity.java | 6 +- .../fluids/actors/SpoutTileEntity.java | 4 +- .../fluids/particle/BasinFluidParticle.java | 2 +- .../fluids/particle/FluidStackParticle.java | 2 +- .../fluids/pipes/AxisPipeBlock.java | 4 +- .../fluids/pipes/BracketBlock.java | 2 +- .../fluids/pipes/EncasedPipeBlock.java | 4 +- .../fluids/pipes/FluidPipeBlock.java | 6 +- .../fluids/pipes/FluidValveBlock.java | 4 +- .../fluids/pipes/FluidValveInstance.java | 4 +- .../fluids/pipes/FluidValveRenderer.java | 2 +- .../fluids/pipes/FluidValveTileEntity.java | 4 +- .../fluids/pipes/SmartFluidPipeBlock.java | 6 +- .../pipes/SmartFluidPipeTileEntity.java | 4 +- .../TransparentStraightPipeRenderer.java | 4 +- .../fluids/potion/PotionFluid.java | 2 +- .../fluids/potion/PotionFluidHandler.java | 4 +- .../contraptions/fluids/tank/BoilerData.java | 33 +- .../fluids/tank/FluidTankBlock.java | 2 +- .../fluids/tank/FluidTankModel.java | 2 +- .../fluids/tank/FluidTankRenderer.java | 4 +- .../fluids/tank/FluidTankTileEntity.java | 4 +- .../goggles/GoggleConfigScreen.java | 22 +- .../goggles/GoggleOverlayRenderer.java | 26 +- .../goggles/IHaveGoggleInformation.java | 20 +- .../itemAssembly/SequencedAssemblyItem.java | 3 +- .../itemAssembly/SequencedAssemblyRecipe.java | 12 +- .../particle/AirFlowParticle.java | 4 +- .../contraptions/particle/AirParticle.java | 8 +- .../contraptions/particle/CubeParticle.java | 10 +- .../particle/RotationIndicatorParticle.java | 8 +- .../contraptions/processing/BasinRecipe.java | 2 +- .../processing/BasinRenderer.java | 12 +- .../processing/BasinTileEntity.java | 16 +- .../processing/EmptyingByBasin.java | 6 +- .../processing/HeatCondition.java | 3 +- .../processing/InWorldProcessing.java | 4 +- .../processing/ProcessingOutput.java | 2 +- .../processing/ProcessingRecipeBuilder.java | 14 +- .../processing/burner/BlazeBurnerBlock.java | 2 +- .../burner/BlazeBurnerBlockItem.java | 2 +- .../BlazeBurnerInteractionBehaviour.java | 16 +- .../burner/BlazeBurnerMovementBehaviour.java | 10 +- .../burner/BlazeBurnerRenderer.java | 10 +- .../burner/BlazeBurnerTileEntity.java | 8 +- .../burner/LitBlazeBurnerBlock.java | 2 +- .../relays/advanced/GantryShaftBlock.java | 12 +- .../advanced/GantryShaftTileEntity.java | 2 +- .../relays/advanced/SpeedControllerBlock.java | 8 +- .../advanced/SpeedControllerTileEntity.java | 12 +- .../advanced/sequencer/Instruction.java | 2 +- .../sequencer/InstructionSpeedModifiers.java | 5 +- .../sequencer/SequencedGearshiftBlock.java | 4 +- .../sequencer/SequencedGearshiftScreen.java | 26 +- .../sequencer/SequencerInstructions.java | 7 +- .../contraptions/relays/belt/BeltBlock.java | 2 +- .../contraptions/relays/belt/BeltHelper.java | 2 +- .../relays/belt/BeltInstance.java | 2 +- .../contraptions/relays/belt/BeltPart.java | 5 +- .../relays/belt/BeltRenderer.java | 10 +- .../contraptions/relays/belt/BeltShapes.java | 2 +- .../contraptions/relays/belt/BeltSlicer.java | 14 +- .../contraptions/relays/belt/BeltSlope.java | 5 +- .../relays/belt/BeltTileEntity.java | 2 +- .../relays/belt/item/BeltConnectorItem.java | 2 +- .../BeltTunnelInteractionHandler.java | 2 +- .../BracketedKineticTileRenderer.java | 4 +- .../BracketedTileEntityBehaviour.java | 2 +- .../relays/elementary/CogWheelBlock.java | 2 +- .../relays/elementary/CogwheelBlockItem.java | 8 +- .../relays/elementary/ShaftBlock.java | 8 +- .../relays/encased/EncasedBeltBlock.java | 4 +- .../relays/encased/EncasedCogCTBehaviour.java | 2 +- .../relays/encased/EncasedCogInstance.java | 2 +- .../relays/encased/EncasedCogRenderer.java | 2 +- .../relays/encased/SplitShaftInstance.java | 2 +- .../relays/encased/SplitShaftRenderer.java | 6 +- .../contraptions/relays/gauge/GaugeBlock.java | 10 +- .../relays/gauge/GaugeInstance.java | 6 +- .../relays/gauge/GaugeRenderer.java | 2 +- .../relays/gauge/GaugeShaper.java | 4 +- .../relays/gauge/GaugeTileEntity.java | 4 +- .../relays/gauge/SpeedGaugeTileEntity.java | 6 +- .../relays/gauge/StressGaugeTileEntity.java | 18 +- .../relays/gearbox/GearboxInstance.java | 2 +- .../relays/gearbox/GearboxRenderer.java | 6 +- .../relays/gearbox/VerticalGearboxItem.java | 4 +- .../contraptions/wrench/IWrenchable.java | 4 +- .../wrench/WrenchItemRenderer.java | 2 +- .../curiosities/ChromaticCompoundColor.java | 5 +- .../curiosities/ChromaticCompoundItem.java | 4 +- .../curiosities/ExperienceNuggetItem.java | 5 +- .../curiosities/NoGravMagicalDohickyItem.java | 2 +- .../curiosities/TreeFertilizerItem.java | 9 +- .../curiosities/armor/BackTankUtil.java | 4 +- .../armor/CopperBacktankArmorLayer.java | 12 +- .../armor/CopperBacktankRenderer.java | 7 +- .../armor/CopperBacktankTileEntity.java | 8 +- .../curiosities/armor/DivingBootsItem.java | 2 +- .../bell/AbstractBellTileEntity.java | 6 +- .../curiosities/bell/BellRenderer.java | 2 +- .../curiosities/bell/HauntedBellPulser.java | 2 +- .../curiosities/bell/SoulPulseEffect.java | 2 +- .../curiosities/deco/MetalLadderBlock.java | 6 +- .../curiosities/deco/PlacardRenderer.java | 2 +- .../curiosities/deco/PlacardTileEntity.java | 2 +- .../deco/SlidingDoorMovementBehaviour.java | 2 +- .../deco/SlidingDoorTileEntity.java | 4 +- .../girder/ConnectedGirderModel.java | 2 +- .../curiosities/girder/GirderBlock.java | 6 +- .../girder/GirderBlockStateGenerator.java | 2 +- .../girder/GirderPlacementHelper.java | 4 +- .../girder/GirderWrenchBehavior.java | 14 +- .../curiosities/symmetry/SymmetryHandler.java | 2 +- .../symmetry/SymmetryWandItem.java | 4 +- .../symmetry/SymmetryWandScreen.java | 17 +- .../client/SymmetryWandItemRenderer.java | 2 +- .../symmetry/mirror/CrossPlaneMirror.java | 4 +- .../symmetry/mirror/PlaneMirror.java | 4 +- .../symmetry/mirror/SymmetryMirror.java | 6 +- .../symmetry/mirror/TriplePlaneMirror.java | 4 +- .../toolbox/RadialToolboxMenu.java | 18 +- .../curiosities/toolbox/ToolBoxInstance.java | 4 +- .../curiosities/toolbox/ToolboxHandler.java | 2 +- .../toolbox/ToolboxHandlerClient.java | 2 +- .../curiosities/toolbox/ToolboxInventory.java | 2 +- .../curiosities/toolbox/ToolboxRenderer.java | 2 +- .../curiosities/toolbox/ToolboxScreen.java | 25 +- .../toolbox/ToolboxTileEntity.java | 6 +- .../curiosities/tools/BlueprintEntity.java | 4 +- .../tools/BlueprintOverlayRenderer.java | 9 +- .../curiosities/tools/BlueprintRenderer.java | 2 +- .../curiosities/tools/BlueprintScreen.java | 33 +- .../curiosities/tools/ExtendoGripItem.java | 2 +- .../tools/ExtendoGripItemRenderer.java | 2 +- .../tools/ExtendoGripRenderHandler.java | 2 +- .../curiosities/tools/SandPaperItem.java | 2 +- .../tools/SandPaperItemRenderer.java | 2 +- .../weapons/BuiltinPotatoProjectileTypes.java | 2 +- .../curiosities/weapons/PotatoCannonItem.java | 12 +- .../weapons/PotatoCannonItemRenderer.java | 2 +- .../weapons/PotatoCannonRenderHandler.java | 2 +- .../weapons/PotatoProjectileEntity.java | 2 +- .../weapons/PotatoProjectileRenderMode.java | 2 +- .../curiosities/zapper/PlacementPatterns.java | 6 +- .../curiosities/zapper/ZapperItem.java | 8 +- .../zapper/ZapperRenderHandler.java | 4 +- .../curiosities/zapper/ZapperScreen.java | 20 +- .../zapper/terrainzapper/Brush.java | 6 +- .../zapper/terrainzapper/CylinderBrush.java | 6 +- .../zapper/terrainzapper/DynamicBrush.java | 4 +- .../terrainzapper/PlacementOptions.java | 3 +- .../zapper/terrainzapper/SphereBrush.java | 6 +- .../zapper/terrainzapper/TerrainTools.java | 4 +- .../zapper/terrainzapper/WorldshaperItem.java | 8 +- .../WorldshaperItemRenderer.java | 4 +- .../WorldshaperRenderHandler.java | 6 +- .../terrainzapper/WorldshaperScreen.java | 20 +- .../content/logistics/IRedstoneLinkable.java | 14 +- .../logistics/RedstoneLinkNetworkHandler.java | 4 +- .../block/belts/tunnel/BeltTunnelBlock.java | 4 +- .../belts/tunnel/BeltTunnelInstance.java | 6 +- .../belts/tunnel/BeltTunnelRenderer.java | 6 +- .../block/belts/tunnel/BeltTunnelShapes.java | 3 +- .../belts/tunnel/BeltTunnelTileEntity.java | 6 +- .../belts/tunnel/BrassTunnelFilterSlot.java | 2 +- .../belts/tunnel/BrassTunnelTileEntity.java | 21 +- .../block/chute/AbstractChuteBlock.java | 6 +- .../logistics/block/chute/ChuteBlock.java | 10 +- .../block/chute/ChuteTileEntity.java | 20 +- .../SmartChuteFilterSlotPositioning.java | 4 +- .../logistics/block/depot/DepotBehaviour.java | 8 +- .../logistics/block/depot/DepotRenderer.java | 2 +- .../logistics/block/depot/EjectorBlock.java | 2 +- .../block/depot/EjectorInstance.java | 2 +- .../block/depot/EjectorRenderer.java | 6 +- .../block/depot/EjectorTargetHandler.java | 20 +- .../block/depot/EjectorTileEntity.java | 20 +- .../logistics/block/depot/EntityLauncher.java | 23 +- .../block/diodes/BrassDiodeInstance.java | 3 +- .../block/diodes/BrassDiodeRenderer.java | 2 +- .../block/diodes/BrassDiodeScrollSlot.java | 4 +- .../block/diodes/BrassDiodeTileEntity.java | 10 +- .../block/display/DisplayLinkBlock.java | 10 +- .../block/display/DisplayLinkBlockItem.java | 14 +- .../block/display/DisplayLinkRenderer.java | 2 +- .../block/display/DisplayLinkScreen.java | 56 +- .../block/display/DisplayLinkTileEntity.java | 16 +- .../display/source/BoilerDisplaySource.java | 18 +- .../source/DeathCounterDisplaySource.java | 4 +- .../source/FillLevelDisplaySource.java | 8 +- .../source/FluidListDisplaySource.java | 4 +- .../display/source/ItemListDisplaySource.java | 2 +- .../source/ItemThoughputDisplaySource.java | 8 +- .../source/KineticSpeedDisplaySource.java | 6 +- .../source/KineticStressDisplaySource.java | 10 +- .../source/RedstonePowerDisplaySource.java | 12 +- .../source/ScoreboardDisplaySource.java | 10 +- .../source/SingleLineDisplaySource.java | 6 +- .../source/StatTrackingDisplaySource.java | 2 +- .../source/StationSummaryDisplaySource.java | 16 +- .../source/TimeOfDayDisplaySource.java | 10 +- .../source/ValueListDisplaySource.java | 14 +- .../block/display/target/DisplayTarget.java | 4 +- .../display/target/LecternDisplayTarget.java | 4 +- .../target/SingleLineDisplayTarget.java | 10 +- .../block/funnel/BeltFunnelBlock.java | 4 +- .../logistics/block/funnel/FunnelBlock.java | 4 +- .../funnel/FunnelFilterSlotPositioning.java | 4 +- .../block/funnel/FunnelInstance.java | 2 +- .../block/funnel/FunnelRenderer.java | 4 +- .../block/funnel/FunnelTileEntity.java | 10 +- .../AllArmInteractionPointTypes.java | 2 +- .../block/mechanicalArm/ArmAngleTarget.java | 7 +- .../block/mechanicalArm/ArmInstance.java | 9 +- .../mechanicalArm/ArmInteractionPoint.java | 4 +- .../ArmInteractionPointHandler.java | 14 +- .../block/mechanicalArm/ArmRenderer.java | 9 +- .../block/mechanicalArm/ArmTileEntity.java | 14 +- .../block/redstone/AnalogLeverInstance.java | 6 +- .../block/redstone/AnalogLeverRenderer.java | 4 +- .../block/redstone/AnalogLeverTileEntity.java | 8 +- .../block/redstone/ContentObserverBlock.java | 4 +- .../redstone/ContentObserverTileEntity.java | 2 +- .../redstone/FilteredDetectorFilterSlot.java | 4 +- .../block/redstone/NixieTubeBlock.java | 2 +- .../block/redstone/NixieTubeRenderer.java | 15 +- .../block/redstone/NixieTubeTileEntity.java | 2 +- .../block/redstone/RedstoneLinkBlock.java | 4 +- .../redstone/RedstoneLinkFrequencySlot.java | 4 +- .../block/redstone/RoseQuartzLampBlock.java | 2 +- .../block/redstone/StockpileSwitchBlock.java | 4 +- .../block/redstone/StockpileSwitchScreen.java | 34 +- .../logistics/block/vault/ItemVaultItem.java | 2 +- .../item/LecternControllerRenderer.java | 2 +- .../item/LinkedControllerClientHandler.java | 14 +- .../logistics/item/LinkedControllerItem.java | 2 +- .../item/LinkedControllerItemRenderer.java | 6 +- .../item/LinkedControllerScreen.java | 20 +- .../item/LinkedControllerServerHandler.java | 10 +- .../item/filter/AbstractFilterScreen.java | 21 +- .../item/filter/AttributeFilterContainer.java | 2 +- .../item/filter/AttributeFilterScreen.java | 26 +- .../logistics/item/filter/FilterItem.java | 10 +- .../logistics/item/filter/FilterScreen.java | 18 +- .../logistics/item/filter/ItemAttribute.java | 7 +- .../attribute/ShulkerFillLevelAttribute.java | 4 +- .../logistics/trains/BezierConnection.java | 6 +- .../trains/CameraDistanceModifier.java | 3 +- .../logistics/trains/DimensionPalette.java | 3 +- .../logistics/trains/GraphLocation.java | 8 +- .../content/logistics/trains/ITrackBlock.java | 6 +- .../logistics/trains/RailwaySavedData.java | 2 +- .../content/logistics/trains/TrackEdge.java | 2 +- .../content/logistics/trains/TrackGraph.java | 10 +- .../logistics/trains/TrackGraphHelper.java | 2 +- .../logistics/trains/TrackGraphSync.java | 4 +- .../trains/TrackGraphSyncPacket.java | 8 +- .../trains/TrackGraphVisualizer.java | 18 +- .../logistics/trains/TrackNodeLocation.java | 5 +- .../trains/entity/ArrivalSoundQueue.java | 4 +- .../trains/entity/BogeyInstance.java | 6 +- .../logistics/trains/entity/Carriage.java | 12 +- .../trains/entity/CarriageBogey.java | 10 +- .../trains/entity/CarriageContraption.java | 18 +- .../entity/CarriageContraptionEntity.java | 16 +- .../entity/CarriageContraptionInstance.java | 5 +- .../entity/CarriageCouplingRenderer.java | 4 +- .../trains/entity/CarriageParticles.java | 8 +- .../trains/entity/CarriageSounds.java | 4 +- .../trains/entity/CarriageSyncData.java | 8 +- .../logistics/trains/entity/Navigation.java | 10 +- .../logistics/trains/entity/Train.java | 20 +- .../trains/entity/TrainMigration.java | 6 +- .../logistics/trains/entity/TrainPacket.java | 4 +- .../trains/entity/TrainRelocationPacket.java | 6 +- .../trains/entity/TrainRelocator.java | 28 +- .../logistics/trains/entity/TrainStatus.java | 6 +- .../trains/entity/TravellingPoint.java | 4 +- .../management/display/FlapDisplayBlock.java | 8 +- .../management/display/FlapDisplayLayout.java | 3 +- .../display/FlapDisplayRenderer.java | 10 +- .../display/FlapDisplaySection.java | 16 +- .../display/FlapDisplayTileEntity.java | 12 +- .../edgePoint/CurvedTrackSelectionPacket.java | 8 +- .../trains/management/edgePoint/EdgeData.java | 4 +- .../edgePoint/EdgePointManager.java | 5 +- .../edgePoint/EdgePointStorage.java | 2 +- .../edgePoint/TrackEdgeIntersection.java | 2 +- .../edgePoint/TrackTargetingBehaviour.java | 8 +- .../edgePoint/TrackTargetingBlockItem.java | 20 +- .../edgePoint/TrackTargetingClient.java | 2 +- .../edgePoint/signal/EdgeGroupColor.java | 6 +- .../edgePoint/signal/SignalBlock.java | 7 +- .../edgePoint/signal/SignalBoundary.java | 6 +- .../edgePoint/signal/SignalEdgeGroup.java | 6 +- .../edgePoint/signal/SignalPropagator.java | 6 +- .../edgePoint/signal/SignalRenderer.java | 4 +- .../edgePoint/signal/SignalTileEntity.java | 4 +- .../edgePoint/signal/TrackEdgePoint.java | 2 +- .../station/AbstractStationScreen.java | 13 +- .../edgePoint/station/AssemblyScreen.java | 32 +- .../edgePoint/station/StationBlock.java | 4 +- .../edgePoint/station/StationEditPacket.java | 2 +- .../edgePoint/station/StationScreen.java | 36 +- .../edgePoint/station/StationTileEntity.java | 30 +- .../edgePoint/station/WideIconButton.java | 5 +- .../schedule/DestinationSuggestions.java | 2 +- .../management/schedule/IScheduleInput.java | 6 +- .../trains/management/schedule/Schedule.java | 4 +- .../management/schedule/ScheduleEntry.java | 4 +- .../management/schedule/ScheduleItem.java | 12 +- .../schedule/ScheduleItemRetrieval.java | 10 +- .../management/schedule/ScheduleRuntime.java | 2 +- .../management/schedule/ScheduleScreen.java | 62 +- .../schedule/TrainHatArmorLayer.java | 2 +- .../condition/CargoThresholdCondition.java | 19 +- .../condition/FluidThresholdCondition.java | 21 +- .../condition/IdleCargoCondition.java | 16 +- .../condition/ItemThresholdCondition.java | 25 +- .../condition/PlayerPassengerCondition.java | 18 +- .../condition/RedstoneLinkCondition.java | 22 +- .../condition/ScheduleWaitCondition.java | 8 +- .../schedule/condition/ScheduledDelay.java | 10 +- .../condition/StationPoweredCondition.java | 12 +- .../condition/StationUnloadedCondition.java | 12 +- .../condition/TimeOfDayCondition.java | 22 +- .../condition/TimedWaitCondition.java | 20 +- .../ChangeThrottleInstruction.java | 14 +- .../destination/ChangeTitleInstruction.java | 12 +- .../destination/DestinationInstruction.java | 16 +- .../destination/ScheduleInstruction.java | 4 +- .../destination/TextScheduleInstruction.java | 6 +- .../trains/track/CurvedTrackInteraction.java | 6 +- .../trains/track/StandardBogeyBlock.java | 4 +- .../trains/track/StandardBogeyTileEntity.java | 8 +- .../logistics/trains/track/TrackBlock.java | 18 +- .../trains/track/TrackBlockItem.java | 12 +- .../trains/track/TrackBlockOutline.java | 12 +- .../logistics/trains/track/TrackInstance.java | 6 +- .../logistics/trains/track/TrackPaver.java | 8 +- .../trains/track/TrackPlacement.java | 46 +- .../logistics/trains/track/TrackRenderer.java | 6 +- .../logistics/trains/track/TrackShape.java | 4 +- .../trains/track/TrackTileEntity.java | 4 +- .../palettes/AllPaletteStoneTypes.java | 2 +- .../palettes/ConnectedPillarBlock.java | 3 +- .../content/palettes/PaletteBlockPartial.java | 2 +- .../schematics/ClientSchematicLoader.java | 6 +- .../content/schematics/MaterialChecklist.java | 6 +- .../schematics/SchematicChunkSource.java | 251 ---- .../content/schematics/SchematicPrinter.java | 13 +- .../content/schematics/SchematicWorld.java | 250 ---- .../schematics/ServerSchematicLoader.java | 8 +- .../block/SchematicTableScreen.java | 36 +- .../block/SchematicTableTileEntity.java | 10 +- .../block/SchematicannonInstance.java | 2 +- .../block/SchematicannonScreen.java | 71 +- .../block/SchematicannonTileEntity.java | 6 +- .../client/SchematicAndQuillHandler.java | 30 +- .../client/SchematicEditScreen.java | 22 +- .../schematics/client/SchematicHandler.java | 10 +- .../client/SchematicPromptScreen.java | 20 +- .../schematics/client/SchematicRenderer.java | 4 +- .../client/SchematicTransformation.java | 8 +- .../client/ToolSelectionScreen.java | 10 +- .../schematics/client/tools/DeployTool.java | 6 +- .../schematics/client/tools/FlipTool.java | 10 +- .../client/tools/ISchematicTool.java | 8 +- .../schematics/client/tools/MoveTool.java | 4 +- .../client/tools/PlacementToolBase.java | 2 +- .../schematics/client/tools/RotateTool.java | 6 +- .../client/tools/SchematicToolBase.java | 8 +- .../schematics/client/tools/Tools.java | 7 +- .../filtering/SchematicInstances.java | 4 +- .../item/SchematicAndQuillItem.java | 2 +- .../schematics/item/SchematicItem.java | 8 +- .../simibubi/create/events/ClientEvents.java | 29 +- .../simibubi/create/events/CommonEvents.java | 8 +- .../ClientResourceReloadListener.java | 2 - .../create/foundation/block/BigOutlines.java | 6 +- .../foundation/block/BlockStressDefaults.java | 2 +- .../foundation/block/BlockStressValues.java | 9 +- .../foundation/block/CopperBlockSet.java | 5 +- .../foundation/block/ItemUseOverrides.java | 2 +- .../block/WrenchableDirectionalBlock.java | 2 +- .../block/connected/AllCTTypes.java | 2 +- .../foundation/block/connected/CTModel.java | 2 +- .../foundation/command/CouplingCommand.java | 2 +- .../foundation/command/HighlightPacket.java | 4 +- .../foundation/command/KillTPSCommand.java | 24 +- .../foundation/command/PonderCommand.java | 2 +- .../command/SConfigureConfigPacket.java | 8 +- .../create/foundation/config/AllConfigs.java | 1 + .../create/foundation/config/CClient.java | 34 +- .../create/foundation/config/CCommon.java | 2 + .../foundation/config/CCuriosities.java | 2 + .../create/foundation/config/CFluids.java | 2 + .../create/foundation/config/CKinetics.java | 2 + .../create/foundation/config/CLogistics.java | 2 + .../create/foundation/config/CRecipes.java | 2 + .../create/foundation/config/CSchematics.java | 2 + .../create/foundation/config/CServer.java | 2 + .../create/foundation/config/CStress.java | 7 +- .../create/foundation/config/CTrains.java | 8 +- .../create/foundation/config/CWorldGen.java | 5 +- .../create/foundation/config/ConfigBase.java | 192 --- .../config/ui/BaseConfigScreen.java | 27 +- .../foundation/config/ui/ConfigHelper.java | 2 +- .../config/ui/ConfigModListScreen.java | 16 +- .../foundation/config/ui/ConfigScreen.java | 21 +- .../config/ui/ConfigScreenList.java | 20 +- .../config/ui/HintableTextFieldWidget.java | 4 +- .../config/ui/OpenCreateMenuButton.java | 2 +- .../config/ui/SubMenuConfigScreen.java | 42 +- .../config/ui/entries/BooleanEntry.java | 12 +- .../config/ui/entries/EnumEntry.java | 20 +- .../config/ui/entries/NumberEntry.java | 17 +- .../config/ui/entries/SubMenuEntry.java | 6 +- .../config/ui/entries/ValueEntry.java | 14 +- .../foundation/data/AllLangPartials.java | 7 +- .../create/foundation/data/BlockStateGen.java | 6 +- .../create/foundation/data/LangMerger.java | 4 +- .../foundation/data/recipe/CompatMetals.java | 2 +- .../data/recipe/CrushingRecipeGen.java | 2 +- .../data/recipe/LogStrippingFakeRecipes.java | 4 +- .../data/recipe/StandardRecipeGen.java | 2 +- .../foundation/fluid/CombinedTankWrapper.java | 3 +- .../create/foundation/fluid/FluidHelper.java | 8 +- .../foundation/fluid/FluidRenderer.java | 159 +-- .../foundation/gui/AbstractSimiScreen.java | 169 --- .../create/foundation/gui/AllGuiTextures.java | 56 +- .../create/foundation/gui/AllIcons.java | 6 +- .../foundation/gui/ConfirmationScreen.java | 230 ---- .../foundation/gui/CreateMainMenuScreen.java | 30 +- .../gui/CustomLightingSettings.java | 2 + .../foundation/gui/ILightingSettings.java | 12 - .../create/foundation/gui/ModularGuiLine.java | 5 +- .../foundation/gui/ModularGuiLineBuilder.java | 10 +- .../create/foundation/gui/ScreenOpener.java | 101 -- .../simibubi/create/foundation/gui/Theme.java | 235 ---- .../gui/TickableGuiEventListener.java | 7 - .../create/foundation/gui/UIRenderHelper.java | 322 ------ .../AbstractSimiContainerScreen.java | 6 +- .../foundation/gui/element/BoxElement.java | 158 --- .../gui/element/CombinedStencilElement.java | 79 -- .../gui/element/DelegatedStencilElement.java | 52 - .../gui/element/GuiGameElement.java | 291 ----- .../gui/element/PartialModelGuiElement.java | 22 + .../foundation/gui/element/RenderElement.java | 89 -- .../foundation/gui/element/ScreenElement.java | 13 - .../gui/element/StencilElement.java | 52 - .../gui/element/TextStencilElement.java | 79 -- .../gui/widget/AbstractSimiWidget.java | 100 -- .../foundation/gui/widget/BoxWidget.java | 223 ---- .../foundation/gui/widget/ElementWidget.java | 156 --- .../foundation/gui/widget/IconButton.java | 7 +- .../foundation/gui/widget/Indicator.java | 3 +- .../create/foundation/gui/widget/Label.java | 7 +- .../foundation/gui/widget/ScrollInput.java | 9 +- .../gui/widget/SelectionScrollInput.java | 4 +- .../foundation/gui/widget/TooltipArea.java | 1 + .../foundation/item/CountedItemStackList.java | 2 +- .../foundation/item/ItemDescription.java | 45 +- .../create/foundation/item/ItemHelper.java | 2 +- .../create/foundation/item/TooltipHelper.java | 137 +-- .../item/render/PartialItemModelRenderer.java | 2 +- .../create/foundation/mixin/CameraMixin.java | 2 +- .../mixin/ModelDataRefreshMixin.java | 3 +- .../foundation/mixin/WindowResizeMixin.java | 28 - .../mixin/accessor/GameRendererAccessor.java | 13 - .../accessor/ParticleEngineAccessor.java | 17 - ...onderIndex.java => CreatePonderIndex.java} | 186 +-- .../foundation/ponder/CreatePonderTag.java | 93 ++ .../foundation/ponder/CreateSceneBuilder.java | 341 ++++++ .../ponder/CreateSharedPonderText.java | 26 + .../create/foundation/ponder/ElementLink.java | 29 - .../foundation/ponder/PonderChapter.java | 55 - .../ponder/PonderChapterRegistry.java | 60 - .../foundation/ponder/PonderLocalization.java | 203 ---- .../foundation/ponder/PonderPalette.java | 36 - .../ponder/PonderRegistrationHelper.java | 108 -- .../foundation/ponder/PonderRegistry.java | 121 -- .../create/foundation/ponder/PonderScene.java | 589 ---------- .../ponder/PonderStoryBoardEntry.java | 84 -- .../create/foundation/ponder/PonderTag.java | 184 --- .../foundation/ponder/PonderTagRegistry.java | 122 -- .../ponder/PonderTooltipHandler.java | 178 --- .../create/foundation/ponder/PonderWorld.java | 355 ------ .../ponder/PonderWorldParticles.java | 104 -- .../foundation/ponder/PonderWorldTileFix.java | 45 + .../foundation/ponder/SceneBuilder.java | 890 -------------- .../foundation/ponder/SceneBuildingUtil.java | 119 -- .../create/foundation/ponder/Selection.java | 155 --- .../foundation/ponder/content/ArmScenes.java | 35 +- .../ponder/content/BearingScenes.java | 45 +- .../foundation/ponder/content/BeltScenes.java | 40 +- .../ponder/content/CartAssemblerScenes.java | 36 +- .../ponder/content/ChainDriveScenes.java | 34 +- .../ponder/content/ChassisScenes.java | 35 +- .../ponder/content/ChuteScenes.java | 30 +- .../ponder/content/CrafterScenes.java | 44 +- .../ponder/content/DebugScenes.java | 451 -------- .../ponder/content/DeployerScenes.java | 38 +- .../ponder/content/DisplayScenes.java | 32 +- .../ponder/content/EjectorScenes.java | 37 +- .../foundation/ponder/content/FanScenes.java | 31 +- .../ponder/content/FunnelScenes.java | 33 +- .../ponder/content/GantryScenes.java | 31 +- .../ponder/content/ItemVaultScenes.java | 20 +- .../ponder/content/KineticsScenes.java | 69 +- .../ponder/content/MechanicalDrillScenes.java | 25 +- .../ponder/content/MechanicalSawScenes.java | 28 +- .../ponder/content/MovementActorScenes.java | 39 +- .../ponder/content/PistonScenes.java | 32 +- .../ponder/content/ProcessingScenes.java | 45 +- .../ponder/content/PulleyScenes.java | 28 +- .../ponder/content/RedstoneScenes.java | 28 +- .../ponder/content/RedstoneScenes2.java | 19 +- .../foundation/ponder/content/SharedText.java | 38 - .../ponder/content/SteamScenes.java | 24 +- .../ponder/content/TemplateScenes.java | 12 +- .../ponder/content/TunnelScenes.java | 34 +- .../ponder/content/fluid/DrainScenes.java | 18 +- .../fluid/FluidMovementActorScenes.java | 22 +- .../ponder/content/fluid/FluidTankScenes.java | 30 +- .../content/fluid/HosePulleyScenes.java | 22 +- .../ponder/content/fluid/PipeScenes.java | 36 +- .../ponder/content/fluid/PumpScenes.java | 30 +- .../ponder/content/fluid/SpoutScenes.java | 24 +- .../content/trains/TrackObserverScenes.java | 24 +- .../ponder/content/trains/TrackScenes.java | 33 +- .../ponder/content/trains/TrainScenes.java | 29 +- .../content/trains/TrainSignalScenes.java | 38 +- .../content/trains/TrainStationScenes.java | 31 +- .../element/AnimatedOverlayElement.java | 29 - .../ponder/element/AnimatedSceneElement.java | 85 -- .../ponder/element/BeltItemElement.java | 2 + .../ponder/element/EntityElement.java | 16 - .../ponder/element/ExpandedParrotElement.java | 48 + .../ponder/element/InputWindowElement.java | 149 --- .../ponder/element/MinecartElement.java | 113 -- .../ponder/element/OutlinerElement.java | 35 - .../ponder/element/ParrotElement.java | 272 ----- .../ponder/element/PonderElement.java | 23 - .../ponder/element/PonderOverlayElement.java | 13 - .../ponder/element/PonderSceneElement.java | 17 - .../ponder/element/TextWindowElement.java | 155 --- .../ponder/element/TrackedElement.java | 42 - .../ponder/element/WorldSectionElement.java | 462 -------- .../ponder/element/package-info.java | 9 + .../instruction/AnimateBogeyInstruction.java | 5 - .../AnimateElementInstruction.java | 58 - .../AnimateMinecartInstruction.java | 28 - .../instruction/AnimateParrotInstruction.java | 28 - .../AnimateTileEntityInstruction.java | 9 +- .../AnimateWorldSectionInstruction.java | 29 - .../instruction/ChaseAABBInstruction.java | 30 - .../CreateMinecartInstruction.java | 18 - .../instruction/CreateParrotInstruction.java | 18 - .../ponder/instruction/DelayInstruction.java | 9 - .../DisplayWorldSectionInstruction.java | 59 - .../instruction/EmitParticlesInstruction.java | 56 - .../instruction/FadeInOutInstruction.java | 49 - .../instruction/FadeIntoSceneInstruction.java | 55 - .../FadeOutOfSceneInstruction.java | 48 - .../instruction/HideAllInstruction.java | 55 - .../HighlightValueBoxInstruction.java | 31 - .../instruction/KeyframeInstruction.java | 28 - .../ponder/instruction/LineInstruction.java | 32 - .../MarkAsFinishedInstruction.java | 22 - .../instruction/MovePoiInstruction.java | 25 - .../OutlineSelectionInstruction.java | 28 - .../ponder/instruction/PonderInstruction.java | 45 - .../instruction/ReplaceBlocksInstruction.java | 47 - .../instruction/RotateSceneInstruction.java | 33 - .../instruction/ShowInputInstruction.java | 31 - .../ponder/instruction/TextInstruction.java | 56 - .../instruction/TickingInstruction.java | 49 - .../TileEntityDataInstruction.java | 49 - .../instruction/WorldModifyInstruction.java | 31 - .../ponder/instruction/package-info.java | 9 + .../foundation/ponder/package-info.java | 9 + .../foundation/ponder/ui/ChapterLabel.java | 47 - .../foundation/ponder/ui/LayoutHelper.java | 118 -- .../ponder/ui/NavigatableSimiScreen.java | 255 ---- .../foundation/ponder/ui/PonderButton.java | 135 --- .../ponder/ui/PonderIndexScreen.java | 226 ---- .../ponder/ui/PonderProgressBar.java | 177 --- .../ponder/ui/PonderTagIndexScreen.java | 242 ---- .../foundation/ponder/ui/PonderTagScreen.java | 363 ------ .../create/foundation/ponder/ui/PonderUI.java | 1026 ----------------- .../foundation/render/CachedBufferer.java | 2 +- .../create/foundation/render/RenderTypes.java | 41 - .../foundation/render/SuperByteBuffer.java | 2 +- .../render/SuperRenderTypeBuffer.java | 95 -- .../render/TileEntityRenderHelper.java | 2 +- .../foundation/sound/RepeatingSound.java | 3 +- .../create/foundation/sound/SoundScape.java | 4 +- .../create/foundation/sound/SoundScapes.java | 6 +- .../tileEntity/SmartTileEntity.java | 5 +- .../CenteredSideValueBoxTransform.java | 5 +- .../tileEntity/behaviour/ValueBox.java | 17 +- .../behaviour/ValueBoxTransform.java | 4 +- .../TransportedItemStackHandlerBehaviour.java | 2 +- .../EdgeInteractionHandler.java | 2 +- .../EdgeInteractionRenderer.java | 6 +- .../filtering/FilteringBehaviour.java | 2 +- .../behaviour/filtering/FilteringHandler.java | 10 +- .../filtering/FilteringRenderer.java | 16 +- .../filtering/SidedFilteringBehaviour.java | 4 +- .../fluid/SmartFluidTankBehaviour.java | 6 +- .../CapManipulationBehaviourBase.java | 2 +- .../behaviour/linked/LinkBehaviour.java | 2 +- .../behaviour/linked/LinkRenderer.java | 16 +- .../scrollvalue/ScrollValueHandler.java | 2 +- .../scrollvalue/ScrollValueRenderer.java | 8 +- .../foundation/utility/AngleHelper.java | 52 - .../utility/AnimationTickHolder.java | 59 - .../create/foundation/utility/BBHelper.java | 20 - .../create/foundation/utility/BlockFace.java | 52 - .../utility/CameraAngleAnimationService.java | 4 +- .../create/foundation/utility/Color.java | 312 ----- .../create/foundation/utility/Couple.java | 157 --- .../utility/{Lang.java => CreateLang.java} | 52 +- .../foundation/utility/DirectionHelper.java | 82 -- .../create/foundation/utility/DyeHelper.java | 11 +- .../foundation/utility/FilesHelper.java | 1 + .../foundation/utility/FluidFormatter.java | 5 +- .../create/foundation/utility/FontHelper.java | 88 -- .../foundation/utility/IntAttached.java | 61 - .../create/foundation/utility/Iterate.java | 48 - .../foundation/utility/LangBuilder.java | 167 --- .../foundation/utility/LangNumberFormat.java | 33 - .../create/foundation/utility/NBTHelper.java | 111 -- .../create/foundation/utility/Pair.java | 68 -- .../create/foundation/utility/Pointing.java | 35 - .../utility/ServerSpeedProvider.java | 4 +- .../create/foundation/utility/TreeCutter.java | 13 +- .../foundation/utility/UniqueLinkedList.java | 102 -- .../create/foundation/utility/VecHelper.java | 346 ------ .../foundation/utility/VoxelShaper.java | 143 --- .../foundation/utility/WorldAttached.java | 43 - .../foundation/utility/WorldHelper.java | 13 - .../foundation/utility/animation/Force.java | 102 -- .../utility/animation/LerpedFloat.java | 150 --- .../utility/animation/PhysicalFloat.java | 90 -- .../utility/ghost/GhostBlockParams.java | 50 - .../utility/ghost/GhostBlockRenderer.java | 142 --- .../foundation/utility/ghost/GhostBlocks.java | 84 -- .../utility/outliner/AABBOutline.java | 101 -- .../utility/outliner/BlockClusterOutline.java | 183 --- .../utility/outliner/ChasingAABBOutline.java | 42 - .../utility/outliner/LineOutline.java | 66 -- .../foundation/utility/outliner/Outline.java | 248 ---- .../foundation/utility/outliner/Outliner.java | 190 --- .../utility/placement/IPlacementHelper.java | 167 --- .../utility/placement/PlacementHelpers.java | 323 ------ .../utility/placement/PlacementOffset.java | 154 --- .../placement/{util => }/PoleHelper.java | 6 +- .../worldWrappers/DummyLevelEntityGetter.java | 41 - .../worldWrappers/DummyStatusListener.java | 23 - .../PlacementSimulationServerWorld.java | 56 - .../utility/worldWrappers/RayTraceWorld.java | 47 - .../worldWrappers/WrappedClientWorld.java | 141 --- .../worldWrappers/WrappedServerWorld.java | 121 -- .../utility/worldWrappers/WrappedWorld.java | 242 ---- .../utility/worldWrappers/package-info.java | 6 - .../foundation/worldgen/AllWorldFeatures.java | 2 +- .../worldgen/ConfigDrivenFeatureEntry.java | 4 +- .../foundation/worldgen/LayerPattern.java | 8 +- .../textures/gui/placement_indicator.png | Bin 835 -> 0 bytes .../assets/create/textures/special/blank.png | Bin 99 -> 0 bytes src/main/resources/create.mixins.json | 9 +- 893 files changed, 4106 insertions(+), 20444 deletions(-) delete mode 100644 src/main/java/com/simibubi/create/content/schematics/SchematicChunkSource.java delete mode 100644 src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/config/ConfigBase.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/ConfirmationScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/ILightingSettings.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/Theme.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/TickableGuiEventListener.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/BoxElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/CombinedStencilElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/DelegatedStencilElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java create mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/PartialModelGuiElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/RenderElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/ScreenElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/StencilElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/widget/BoxWidget.java delete mode 100644 src/main/java/com/simibubi/create/foundation/gui/widget/ElementWidget.java delete mode 100644 src/main/java/com/simibubi/create/foundation/mixin/WindowResizeMixin.java delete mode 100644 src/main/java/com/simibubi/create/foundation/mixin/accessor/GameRendererAccessor.java delete mode 100644 src/main/java/com/simibubi/create/foundation/mixin/accessor/ParticleEngineAccessor.java rename src/main/java/com/simibubi/create/foundation/ponder/{content/PonderIndex.java => CreatePonderIndex.java} (76%) create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/CreatePonderTag.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/CreateSceneBuilder.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/CreateSharedPonderText.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ElementLink.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderChapter.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderChapterRegistry.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderPalette.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderTagRegistry.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderWorldParticles.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/PonderWorldTileFix.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/SceneBuildingUtil.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/Selection.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedOverlayElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedSceneElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/EntityElement.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/ExpandedParrotElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/InputWindowElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/OutlinerElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/PonderElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/PonderOverlayElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/PonderSceneElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/TrackedElement.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/element/package-info.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateBogeyInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateElementInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateMinecartInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateParrotInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateWorldSectionInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/ChaseAABBInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateMinecartInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateParrotInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/DelayInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/DisplayWorldSectionInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/EmitParticlesInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeInOutInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeIntoSceneInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeOutOfSceneInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/HideAllInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/HighlightValueBoxInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/KeyframeInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/LineInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/MarkAsFinishedInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/MovePoiInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/OutlineSelectionInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/PonderInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/ReplaceBlocksInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/RotateSceneInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/ShowInputInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/TextInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/TickingInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/TileEntityDataInstruction.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/WorldModifyInstruction.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/instruction/package-info.java create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/package-info.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/LayoutHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderIndexScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagScreen.java delete mode 100644 src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java delete mode 100644 src/main/java/com/simibubi/create/foundation/render/SuperRenderTypeBuffer.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/AngleHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/AnimationTickHolder.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/BBHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/BlockFace.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/Color.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/Couple.java rename src/main/java/com/simibubi/create/foundation/utility/{Lang.java => CreateLang.java} (60%) delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/DirectionHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/FontHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/IntAttached.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/Iterate.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/Pair.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/Pointing.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/UniqueLinkedList.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/VecHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/animation/Force.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/animation/LerpedFloat.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/animation/PhysicalFloat.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockParams.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlocks.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/AABBOutline.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/BlockClusterOutline.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/ChasingAABBOutline.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/LineOutline.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/outliner/Outliner.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/placement/IPlacementHelper.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java rename src/main/java/com/simibubi/create/foundation/utility/placement/{util => }/PoleHelper.java (93%) delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyLevelEntityGetter.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyStatusListener.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationServerWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/RayTraceWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedClientWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java delete mode 100644 src/main/java/com/simibubi/create/foundation/utility/worldWrappers/package-info.java delete mode 100644 src/main/resources/assets/create/textures/gui/placement_indicator.png delete mode 100644 src/main/resources/assets/create/textures/special/blank.png diff --git a/build.gradle b/build.gradle index b5c3bafa4..1ab37b67a 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,19 @@ apply plugin: 'org.spongepowered.mixin' boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equals('false'); // jozu: I use a gradle workspace with both projects. // The project is named Flywheel-Forge, but sub-projects are named by folder. -boolean inWorkspace = findProject(':Flywheel') != null +boolean flywheelInWorkspace = findProject(':Flywheel') != null + +boolean inMultiModWorkspace = rootProject.hasProperty('multiModWorkspace.enabled') +boolean catnipInWorkspace = rootProject.hasProperty('multiModWorkspace.catnip') +boolean ponderInWorkspace = rootProject.hasProperty('multiModWorkspace.ponder') + +if (catnipInWorkspace) { + evaluationDependsOn(":catnip") +} + +if (ponderInWorkspace) { + evaluationDependsOn(":Ponder") +} ext.buildNumber = System.getenv('BUILD_NUMBER') if (buildNumber == null) buildNumber = 'custom' @@ -44,8 +56,18 @@ minecraft { runs { client { workingDirectory project.file('run') + if (inMultiModWorkspace) + ideaModule "createmod.Create.main" + else + ideaModule "Create.main" + arg '-mixin.config=create.mixins.json' arg '-mixin.config=flywheel.mixins.json' + + if (catnipInWorkspace) { + arg '-mixin.config=catnip.mixins.json' + } + //jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling property 'forge.logging.console.level', 'info' mods { @@ -53,11 +75,25 @@ minecraft { source sourceSets.main } - if (inWorkspace) { + if (flywheelInWorkspace) { flywheel { source project(":Flywheel").sourceSets.main } } + + if (catnipInWorkspace) { + catnip { + source project(":catnip:Common").sourceSets.main + source project(":catnip:Forge").sourceSets.main + } + } + + if (ponderInWorkspace) { + ponder { + source project(":Ponder:Common").sourceSets.main + source project(":Ponder:Forge").sourceSets.main + } + } } } @@ -69,6 +105,20 @@ minecraft { create { source sourceSets.main } + + if (catnipInWorkspace) { + catnip { + source project(":catnip:Common").sourceSets.main + source project(":catnip:Forge").sourceSets.main + } + } + + if (ponderInWorkspace) { + ponder { + source project(":Ponder:Common").sourceSets.main + source project(":Ponder:Forge").sourceSets.main + } + } } } @@ -82,11 +132,18 @@ minecraft { source sourceSets.main } - if (inWorkspace) { + if (flywheelInWorkspace) { flywheel { source project(":Flywheel").sourceSets.main } } + + if (ponderInWorkspace) { + ponder { + source project(":Ponder:Common").sourceSets.main + source project(":Ponder:Forge").sourceSets.main + } + } } } } @@ -152,12 +209,28 @@ dependencies { implementation fg.deobf(registrate) shade registrate - if (inWorkspace) { + if (flywheelInWorkspace) { implementation project(':Flywheel') } else { implementation fg.deobf("com.jozufozu.flywheel:Flywheel-Forge:${flywheel_version}") } + if (catnipInWorkspace) { + implementation project(":catnip:Common") + implementation project(":catnip:Forge") + } else { + //todo + throw new AssertionError() + } + + if (ponderInWorkspace) { + implementation project(":Ponder:Common") + implementation project(":Ponder:Forge") + } else { + //todo + throw new AssertionError() + } + compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}:${jei_version}:api") runtimeOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}:${jei_version}") diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 674af4f64..2959506a5 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -6,9 +6,9 @@ import java.util.Map; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.content.contraptions.fluids.FluidTransportBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.Direction; import net.minecraft.world.item.DyeColor; diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index fc288dde4..142e0dd20 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -231,13 +231,13 @@ import com.simibubi.create.foundation.data.SharedProperties; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.item.UncontainableBlockItem; import com.simibubi.create.foundation.utility.ColorHandlers; -import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.DyeHelper; import com.tterrag.registrate.providers.RegistrateRecipeProvider; import com.tterrag.registrate.providers.loot.RegistrateBlockLootTables; import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; +import net.createmod.catnip.utility.Couple; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; diff --git a/src/main/java/com/simibubi/create/AllEntityTypes.java b/src/main/java/com/simibubi/create/AllEntityTypes.java index 1f893325f..42ddd1ad1 100644 --- a/src/main/java/com/simibubi/create/AllEntityTypes.java +++ b/src/main/java/com/simibubi/create/AllEntityTypes.java @@ -17,12 +17,12 @@ import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEn import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntityRenderer; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionInstance; import com.simibubi.create.foundation.data.CreateEntityBuilder; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.entry.EntityEntry; import com.tterrag.registrate.util.nullness.NonNullConsumer; import com.tterrag.registrate.util.nullness.NonNullFunction; import com.tterrag.registrate.util.nullness.NonNullSupplier; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/com/simibubi/create/AllParticleTypes.java b/src/main/java/com/simibubi/create/AllParticleTypes.java index 722f1b5d2..5e9120583 100644 --- a/src/main/java/com/simibubi/create/AllParticleTypes.java +++ b/src/main/java/com/simibubi/create/AllParticleTypes.java @@ -12,8 +12,8 @@ import com.simibubi.create.content.contraptions.particle.ICustomParticleData; import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; import com.simibubi.create.content.curiosities.bell.SoulBaseParticle; import com.simibubi.create.content.curiosities.bell.SoulParticle; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.ParticleEngine; import net.minecraft.core.particles.ParticleOptions; diff --git a/src/main/java/com/simibubi/create/AllRecipeTypes.java b/src/main/java/com/simibubi/create/AllRecipeTypes.java index 6b9c33f42..5ddce1836 100644 --- a/src/main/java/com/simibubi/create/AllRecipeTypes.java +++ b/src/main/java/com/simibubi/create/AllRecipeTypes.java @@ -25,9 +25,9 @@ import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuild import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer; import com.simibubi.create.content.curiosities.toolbox.ToolboxDyeingRecipe; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe; -import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 57ae5e08c..c30d3f575 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -9,8 +9,8 @@ import java.util.function.BiFunction; import com.simibubi.create.content.logistics.block.chute.ChuteShapes; import com.simibubi.create.content.logistics.trains.track.TrackVoxelShapes; -import com.simibubi.create.foundation.utility.VoxelShaper; +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/AllSoundEvents.java b/src/main/java/com/simibubi/create/AllSoundEvents.java index 3835bf89e..dd0323f69 100644 --- a/src/main/java/com/simibubi/create/AllSoundEvents.java +++ b/src/main/java/com/simibubi/create/AllSoundEvents.java @@ -12,9 +12,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.Vec3i; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; diff --git a/src/main/java/com/simibubi/create/AllSpecialTextures.java b/src/main/java/com/simibubi/create/AllSpecialTextures.java index f697d04d6..03a142405 100644 --- a/src/main/java/com/simibubi/create/AllSpecialTextures.java +++ b/src/main/java/com/simibubi/create/AllSpecialTextures.java @@ -1,12 +1,10 @@ package com.simibubi.create; -import com.mojang.blaze3d.systems.RenderSystem; - +import net.createmod.catnip.render.BindableTexture; import net.minecraft.resources.ResourceLocation; -public enum AllSpecialTextures { +public enum AllSpecialTextures implements BindableTexture { - BLANK("blank.png"), CHECKERED("checkerboard.png"), THIN_CHECKERED("thin_checkerboard.png"), CUTOUT_CHECKERED("cutout_checkerboard.png"), @@ -17,18 +15,14 @@ public enum AllSpecialTextures { ; public static final String ASSET_PATH = "textures/special/"; - private ResourceLocation location; + private final ResourceLocation location; - private AllSpecialTextures(String filename) { + AllSpecialTextures(String filename) { location = Create.asResource(ASSET_PATH + filename); } - public void bind() { - RenderSystem.setShaderTexture(0, location); - } - public ResourceLocation getLocation() { return location; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/AllSpriteShifts.java b/src/main/java/com/simibubi/create/AllSpriteShifts.java index 31abb134d..2e33669c3 100644 --- a/src/main/java/com/simibubi/create/AllSpriteShifts.java +++ b/src/main/java/com/simibubi/create/AllSpriteShifts.java @@ -11,8 +11,8 @@ import com.simibubi.create.foundation.block.connected.CTSpriteShifter; import com.simibubi.create.foundation.block.connected.CTType; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.block.render.SpriteShifter; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.state.properties.WoodType; diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 7a228a611..3da108c32 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -8,12 +8,12 @@ import java.util.Collections; import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.data.recipe.Mods; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.ItemBuilder; import com.tterrag.registrate.providers.ProviderType; import com.tterrag.registrate.util.nullness.NonNullFunction; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.data.tags.TagsProvider.TagAppender; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; @@ -445,7 +445,7 @@ public class AllTags { strippedWoodCompat(Mods.BOP, "fir", "redwood", "cherry", "mahogany", "jacaranda", "palm", "willow", "dead", "magic", "umbran", "hellbark"); strippedWoodCompat(Mods.BSK, "bluebright", "starlit", "frostbright", "lunar", "dusk", "maple", "cherry"); - + AllItemTags.MODDED_STRIPPED_LOGS.addOptional(Mods.BYG, "stripped_bulbis_stem"); AllItemTags.MODDED_STRIPPED_WOOD.addOptional(Mods.BYG, "stripped_bulbis_wood"); diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index 5b847be56..7c5eaad2b 100644 --- a/src/main/java/com/simibubi/create/CreateClient.java +++ b/src/main/java/com/simibubi/create/CreateClient.java @@ -20,17 +20,18 @@ import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler; import com.simibubi.create.content.schematics.client.SchematicHandler; import com.simibubi.create.foundation.ClientResourceReloadListener; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.ponder.CreatePonderIndex; +import com.simibubi.create.foundation.ponder.CreatePonderTag; +import com.simibubi.create.foundation.ponder.CreateSharedPonderText; +import com.simibubi.create.foundation.ponder.PonderWorldTileFix; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.CreateContexts; import com.simibubi.create.foundation.render.SuperByteBufferCache; import com.simibubi.create.foundation.utility.ModelSwapper; import com.simibubi.create.foundation.utility.ShippedResourcePacks; -import com.simibubi.create.foundation.utility.ghost.GhostBlocks; -import com.simibubi.create.foundation.utility.outliner.Outliner; +import net.createmod.ponder.foundation.PonderIndex; +import net.createmod.ponder.foundation.PonderWorld; import net.minecraft.ChatFormatting; import net.minecraft.client.GraphicsStatus; import net.minecraft.client.Minecraft; @@ -48,8 +49,7 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; public class CreateClient { public static final SuperByteBufferCache BUFFER_CACHE = new SuperByteBufferCache(); - public static final Outliner OUTLINER = new Outliner(); - public static final GhostBlocks GHOST_BLOCKS = new GhostBlocks(); + //public static final Outliner OUTLINER = new Outliner(); public static final ModelSwapper MODEL_SWAPPER = new ModelSwapper(); public static final CasingConnectivity CASING_CONNECTIVITY = new CasingConnectivity(); @@ -75,6 +75,8 @@ public class CreateClient { ZAPPER_RENDER_HANDLER.registerListeners(forgeEventBus); POTATO_CANNON_RENDER_HANDLER.registerListeners(forgeEventBus); + + CreateSharedPonderText.loadClass(); } public static void clientInit(final FMLClientSetupEvent event) { @@ -83,7 +85,6 @@ public class CreateClient { BUFFER_CACHE.registerCompartment(CachedBufferer.DIRECTIONAL_PARTIAL); BUFFER_CACHE.registerCompartment(KineticTileEntityRenderer.KINETIC_TILE); BUFFER_CACHE.registerCompartment(SBBContraptionManager.CONTRAPTION, 20); - BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20); ShippedResourcePacks.extractFiles("Copper Legacy Pack"); @@ -92,12 +93,13 @@ public class CreateClient { AllBlockPartials.init(); AllStitchedTextures.init(); - PonderIndex.register(); - PonderIndex.registerTags(); + CreatePonderIndex.register(); + CreatePonderIndex.registerTags(); + PonderIndex.addIndex(CreatePonderIndex::register); + PonderIndex.addIndex(CreatePonderTag::register); + PonderWorld.onRestore(PonderWorldTileFix::fixControllerTiles); registerOverlays(); - - UIRenderHelper.init(); } private static void registerOverlays() { diff --git a/src/main/java/com/simibubi/create/api/connectivity/ConnectivityHandler.java b/src/main/java/com/simibubi/create/api/connectivity/ConnectivityHandler.java index a840bb8d8..811d8932d 100644 --- a/src/main/java/com/simibubi/create/api/connectivity/ConnectivityHandler.java +++ b/src/main/java/com/simibubi/create/api/connectivity/ConnectivityHandler.java @@ -15,8 +15,8 @@ import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTileEntity; import com.simibubi.create.foundation.tileEntity.IMultiTileContainer; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockGetter; @@ -316,13 +316,13 @@ public class ConnectivityHandler { for (int yOffset = 0; yOffset < height; yOffset++) { for (int xOffset = 0; xOffset < width; xOffset++) { for (int zOffset = 0; zOffset < width; zOffset++) { - + BlockPos pos = switch (axis) { case X -> origin.offset(yOffset, xOffset, zOffset); case Y -> origin.offset(xOffset, yOffset, zOffset); case Z -> origin.offset(xOffset, zOffset, yOffset); }; - + T partAt = partAt(be.getType(), level, pos); if (partAt == null) continue; @@ -354,19 +354,19 @@ public class ConnectivityHandler { frontier.add(partAt); partAt.preventConnectivityUpdate(); } - if (cache != null) + if (cache != null) cache.put(pos, partAt); } } } - + if (be instanceof IMultiTileContainer.Inventory iinv && iinv.hasInventory()) be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) .invalidate(); if (be instanceof IMultiTileContainer.Fluid ifluid && ifluid.hasTank()) be.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) .invalidate(); - + if (tryReconnect) formMulti(be.getType(), level, cache == null ? new SearchCache<>() : cache, frontier); } diff --git a/src/main/java/com/simibubi/create/compat/Mods.java b/src/main/java/com/simibubi/create/compat/Mods.java index 52201bb24..bccf79f7c 100644 --- a/src/main/java/com/simibubi/create/compat/Mods.java +++ b/src/main/java/com/simibubi/create/compat/Mods.java @@ -3,8 +3,7 @@ package com.simibubi.create.compat; import java.util.Optional; import java.util.function.Supplier; -import com.simibubi.create.foundation.utility.Lang; - +import net.createmod.catnip.utility.lang.Lang; import net.minecraftforge.fml.ModList; /** diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 8bb25ddff..e35e3e746 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -53,7 +53,6 @@ import com.simibubi.create.content.logistics.item.filter.AbstractFilterScreen; import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleScreen; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CRecipes; -import com.simibubi.create.foundation.config.ConfigBase.ConfigBool; import com.simibubi.create.foundation.data.recipe.LogStrippingFakeRecipes; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo; @@ -69,6 +68,7 @@ import mezz.jei.api.registration.IRecipeRegistration; import mezz.jei.api.registration.IRecipeTransferRegistration; import mezz.jei.api.registration.ISubtypeRegistration; import mezz.jei.api.runtime.IIngredientManager; +import net.createmod.catnip.config.ConfigBase.ConfigBool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/compat/jei/DoubleItemIcon.java b/src/main/java/com/simibubi/create/compat/jei/DoubleItemIcon.java index 917597d56..d0d764ec0 100644 --- a/src/main/java/com/simibubi/create/compat/jei/DoubleItemIcon.java +++ b/src/main/java/com/simibubi/create/compat/jei/DoubleItemIcon.java @@ -4,9 +4,9 @@ import java.util.function.Supplier; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import mezz.jei.api.gui.drawable.IDrawable; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.item.ItemStack; public class DoubleItemIcon implements IDrawable { diff --git a/src/main/java/com/simibubi/create/compat/jei/PotionFluidSubtypeInterpreter.java b/src/main/java/com/simibubi/create/compat/jei/PotionFluidSubtypeInterpreter.java index ee5d05a6c..88ad8fd50 100644 --- a/src/main/java/com/simibubi/create/compat/jei/PotionFluidSubtypeInterpreter.java +++ b/src/main/java/com/simibubi/create/compat/jei/PotionFluidSubtypeInterpreter.java @@ -3,10 +3,10 @@ package com.simibubi.create.compat.jei; import java.util.List; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.BottleType; -import com.simibubi.create.foundation.utility.NBTHelper; import mezz.jei.api.ingredients.subtypes.IIngredientSubtypeInterpreter; import mezz.jei.api.ingredients.subtypes.UidContext; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.item.alchemy.Potion; diff --git a/src/main/java/com/simibubi/create/compat/jei/ScreenResourceWrapper.java b/src/main/java/com/simibubi/create/compat/jei/ScreenResourceWrapper.java index bc7bd4aa4..50270bfc3 100644 --- a/src/main/java/com/simibubi/create/compat/jei/ScreenResourceWrapper.java +++ b/src/main/java/com/simibubi/create/compat/jei/ScreenResourceWrapper.java @@ -16,19 +16,19 @@ public class ScreenResourceWrapper implements IDrawable { @Override public int getWidth() { - return resource.width; + return resource.getWidth(); } @Override public int getHeight() { - return resource.height; + return resource.getHeight(); } @Override public void draw(PoseStack matrixStack, int xOffset, int yOffset) { resource.bind(); - GuiComponent.blit(matrixStack, xOffset, yOffset, 0, resource.startX, resource.startY, resource.width, - resource.height, 256, 256); + GuiComponent.blit(matrixStack, xOffset, yOffset, 0, resource.getStartX(), resource.getStartY(), resource.getWidth(), + resource.getHeight(), 256, 256); } } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java index e62d7786f..f00482fb9 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BasinCategory.java @@ -17,8 +17,7 @@ import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlo import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; @@ -26,6 +25,7 @@ import mezz.jei.api.gui.drawable.IDrawable; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; +import net.createmod.catnip.utility.Pair; import net.minecraft.client.Minecraft; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; @@ -136,7 +136,7 @@ public class BasinCategory extends CreateRecipeCategory { AllGuiTextures heatBar = noHeat ? AllGuiTextures.JEI_NO_HEAT_BAR : AllGuiTextures.JEI_HEAT_BAR; heatBar.render(matrixStack, 4, 80); - Minecraft.getInstance().font.draw(matrixStack, Lang.translateDirect(requiredHeat.getTranslationKey()), 9, + Minecraft.getInstance().font.draw(matrixStack, CreateLang.translateDirect(requiredHeat.getTranslationKey()), 9, 86, requiredHeat.getColor()); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java index 4ed8d74f9..af64f25c5 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java @@ -18,7 +18,7 @@ import com.simibubi.create.compat.jei.EmptyBackground; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.drawable.IDrawable; @@ -77,7 +77,7 @@ public abstract class CreateRecipeCategory> implements IReci @Override public Component getTitle() { - return Lang.translateDirect("recipe." + name); + return CreateLang.translateDirect("recipe." + name); } @Override @@ -125,7 +125,7 @@ public abstract class CreateRecipeCategory> implements IReci return (view, tooltip) -> { float chance = output.getChance(); if (chance != 1) - tooltip.add(1, Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100)) + tooltip.add(1, CreateLang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100)) .withStyle(ChatFormatting.GOLD)); }; } @@ -168,7 +168,7 @@ public abstract class CreateRecipeCategory> implements IReci } int amount = mbAmount == -1 ? fluidStack.getAmount() : mbAmount; - Component text = new TextComponent(String.valueOf(amount)).append(Lang.translateDirect("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD); + Component text = new TextComponent(String.valueOf(amount)).append(CreateLang.translateDirect("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD); if (tooltip.isEmpty()) tooltip.add(0, text); else { @@ -183,12 +183,12 @@ public abstract class CreateRecipeCategory> implements IReci return new IDrawable() { @Override public int getWidth() { - return texture.width; + return texture.getWidth(); } @Override public int getHeight() { - return texture.height; + return texture.getHeight(); } @Override diff --git a/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java index b74db89c5..29f0b1f46 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/CrushingCategory.java @@ -13,12 +13,12 @@ import com.simibubi.create.content.contraptions.components.crusher.AbstractCrush import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.ponder.ui.LayoutHelper; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; +import net.createmod.catnip.utility.layout.LayoutHelper; @ParametersAreNonnullByDefault public class CrushingCategory extends CreateRecipeCategory { diff --git a/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java index 93f898f5b..3f943fffa 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/DeployingCategory.java @@ -7,7 +7,7 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.compat.jei.category.animations.AnimatedDeployer; import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.builder.IRecipeSlotBuilder; @@ -47,7 +47,7 @@ public class DeployingCategory extends CreateRecipeCategory tooltip.add(1, Lang.translateDirect("recipe.deploying.not_consumed").withStyle(ChatFormatting.GOLD))); + handItemSlot.addTooltipCallback((recipeSlotView, tooltip) -> tooltip.add(1, CreateLang.translateDirect("recipe.deploying.not_consumed").withStyle(ChatFormatting.GOLD))); } } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/FanBlastingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/FanBlastingCategory.java index 442d5f4bb..6e6119a77 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/FanBlastingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/FanBlastingCategory.java @@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.AbstractCookingRecipe; import net.minecraft.world.level.material.Fluids; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/FanHauntingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/FanHauntingCategory.java index c676a9bb5..a5782b671 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/FanHauntingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/FanHauntingCategory.java @@ -7,8 +7,8 @@ import com.simibubi.create.AllItems; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.content.contraptions.components.fan.HauntingRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/FanSmokingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/FanSmokingCategory.java index c1b32749f..f11473623 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/FanSmokingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/FanSmokingCategory.java @@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.SmokingRecipe; import net.minecraft.world.level.block.Blocks; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/FanWashingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/FanWashingCategory.java index eea7ead05..9dbc12ed9 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/FanWashingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/FanWashingCategory.java @@ -6,8 +6,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.item.Items; import net.minecraft.world.level.material.Fluids; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/ItemApplicationCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/ItemApplicationCategory.java index 4533509eb..a212a4e37 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/ItemApplicationCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/ItemApplicationCategory.java @@ -10,14 +10,14 @@ import com.simibubi.create.AllItems; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.ChatFormatting; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -47,7 +47,7 @@ public class ItemApplicationCategory extends CreateRecipeCategory tooltip.add(1, Lang.translateDirect("recipe.deploying.not_consumed") + ? (view, tooltip) -> tooltip.add(1, CreateLang.translateDirect("recipe.deploying.not_consumed") .withStyle(ChatFormatting.GOLD)) : (view, tooltip) -> {} ); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java index 8f44662e5..52c365a52 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/PolishingCategory.java @@ -7,12 +7,12 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java index ed7ee5d9f..c54df10f2 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/ProcessingViaFanCategory.java @@ -13,7 +13,7 @@ import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.drawable.IDrawable; @@ -38,7 +38,7 @@ public abstract class ProcessingViaFanCategory> extends Crea public static Supplier getFan(String name) { return () -> AllBlocks.ENCASED_FAN.asStack() - .setHoverName(Lang.translateDirect("recipe." + name + ".fan").withStyle(style -> style.withItalic(false))); + .setHoverName(CreateLang.translateDirect("recipe." + name + ".fan").withStyle(style -> style.withItalic(false))); } @Override diff --git a/src/main/java/com/simibubi/create/compat/jei/category/SequencedAssemblyCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SequencedAssemblyCategory.java index f1c00c5ec..b2d486196 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/SequencedAssemblyCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SequencedAssemblyCategory.java @@ -17,7 +17,7 @@ import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRe import com.simibubi.create.content.contraptions.itemAssembly.SequencedRecipe; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; @@ -63,7 +63,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory getTooltipStrings(SequencedAssemblyRecipe recipe, IRecipeSlotsView iRecipeSlotsView, double mouseX, double mouseY) { List tooltip = new ArrayList<>(); - TranslatableComponent junk = Lang.translateDirect("recipe.assembly.junk"); + TranslatableComponent junk = CreateLang.translateDirect("recipe.assembly.junk"); boolean singleOutput = recipe.getOutputChance() == 1; boolean willRepeat = recipe.getLoops() > 1; @@ -164,7 +164,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory= minX && mouseX < maxX && mouseY >= minY && mouseY < maxY) { float chance = recipe.getOutputChance(); tooltip.add(junk); - tooltip.add(Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : 100 - (int) (chance * 100)) + tooltip.add(CreateLang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : 100 - (int) (chance * 100)) .withStyle(ChatFormatting.GOLD)); return tooltip; } @@ -174,7 +174,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory= minX && mouseX < maxX && mouseY >= minY && mouseY < maxY) { - tooltip.add(Lang.translateDirect("recipe.assembly.repeat", recipe.getLoops())); + tooltip.add(CreateLang.translateDirect("recipe.assembly.repeat", recipe.getLoops())); return tooltip; } @@ -192,7 +192,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory sequencedRecipe = sequence.get(i); SequencedAssemblySubCategory subCategory = getSubCategory(sequencedRecipe); if (relativeX >= 0 && relativeX < subCategory.getWidth()) { - tooltip.add(Lang.translateDirect("recipe.assembly.step", i + 1)); + tooltip.add(CreateLang.translateDirect("recipe.assembly.step", i + 1)); tooltip.add(sequencedRecipe.getAsAssemblyRecipe() .getDescriptionForAssembly() .plainCopy() diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java index 3f76002bf..d34187d97 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java @@ -10,8 +10,9 @@ import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; @@ -71,7 +72,7 @@ public class AnimatedBlazeBurner extends AnimatedKinetics { - spriteShift.getTarget() .getV0(); - float time = AnimationTickHolder.getRenderTime(Minecraft.getInstance().level); + float time = WorldTickHolder.getRenderTime(Minecraft.getInstance().level); float speed = 1 / 32f + 1 / 64f * heatLevel.ordinal(); double vScroll = speed * time; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedDeployer.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedDeployer.java index 218aa985c..b331b58af 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedDeployer.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedDeployer.java @@ -5,8 +5,8 @@ import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedItemDrain.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedItemDrain.java index 1c7e56913..21b4722a2 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedItemDrain.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedItemDrain.java @@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.fluid.FluidRenderer; -import com.simibubi.create.foundation.gui.UIRenderHelper; +import net.createmod.catnip.gui.UIRenderHelper; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource.BufferSource; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java index b78a6672a..e4fe8aa33 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedKinetics.java @@ -4,17 +4,18 @@ import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.gui.CustomLightingSettings; -import com.simibubi.create.foundation.gui.ILightingSettings; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.foundation.gui.element.PartialModelGuiElement; import mezz.jei.api.gui.drawable.IDrawable; +import net.createmod.catnip.gui.ILightingSettings; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; public abstract class AnimatedKinetics implements IDrawable { - + public int offset = 0; public static final ILightingSettings DEFAULT_LIGHTING = CustomLightingSettings.builder() @@ -36,7 +37,7 @@ public abstract class AnimatedKinetics implements IDrawable { * Use {@link #blockElement(PartialModel)} if calling from inside a subclass. */ public static GuiGameElement.GuiRenderBuilder defaultBlockElement(PartialModel partial) { - return GuiGameElement.of(partial) + return PartialModelGuiElement.of(partial) .lighting(DEFAULT_LIGHTING); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java index fa041a418..87600cd94 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java @@ -4,8 +4,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.util.Mth; public class AnimatedMixer extends AnimatedKinetics { diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java index 26b0c1061..873c29b00 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java @@ -4,8 +4,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction.Axis; public class AnimatedPress extends AnimatedKinetics { diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSpout.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSpout.java index faac26a70..86017412a 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSpout.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSpout.java @@ -9,9 +9,9 @@ import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.fluid.FluidRenderer; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource.BufferSource; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java index 8e70946eb..5476bd122 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/sequencedAssembly/SequencedAssemblySubCategory.java @@ -9,7 +9,7 @@ import com.simibubi.create.compat.jei.category.animations.AnimatedSpout; import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; import com.simibubi.create.content.contraptions.itemAssembly.SequencedRecipe; import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; @@ -111,7 +111,7 @@ public abstract class SequencedAssemblySubCategory { if (recipe.getAsAssemblyRecipe() instanceof DeployerApplicationRecipe deployerRecipe && deployerRecipe.shouldKeepHeldItem()) { slot.addTooltipCallback( - (recipeSlotView, tooltip) -> tooltip.add(1, Lang.translateDirect("recipe.deploying.not_consumed").withStyle(ChatFormatting.GOLD)) + (recipeSlotView, tooltip) -> tooltip.add(1, CreateLang.translateDirect("recipe.deploying.not_consumed").withStyle(ChatFormatting.GOLD)) ); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java b/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java index 4bf664f29..2fc6a546e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java +++ b/src/main/java/com/simibubi/create/content/contraptions/KineticDebugger.java @@ -5,9 +5,10 @@ import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -44,7 +45,7 @@ public class KineticDebugger { .getBlockSupportShape(world, toOutline); if (te.getTheoreticalSpeed() != 0 && !shape.isEmpty()) - CreateClient.OUTLINER.chaseAABB("kineticSource", shape.bounds() + CatnipClient.OUTLINER.chaseAABB("kineticSource", shape.bounds() .move(toOutline)) .lineWidth(1 / 16f) .colored(te.hasSource() ? Color.generateFromLong(te.network).getRGB() : 0xffcc00); @@ -54,7 +55,7 @@ public class KineticDebugger { Vec3 vec = Vec3.atLowerCornerOf(Direction.get(AxisDirection.POSITIVE, axis) .getNormal()); Vec3 center = VecHelper.getCenterOf(te.getBlockPos()); - CreateClient.OUTLINER.showLine("rotationAxis", center.add(vec), center.subtract(vec)) + CatnipClient.OUTLINER.showLine("rotationAxis", center.add(vec), center.subtract(vec)) .lineWidth(1 / 16f); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/RotationPropagator.java b/src/main/java/com/simibubi/create/content/contraptions/RotationPropagator.java index 7b0bd897f..9b15ed241 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/RotationPropagator.java +++ b/src/main/java/com/simibubi/create/content/contraptions/RotationPropagator.java @@ -17,8 +17,8 @@ import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock; import com.simibubi.create.content.contraptions.relays.encased.SplitShaftTileEntity; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxTileEntity; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -36,7 +36,7 @@ public class RotationPropagator { * Determines the change in rotation between two attached kinetic entities. For * instance, an axis connection returns 1 while a 1-to-1 gear connection * reverses the rotation and therefore returns -1. - * + * * @param from * @param to * @return @@ -201,7 +201,7 @@ public class RotationPropagator { /** * Insert the added position to the kinetic network. - * + * * @param worldIn * @param pos */ @@ -215,7 +215,7 @@ public class RotationPropagator { /** * Search for sourceless networks attached to the given entity and update them. - * + * * @param currentTE */ private static void propagateNewSource(KineticTileEntity currentTE) { @@ -230,7 +230,7 @@ public class RotationPropagator { if (newSpeed == 0 && oppositeSpeed == 0) continue; - + boolean incompatible = Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0); @@ -300,7 +300,7 @@ public class RotationPropagator { /** * Remove the given entity from the network. - * + * * @param worldIn * @param pos * @param removedTE @@ -333,7 +333,7 @@ public class RotationPropagator { /** * Clear the entire subnetwork depending on the given entity and find a new * source - * + * * @param updateTE */ private static void propagateMissingSource(KineticTileEntity updateTE) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java b/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java index ecaac86c3..008d115c6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java +++ b/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java @@ -5,8 +5,8 @@ import java.util.Map; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.WorldHelper; +import net.createmod.catnip.utility.WorldHelper; import net.minecraft.world.level.LevelAccessor; public class TorquePropagator { diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalAxisKineticBlock.java b/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalAxisKineticBlock.java index 9de9138d8..c52216273 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalAxisKineticBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalAxisKineticBlock.java @@ -1,8 +1,7 @@ package com.simibubi.create.content.contraptions.base; -import com.simibubi.create.foundation.utility.DirectionHelper; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.DirectionHelper; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalKineticBlock.java b/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalKineticBlock.java index 219643025..8b5b27883 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalKineticBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/DirectionalKineticBlock.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.base; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/GeneratingKineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/GeneratingKineticTileEntity.java index d9dfcb467..8086f7cc0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/GeneratingKineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/GeneratingKineticTileEntity.java @@ -5,7 +5,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.KineticNetwork; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.content.contraptions.base.IRotate.StressImpact; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -64,9 +64,9 @@ public abstract class GeneratingKineticTileEntity extends KineticTileEntity { if (Mth.equal(stressBase, 0)) return added; - Lang.translate("gui.goggles.generator_stats") + CreateLang.translate("gui.goggles.generator_stats") .forGoggles(tooltip); - Lang.translate("tooltip.capacityProvided") + CreateLang.translate("tooltip.capacityProvided") .style(ChatFormatting.GRAY) .forGoggles(tooltip); @@ -77,11 +77,11 @@ public abstract class GeneratingKineticTileEntity extends KineticTileEntity { float stressTotal = stressBase * speed; - Lang.number(stressTotal) + CreateLang.number(stressTotal) .translate("generic.unit.stress") .style(ChatFormatting.AQUA) .space() - .add(Lang.translate("gui.goggles.at_current_speed") + .add(CreateLang.translate("gui.goggles.at_current_speed") .style(ChatFormatting.DARK_GRAY)) .forGoggles(tooltip, 1); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalAxisKineticBlock.java b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalAxisKineticBlock.java index a9c674ac9..053a3b22e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalAxisKineticBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalAxisKineticBlock.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.base; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalKineticBlock.java b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalKineticBlock.java index 85cfc7e95..70286fd67 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalKineticBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/HorizontalKineticBlock.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.base; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/IRotate.java b/src/main/java/com/simibubi/create/content/contraptions/base/IRotate.java index 089d86101..cb5ee9142 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/IRotate.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/IRotate.java @@ -3,9 +3,10 @@ package com.simibubi.create.content.contraptions.base; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemDescription; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.lang.LangBuilder; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -73,12 +74,12 @@ public interface IRotate extends IWrenchable { public static LangBuilder getFormattedSpeedText(float speed, boolean overstressed) { SpeedLevel speedLevel = of(speed); - LangBuilder builder = Lang.text(ItemDescription.makeProgressBar(3, speedLevel.ordinal())); + LangBuilder builder = CreateLang.text(ItemDescription.makeProgressBar(3, speedLevel.ordinal())); builder.translate("tooltip.speedRequirement." + Lang.asId(speedLevel.name())) .space() .text("(") - .add(Lang.number(Math.abs(speed))) + .add(CreateLang.number(Math.abs(speed))) .space() .translate("generic.unit.rpm") .text(")") @@ -133,7 +134,7 @@ public interface IRotate extends IWrenchable { public static LangBuilder getFormattedStressText(double stressPercent) { StressImpact stressLevel = of(stressPercent); - return Lang.text(ItemDescription.makeProgressBar(3, Math.min(stressLevel.ordinal() + 1, 3))) + return CreateLang.text(ItemDescription.makeProgressBar(3, Math.min(stressLevel.ordinal() + 1, 3))) .translate("tooltip.stressImpact." + Lang.asId(stressLevel.name())) .text(String.format(" (%s%%) ", (int) (stressPercent * 100))) .style(stressLevel.getRelativeColor()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticEffectHandler.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticEffectHandler.java index 4385eb3d0..4955f6c96 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticEffectHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticEffectHandler.java @@ -4,8 +4,8 @@ import java.util.Random; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleOptions; diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java index 4f875beb6..77d3ffab8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java @@ -19,13 +19,13 @@ import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxBlock; import com.simibubi.create.foundation.block.BlockStressValues; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.sound.SoundScapes; import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.resources.language.I18n; import net.minecraft.core.BlockPos; @@ -397,10 +397,10 @@ public class KineticTileEntity extends SmartTileEntity implements IHaveGoggleInf if (overStressed && AllConfigs.CLIENT.enableOverstressedTooltip.get()) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.stressometer.overstressed") + .append(CreateLang.translateDirect("gui.stressometer.overstressed") .withStyle(GOLD))); - Component hint = Lang.translateDirect("gui.contraptions.network_overstressed"); - List cutString = TooltipHelper.cutTextComponent(hint, GRAY, ChatFormatting.WHITE); + Component hint = CreateLang.translateDirect("gui.contraptions.network_overstressed"); + List cutString = FontHelper.cutTextComponent(hint, GRAY, ChatFormatting.WHITE); for (int i = 0; i < cutString.size(); i++) tooltip.add(componentSpacing.plainCopy() .append(cutString.get(i))); @@ -409,12 +409,12 @@ public class KineticTileEntity extends SmartTileEntity implements IHaveGoggleInf if (notFastEnough) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.speedRequirement") + .append(CreateLang.translateDirect("tooltip.speedRequirement") .withStyle(GOLD))); Component hint = - Lang.translateDirect("gui.contraptions.not_fast_enough", I18n.get(getBlockState().getBlock() + CreateLang.translateDirect("gui.contraptions.not_fast_enough", I18n.get(getBlockState().getBlock() .getDescriptionId())); - List cutString = TooltipHelper.cutTextComponent(hint, GRAY, ChatFormatting.WHITE); + List cutString = FontHelper.cutTextComponent(hint, GRAY, ChatFormatting.WHITE); for (int i = 0; i < cutString.size(); i++) tooltip.add(componentSpacing.plainCopy() .append(cutString.get(i))); @@ -434,19 +434,19 @@ public class KineticTileEntity extends SmartTileEntity implements IHaveGoggleInf if (Mth.equal(stressAtBase, 0)) return added; - Lang.translate("gui.goggles.kinetic_stats") + CreateLang.translate("gui.goggles.kinetic_stats") .forGoggles(tooltip); - Lang.translate("tooltip.stressImpact") + CreateLang.translate("tooltip.stressImpact") .style(GRAY) .forGoggles(tooltip); float stressTotal = stressAtBase * Math.abs(getTheoreticalSpeed()); - Lang.number(stressTotal) + CreateLang.number(stressTotal) .translate("generic.unit.stress") .style(ChatFormatting.AQUA) .space() - .add(Lang.translate("gui.goggles.at_current_speed") + .add(CreateLang.translate("gui.goggles.at_current_speed") .style(ChatFormatting.DARK_GRAY)) .forGoggles(tooltip, 1); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java index 3ef7482b8..4b3b17bba 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntityRenderer.java @@ -12,9 +12,9 @@ import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.render.SuperByteBufferCache; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -77,7 +77,7 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer, Batched { diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/KineticData.java b/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/KineticData.java index 88f97c572..16faae5ed 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/KineticData.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/KineticData.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.base.flwdata; import com.jozufozu.flywheel.core.materials.BasicData; import com.mojang.math.Vector3f; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.BlockPos; public class KineticData extends BasicData { diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/RotatingType.java b/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/RotatingType.java index bef2e4722..b9bcaf258 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/RotatingType.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/flwdata/RotatingType.java @@ -11,8 +11,8 @@ import com.mojang.math.Vector3f; import com.simibubi.create.content.contraptions.KineticDebugger; import com.simibubi.create.foundation.render.AllInstanceFormats; import com.simibubi.create.foundation.render.AllProgramSpecs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.resources.ResourceLocation; public class RotatingType implements Instanced, Batched { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/BlockBreakingKineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/BlockBreakingKineticTileEntity.java index dee22e4ba..004b2c605 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/BlockBreakingKineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/BlockBreakingKineticTileEntity.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.actors; import java.util.concurrent.atomic.AtomicInteger; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; @@ -40,7 +40,7 @@ public abstract class BlockBreakingKineticTileEntity extends KineticTileEntity { if (destroyProgress == -1) destroyNextTick(); } - + @Override public void lazyTick() { super.lazyTick(); @@ -93,9 +93,9 @@ public abstract class BlockBreakingKineticTileEntity extends KineticTileEntity { return; if (getSpeed() == 0) return; - + breakingPos = getBreakingPos(); - + if (ticksUntilNextProgress < 0) return; if (ticksUntilNextProgress-- > 0) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillActorInstance.java index 304fe9cd1..586510a9a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillActorInstance.java @@ -9,9 +9,9 @@ import com.simibubi.create.content.contraptions.components.actors.flwdata.ActorD import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillMovementBehaviour.java index 89ebb9582..729895524 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillMovementBehaviour.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.world.damagesource.DamageSource; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java index 28140233b..cfa4a7854 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/DrillRenderer.java @@ -9,10 +9,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java index de07acdd9..517367a8d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterActorInstance.java @@ -8,10 +8,10 @@ import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -61,6 +61,8 @@ public class HarvesterActorInstance extends ActorInstance { double radians = arcLength * oneOverRadius; + + float deg = AngleHelper.deg(radians); deg = (float) (((int) (deg * 3000)) / 3000); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java index 9360166dc..6a52e2765 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterMovementBehaviour.java @@ -13,8 +13,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java index 0fbe0c3d8..6cdd17929 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java @@ -11,10 +11,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -63,7 +63,7 @@ public class HarvesterRenderer extends SafeTileEntityRenderer implements DynamicInstance, TickableInstance { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PloughMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PloughMovementBehaviour.java index 1cca39d6b..fdfdcd42d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PloughMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PloughMovementBehaviour.java @@ -4,8 +4,8 @@ import com.simibubi.create.content.contraptions.components.actors.PloughBlock.Pl import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.logistics.trains.track.FakeTrackBlock; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.InteractionHand; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java index 6df522cf8..e6f55f8e4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceMovement.java @@ -12,10 +12,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.content.logistics.trains.entity.CarriageContraption; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java index 051f63086..0e246a1a3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceRenderer.java @@ -15,10 +15,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceTileEntity.java index 17c41d628..8f540b116 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceTileEntity.java @@ -8,8 +8,8 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SawMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SawMovementBehaviour.java index 17965f864..3bf582af1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SawMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SawMovementBehaviour.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; import com.simibubi.create.foundation.utility.AbstractBlockBreakQueue; import com.simibubi.create.foundation.utility.TreeCutter; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java index 5c5082874..efaded0fd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java @@ -6,8 +6,8 @@ import java.util.UUID; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.SlabBlock; @@ -28,7 +28,7 @@ public class SeatMovementBehaviour implements MovementBehaviour { @Override public void visitNewPosition(MovementContext context, BlockPos pos) { MovementBehaviour.super.visitNewPosition(context, pos); - + AbstractContraptionEntity contraptionEntity = context.contraption.entity; if (contraptionEntity == null) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java index db08c740e..342d3e2da 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockRenderer.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.components.clock.CuckooClockTileEntity.Animation; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockTileEntity.java index 2367a0a23..e86e9eeee 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/clock/CuckooClockTileEntity.java @@ -5,12 +5,12 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; @@ -42,7 +42,7 @@ public class CuckooClockTileEntity extends KineticTileEntity { super(type, pos, state); animationType = Animation.NONE; } - + @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ConnectedInputHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ConnectedInputHandler.java index 36a6c2d7c..ae6ae78da 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ConnectedInputHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/ConnectedInputHandler.java @@ -15,8 +15,8 @@ import java.util.function.Consumer; import java.util.stream.Collectors; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterBlock.java index 47062a61b..4930787ba 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterBlock.java @@ -11,11 +11,11 @@ import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java index 72a648e76..2b40f623c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterRenderer.java @@ -16,10 +16,10 @@ import com.simibubi.create.content.contraptions.components.crafter.RecipeGridHan import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java index 1028647db..532f20b48 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java @@ -21,10 +21,10 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ItemParticleOption; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/RecipeGridHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/RecipeGridHandler.java index 8f6be9a34..a0435b6c3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/RecipeGridHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/RecipeGridHandler.java @@ -17,9 +17,9 @@ import com.google.common.base.Predicates; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankBlock.java index 075352fed..b0d6d0449 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankBlock.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -61,11 +61,11 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE te.turn(player.isShiftKeyDown())); player.causeFoodExhaustion(getRotationSpeed() * AllConfigs.SERVER.kinetics.crankHungerMultiplier.getF()); - + if (player.getFoodData() .getFoodLevel() == 0) AllAdvancements.HAND_CRANK.awardTo(player); - + return InteractionResult.SUCCESS; } @@ -129,7 +129,7 @@ public class HandCrankBlock extends DirectionalKineticBlock implements ITE getSpeedRange() { return Couple.create(32, 32); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java index c3eaeb218..7eacbb454 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankInstance.java @@ -6,8 +6,8 @@ import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.properties.BlockStateProperties; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankTileEntity.java index 4ef31339f..534f9aec8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/HandCrankTileEntity.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.crank; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crank/ValveHandleBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crank/ValveHandleBlock.java index 9c22fa6b4..9666c0e46 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crank/ValveHandleBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crank/ValveHandleBlock.java @@ -5,8 +5,8 @@ import javax.annotation.ParametersAreNonnullByDefault; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.world.InteractionHand; @@ -74,7 +74,7 @@ public class ValveHandleBlock extends HandCrankBlock { public int getRotationSpeed() { return 16; } - + public static Couple getSpeedRange() { return Couple.create(16, 16); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelBlock.java index 911391a56..8b5957b07 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelBlock.java @@ -7,8 +7,8 @@ import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -189,7 +189,7 @@ public class CrushingWheelBlock extends RotatedPillarKineticBlock implements ITE public Class getTileEntityClass() { return CrushingWheelTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.CRUSHING_WHEEL.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java index 7bb3f606a..65f3adb91 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerBlock.java @@ -8,8 +8,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -150,11 +150,11 @@ public class CrushingWheelControllerBlock extends DirectionalBlock implements IT continue; te.crushingspeed = Math.abs(cwte.getSpeed() / 50f); te.sendData(); - + cwte.award(AllAdvancements.CRUSHING_WHEEL); - if (cwte.getSpeed() > 255) + if (cwte.getSpeed() > 255) cwte.award(AllAdvancements.CRUSHER_MAXED); - + break; } }); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java index 120001d63..cff2190d0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelControllerTileEntity.java @@ -16,9 +16,9 @@ import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelTileEntity.java index 7cedbe8ce..8cf82d834 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crusher/CrushingWheelTileEntity.java @@ -5,8 +5,8 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.damagesource.DamageSource; @@ -36,7 +36,7 @@ public class CrushingWheelTileEntity extends KineticTileEntity { super.addBehaviours(behaviours); registerAwardables(behaviours, AllAdvancements.CRUSHING_WHEEL, AllAdvancements.CRUSHER_MAXED); } - + @Override public void onSpeedChanged(float prevSpeed) { super.onSpeedChanged(prevSpeed); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerActorInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerActorInstance.java index 7477c48d1..9b5fa3c3f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerActorInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerActorInstance.java @@ -18,11 +18,11 @@ import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java index 92126100d..8f127d6bd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerApplicationRecipe.java @@ -12,7 +12,7 @@ import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -60,7 +60,7 @@ public class DeployerApplicationRecipe extends ItemApplicationRecipe implements .getItems(); if (matchingStacks.length == 0) return new TextComponent("Invalid"); - return Lang.translateDirect("recipe.assembly.deploying_item", + return CreateLang.translateDirect("recipe.assembly.deploying_item", new TranslatableComponent(matchingStacks[0].getDescriptionId()).getString()); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFakePlayer.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFakePlayer.java index 682b626d7..360ae9408 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFakePlayer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFakePlayer.java @@ -8,7 +8,7 @@ import org.apache.commons.lang3.tuple.Pair; import com.mojang.authlib.GameProfile; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CKinetics; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; @@ -64,7 +64,7 @@ public class DeployerFakePlayer extends FakePlayer { @Override public Component getDisplayName() { - return Lang.translateDirect("block.deployer.damage_source_name"); + return CreateLang.translateDirect("block.deployer.damage_source_name"); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFilterSlot.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFilterSlot.java index ae37feff1..bbbe1a292 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerFilterSlot.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.contraptions.components.deployer; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java index fd663810b..36988c0b0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java @@ -21,8 +21,8 @@ import com.simibubi.create.content.logistics.trains.ITrackBlock; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java index f34dec09b..cd0804c29 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java @@ -12,9 +12,9 @@ import com.mojang.math.Quaternion; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java index 116918e76..dd5269e18 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java @@ -25,16 +25,16 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.content.logistics.trains.entity.CarriageContraption; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.schematics.ItemRequirement; -import com.simibubi.create.content.schematics.SchematicWorld; import com.simibubi.create.content.schematics.filtering.SchematicInstances; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.NBTProcessors; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovingInteraction.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovingInteraction.java index 401d77731..ef86be988 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovingInteraction.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovingInteraction.java @@ -6,8 +6,8 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.MovingInteractionBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java index e5abdf1fb..31e662e12 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java @@ -23,11 +23,12 @@ import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -98,7 +99,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer ms.translate(0, isBlockItem ? 9 / 16f : 11 / 16f, 0); ms.scale(scale, scale, scale); transform = TransformType.GROUND; - ms.mulPose(Vector3f.YP.rotationDegrees(AnimationTickHolder.getRenderTime(te.getLevel()))); + ms.mulPose(Vector3f.YP.rotationDegrees(WorldTickHolder.getRenderTime(te.getLevel()))); } else { float scale = punching ? .75f : isBlockItem ? .75f - 1 / 64f : .5f; @@ -194,7 +195,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer axis = def.getRotationAxis(context.state); } - float time = AnimationTickHolder.getRenderTime(context.world) / 20; + float time = WorldTickHolder.getRenderTime(context.world) / 20; float angle = (time * speed) % 360; TransformStack.cast(m) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index 72ad80ce4..d3f6e0b4a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -22,10 +22,10 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java index 7a68fc804..c715cc43a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrent.java @@ -15,9 +15,9 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java index 06c3a4edd..3fc85edb6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java @@ -4,8 +4,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.content.logistics.block.chute.AbstractChuteBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -102,7 +102,7 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE getTileEntityClass() { return EncasedFanTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.ENCASED_FAN.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java index 73b918fa7..7c7b54f44 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanRenderer.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -42,7 +42,7 @@ public class EncasedFanRenderer extends KineticTileEntityRenderer { SuperByteBuffer fanInner = CachedBufferer.partialFacing(AllBlockPartials.ENCASED_FAN_INNER, te.getBlockState(), direction.getOpposite()); - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); float speed = te.getSpeed() * 5; if (speed > 0) speed = Mth.clamp(speed, 80, 64 * 20); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java index c5b912999..504b3376f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java @@ -7,7 +7,7 @@ import java.util.List; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java index d7b8dd9b7..33dfc93ca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java @@ -7,9 +7,9 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.content.contraptions.base.KineticTileInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; public class FlyWheelInstance extends KineticTileInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java index 274f8ba2f..4e46948ff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java @@ -7,8 +7,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java index dc9700099..4ebaa2f6f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java @@ -1,9 +1,9 @@ package com.simibubi.create.content.contraptions.components.flywheel; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntityType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneBlock.java index 1260b4697..7c504cf3f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneBlock.java @@ -6,8 +6,8 @@ import com.simibubi.create.content.contraptions.base.KineticBlock; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java index 65527e345..959492872 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/millstone/MillstoneTileEntity.java @@ -10,8 +10,8 @@ import com.simibubi.create.foundation.sound.SoundScapes; import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -137,7 +137,7 @@ public class MillstoneTileEntity extends KineticTileEntity { lastRecipe.rollResults() .forEach(stack -> ItemHandlerHelper.insertItemStacked(outputInv, stack, false)); award(AllAdvancements.MILLSTONE); - + sendData(); setChanged(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java index ec59b2037..1d5736840 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerRenderer.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -43,7 +43,7 @@ public class MechanicalMixerRenderer extends KineticTileEntityRenderer { float renderedHeadOffset = mixer.getRenderedHeadOffset(partialTicks); float speed = mixer.getRenderedHeadRotationSpeed(partialTicks); - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); float angle = ((time * speed * 6 / 10f) % 360) / 180 * (float) Math.PI; SuperByteBuffer poleRender = CachedBufferer.partial(AllBlockPartials.MECHANICAL_MIXER_POLE, blockState); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index c36e0da53..fbeb6381c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -18,10 +18,10 @@ import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ItemParticleOption; @@ -97,7 +97,7 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { super.addBehaviours(behaviours); registerAwardables(behaviours, AllAdvancements.MIXER); } - + @Override protected AABB createRenderBoundingBox() { return new AABB(worldPosition).expandTowards(0, -1.5, 0); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java index 8104dd20b..11bb3df77 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java @@ -8,8 +8,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.content.contraptions.relays.encased.EncasedCogInstance; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; public class MixerInstance extends EncasedCogInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorTileEntity.java index 1e8c397c1..0d64ed497 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/motor/CreativeMotorTileEntity.java @@ -9,7 +9,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour.StepContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -32,11 +32,11 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity { CenteredSideValueBoxTransform slot = new CenteredSideValueBoxTransform( (motor, side) -> motor.getValue(CreativeMotorBlock.FACING) == side.getOpposite()); - generatedSpeed = new ScrollValueBehaviour(Lang.translateDirect("generic.speed"), this, slot); + generatedSpeed = new ScrollValueBehaviour(CreateLang.translateDirect("generic.speed"), this, slot); generatedSpeed.between(-max, max); generatedSpeed.value = DEFAULT_SPEED; generatedSpeed.scrollableValue = DEFAULT_SPEED; - generatedSpeed.withUnit(i -> Lang.translateDirect("generic.unit.rpm")); + generatedSpeed.withUnit(i -> CreateLang.translateDirect("generic.unit.rpm")); generatedSpeed.withCallback(i -> this.updateGeneratedRotation()); generatedSpeed.withStepFunction(CreativeMotorTileEntity::step); behaviours.add(generatedSpeed); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index 0fb8b8b73..4ed5244a2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -21,8 +21,8 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java index 25d7271e3..8d1afbfb7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java @@ -8,8 +8,9 @@ import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; + +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; public class PressInstance extends ShaftInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingBehaviour.java index 5297f1bb1..d95a2222e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingBehaviour.java @@ -10,9 +10,9 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java index 4ecff8535..d063ac1ee 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/PressingRecipe.java @@ -12,7 +12,7 @@ import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemb import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.world.item.crafting.Ingredient; @@ -53,14 +53,14 @@ public class PressingRecipe extends ProcessingRecipe implements I @Override @OnlyIn(Dist.CLIENT) public Component getDescriptionForAssembly() { - return Lang.translateDirect("recipe.assembly.pressing"); + return CreateLang.translateDirect("recipe.assembly.pressing"); } - + @Override public void addRequiredMachines(Set list) { list.add(AllBlocks.MECHANICAL_PRESS.get()); } - + @Override public Supplier> getJEISubCategory() { return () -> SequencedAssemblySubCategory.AssemblyPressing::new; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/CuttingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/CuttingRecipe.java index 2c6c50c6d..85d9c23da 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/CuttingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/CuttingRecipe.java @@ -12,7 +12,7 @@ import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemb import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.world.item.crafting.Ingredient; @@ -53,14 +53,14 @@ public class CuttingRecipe extends ProcessingRecipe implements IA @Override @OnlyIn(Dist.CLIENT) public Component getDescriptionForAssembly() { - return Lang.translateDirect("recipe.assembly.cutting"); + return CreateLang.translateDirect("recipe.assembly.cutting"); } - + @Override public void addRequiredMachines(Set list) { list.add(AllBlocks.MECHANICAL_SAW.get()); } - + @Override public Supplier> getJEISubCategory() { return () -> SequencedAssemblySubCategory.AssemblyCutting::new; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawFilterSlot.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawFilterSlot.java index c9a407a64..bab4a3496 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawFilterSlot.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.saw; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java index 6da19d6a5..e2877c068 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawRenderer.java @@ -17,9 +17,9 @@ import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java index 4a02a5415..f84e4b1fa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/saw/SawTileEntity.java @@ -27,10 +27,10 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputB import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.utility.AbstractBlockBreakQueue; import com.simibubi.create.foundation.utility.TreeCutter; -import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.recipe.RecipeConditions; import com.simibubi.create.foundation.utility.recipe.RecipeFinder; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -346,8 +346,8 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity { ItemHelper.addToList(stack, list); } } - - for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlots(); slot++) + + for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlots(); slot++) inventory.setStackInSlot(slot + 1, list.get(slot)); award(AllAdvancements.SAW_PROCESSING); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/PoweredShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/PoweredShaftBlock.java index ef16af57d..006985a1f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/PoweredShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/PoweredShaftBlock.java @@ -8,10 +8,10 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.AbstractShaftBlock; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; @@ -57,10 +57,10 @@ public class PoweredShaftBlock extends AbstractShaftBlock { if (helper.matchesItem(heldItem)) return helper.getOffset(pPlayer, pLevel, pState, pPos, pHit) .placeInWorld(pLevel, (BlockItem) heldItem.getItem(), pPlayer, pHand, pHit); - + return InteractionResult.PASS; } - + @Override public RenderShape getRenderShape(BlockState pState) { return RenderShape.ENTITYBLOCK_ANIMATED; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineBlock.java index 67848b7a7..63023543e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineBlock.java @@ -13,11 +13,11 @@ import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -66,7 +66,7 @@ public class SteamEngineBlock extends FaceAttachedHorizontalDirectionalBlock super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer); } - + @Override public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) { return canAttach(pLevel, pPos, getConnectedDirection(pState).getOpposite()); @@ -193,7 +193,7 @@ public class SteamEngineBlock extends FaceAttachedHorizontalDirectionalBlock if (isShaftValid(state, shaft)) break; } - + BlockState newState = world.getBlockState(shaftPos); if (!newState.getMaterial().isReplaceable()) return PlacementOffset.fail(); @@ -204,7 +204,7 @@ public class SteamEngineBlock extends FaceAttachedHorizontalDirectionalBlock .setValue(PoweredShaftBlock.AXIS, axis)); } } - + public static Couple getSpeedRange() { return Couple.create(16, 64); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineRenderer.java index a9def6a7f..723736f52 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineRenderer.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -77,7 +77,7 @@ public class SteamEngineRenderer extends SafeTileEntityRenderer behaviours) { movementDirection = new ScrollOptionBehaviour<>(RotationDirection.class, - Lang.translateDirect("contraptions.windmill.rotation_direction"), this, new SteamEngineValueBox()); + CreateLang.translateDirect("contraptions.windmill.rotation_direction"), this, new SteamEngineValueBox()); movementDirection.requiresWrench(); movementDirection.onlyActiveWhen(() -> { PoweredShaftTileEntity shaft = getShaft(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineValueBox.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineValueBox.java index 2b294850a..98443a457 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineValueBox.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineValueBox.java @@ -3,10 +3,10 @@ package com.simibubi.create.content.contraptions.components.steam; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleBlock.java index 15b2225e4..8f52b2076 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleBlock.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlock; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -77,7 +77,7 @@ public class WhistleBlock extends Block implements ITE, IWren super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer); } - + @Override public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) { return FluidTankBlock.isTank(pLevel.getBlockState(pPos.relative(getAttachedDirection(pState)))); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleExtenderBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleExtenderBlock.java index 8fd4dd69a..cc4cb63ca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleExtenderBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleExtenderBlock.java @@ -4,8 +4,8 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.content.contraptions.components.steam.whistle.WhistleBlock.WhistleSize; import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleRenderer.java index 1aafc8d7b..a7f8218e6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleRenderer.java @@ -6,9 +6,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.components.steam.whistle.WhistleBlock.WhistleSize; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -35,7 +35,7 @@ public class WhistleRenderer extends SafeTileEntityRenderer { float offset = te.animation.getValue(partialTicks); if (te.animation.getChaseTarget() > 0 && te.animation.getValue() > 0.5f) { - float wiggleProgress = (AnimationTickHolder.getTicks(te.getLevel()) + partialTicks) / 8f; + float wiggleProgress = (WorldTickHolder.getTicks(te.getLevel()) + partialTicks) / 8f; offset -= Math.sin(wiggleProgress * (2 * Mth.PI) * (4 - size.ordinal())) / 16f; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleTileEntity.java index 0f2a0ecd2..d129c01a3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleTileEntity.java @@ -13,12 +13,12 @@ import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -107,11 +107,11 @@ public class WhistleTileEntity extends SmartTileEntity implements IHaveGoggleInf @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - String[] pitches = Lang.translateDirect("generic.notes") + String[] pitches = CreateLang.translateDirect("generic.notes") .getString() .split(";"); TextComponent textComponent = new TextComponent(spacing); - tooltip.add(textComponent.append(Lang.translateDirect("generic.pitch", pitches[pitch % pitches.length]))); + tooltip.add(textComponent.append(CreateLang.translateDirect("generic.pitch", pitches[pitch % pitches.length]))); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java index eff5279e6..1c778ff2f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java @@ -36,9 +36,9 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.collision.Matrix3d; import com.simibubi.create.foundation.mixin.accessor.ServerLevelAccessor; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -95,7 +95,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit /* * staleTicks are a band-aid to prevent a frame or two of missing blocks between * contraption discard and off-thread block placement on disassembly - * + * * FIXME this timeout should be longer but then also cancelled early based on a * chunk rebuild listener */ @@ -115,7 +115,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit return; contraption.onEntityCreated(this); } - + @Override public void move(MoverType pType, Vec3 pPos) { if (pType == MoverType.SHULKER) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AssemblyException.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AssemblyException.java index 630d563b1..3049d691d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AssemblyException.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AssemblyException.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -45,7 +45,7 @@ public class AssemblyException extends Exception { } public AssemblyException(String langKey, Object... objects) { - this(Lang.translateDirect("gui.assembly.exception." + langKey, objects)); + this(CreateLang.translateDirect("gui.assembly.exception." + langKey, objects)); } public static AssemblyException unmovableBlock(BlockPos pos, BlockState state) { @@ -72,7 +72,7 @@ public class AssemblyException extends Exception { public static AssemblyException noPistonPoles() { return new AssemblyException("noPistonPoles"); } - + public static AssemblyException notEnoughSails(int sails) { return new AssemblyException("not_enough_sails", sails, AllConfigs.SERVER.kinetics.minimumWindmillSails.get()); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java index 5a66c6d05..62ba36e36 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java @@ -67,15 +67,15 @@ import com.simibubi.create.content.logistics.trains.IBogeyBlock; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.IMultiTileContainer; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.BBHelper; -import com.simibubi.create.foundation.utility.BlockFace; import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.ICoordinate; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.NBTProcessors; -import com.simibubi.create.foundation.utility.UniqueLinkedList; +import net.createmod.catnip.utility.BBHelper; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.UniqueLinkedList; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java index 97c49484c..395f775ff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java @@ -25,9 +25,9 @@ import com.simibubi.create.foundation.collision.OrientedBB; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -89,10 +89,10 @@ public class ContraptionCollider { continue; entity.getSelfAndPassengers().forEach(e -> { - if (e instanceof ServerPlayer) + if (e instanceof ServerPlayer) ((ServerPlayer) e).connection.aboveGroundTickCount = 0; }); - + if (playerType == PlayerType.SERVER) continue; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java index 84f6b2a49..6e72902fb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java @@ -8,11 +8,11 @@ import java.util.List; import java.util.Map; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.WorldAttached; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectLists; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.world.entity.Entity; @@ -53,7 +53,7 @@ public class ContraptionHandler { contraptionEntity.staleTicks--; continue; } - + ContraptionCollider.collideEntities(contraptionEntity); } } @@ -80,8 +80,8 @@ public class ContraptionHandler { return; Vec3 prevPosition = VecHelper.readNBT(data.getList("ContraptionMountLocation", Tag.TAG_DOUBLE)); data.remove("ContraptionMountLocation"); - - if (entityLiving instanceof Player player && !prevPosition.closerThan(position, 5000)) + + if (entityLiving instanceof Player player && !prevPosition.closerThan(position, 5000)) AllAdvancements.LONG_TRAVEL.awardTo(player); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandlerClient.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandlerClient.java index f9d40b9cb..cb828b3db 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandlerClient.java @@ -11,12 +11,12 @@ import com.simibubi.create.content.contraptions.components.structureMovement.syn import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.logistics.trains.entity.TrainRelocator; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.RaycastHelper; import com.simibubi.create.foundation.utility.RaycastHelper.PredicateTraceResult; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.RemotePlayer; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionWorld.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionWorld.java index c5e429949..e9e945e69 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionWorld.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionWorld.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; - +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java index c00fa8cad..5e61ec4dc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java @@ -1,14 +1,14 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import static com.simibubi.create.foundation.utility.AngleHelper.angleLerp; +import static net.createmod.catnip.utility.math.AngleHelper.angleLerp; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllEntityTypes; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingContraption; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/DirectionalExtenderScrollOptionSlot.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/DirectionalExtenderScrollOptionSlot.java index 0a04654c9..17e1f91d3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/DirectionalExtenderScrollOptionSlot.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/DirectionalExtenderScrollOptionSlot.java @@ -5,8 +5,8 @@ import java.util.function.BiPredicate; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IControlContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IControlContraption.java index a48f9d883..0b1b7864d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IControlContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IControlContraption.java @@ -2,20 +2,20 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; public interface IControlContraption { public boolean isAttachedTo(AbstractContraptionEntity contraption); - + public void attach(ControlledContraptionEntity contraption); public void onStall(); public boolean isValid(); - + public BlockPos getBlockPosition(); static enum MovementMode implements INamedIconOptions { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IDisplayAssemblyExceptions.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IDisplayAssemblyExceptions.java index d9477f0c3..4c59fedb9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IDisplayAssemblyExceptions.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IDisplayAssemblyExceptions.java @@ -4,9 +4,9 @@ import java.util.Arrays; import java.util.List; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; -import com.simibubi.create.foundation.item.TooltipHelper; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -22,12 +22,12 @@ public interface IDisplayAssemblyExceptions { tooltip.add(TextComponent.EMPTY); tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.assembly.exception") + .append(CreateLang.translateDirect("gui.assembly.exception") .withStyle(ChatFormatting.GOLD))); String text = e.component.getString(); Arrays.stream(text.split("\n")) - .forEach(l -> TooltipHelper.cutStringTextComponent(l, ChatFormatting.GRAY, ChatFormatting.WHITE) + .forEach(l -> FontHelper.cutStringTextComponent(l, ChatFormatting.GRAY, ChatFormatting.WHITE) .forEach(c -> tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy() .append(c)))); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedFluidStorage.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedFluidStorage.java index a86acebfa..d372a7a28 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedFluidStorage.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedFluidStorage.java @@ -6,10 +6,10 @@ import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTil import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java index f9d8f2813..ba39c3687 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java @@ -5,8 +5,8 @@ import com.simibubi.create.content.contraptions.components.crafter.MechanicalCra import com.simibubi.create.content.contraptions.processing.ProcessingInventory; import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler; import com.simibubi.create.content.logistics.block.vault.ItemVaultTileEntity; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.ContainerHelper; @@ -182,7 +182,7 @@ public class MountedStorage { public boolean isValid() { return valid; } - + public boolean canUseForFuel() { return !noFuel; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java index 6d7566867..aa01f4627 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java @@ -11,8 +11,8 @@ import java.util.stream.Collectors; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption.ContraptionInvWrapper; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.foundation.fluid.CombinedTankWrapper; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java index 751044b5b..953fa42f6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java @@ -2,8 +2,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import java.util.function.UnaryOperator; -import com.simibubi.create.foundation.utility.VecHelper; - +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; @@ -79,4 +78,4 @@ public class MovementContext { return nbt; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java index 6738e4769..96742f86b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement; -import static com.simibubi.create.foundation.utility.AngleHelper.angleLerp; +import static net.createmod.catnip.utility.math.AngleHelper.angleLerp; import java.util.Optional; import java.util.UUID; @@ -17,11 +17,11 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java index 1fd7d9b89..e78c220db 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/StructureTransform.java @@ -9,10 +9,10 @@ import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltSlope; -import com.simibubi.create.foundation.utility.DirectionHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.DirectionHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -96,7 +96,7 @@ public class StructureTransform { vec = VecHelper.rotate(vec, angle, rotationAxis); return vec; } - + public Vec3 applyWithoutOffset(Vec3 localVec) { Vec3 vec = localVec; if (mirror != null) @@ -136,7 +136,7 @@ public class StructureTransform { if (rotationAxis == Axis.Y) { if (block instanceof BellBlock) { - if (state.getValue(BlockStateProperties.BELL_ATTACHMENT) == BellAttachType.DOUBLE_WALL) + if (state.getValue(BlockStateProperties.BELL_ATTACHMENT) == BellAttachType.DOUBLE_WALL) state = state.setValue(BlockStateProperties.BELL_ATTACHMENT, BellAttachType.SINGLE_WALL); return state.setValue(BellBlock.FACING, rotation.rotate(state.getValue(BellBlock.FACING))); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java index e4f303402..46f0405b0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingInstance.java @@ -9,8 +9,8 @@ import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.BackHalfShaftInstance; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.BlockStateProperties; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java index 659152cce..715ae5c0c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java index c1faf28d4..d753580b0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java @@ -15,10 +15,11 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.ServerSpeedProvider; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -54,7 +55,7 @@ public class ClockworkBearingTileEntity extends KineticTileEntity public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); operationMode = new ScrollOptionBehaviour<>(ClockHands.class, - Lang.translateDirect("contraptions.clockwork.clock_hands"), this, getMovementModeSlot()); + CreateLang.translateDirect("contraptions.clockwork.clock_hands"), this, getMovementModeSlot()); operationMode.requiresWrench(); behaviours.add(operationMode); registerAwardables(behaviours, AllAdvancements.CLOCKWORK_BEARING); @@ -241,7 +242,7 @@ public class ClockworkBearingTileEntity extends KineticTileEntity hourHand.setPos(anchor.getX(), anchor.getY(), anchor.getZ()); hourHand.setRotationAxis(direction.getAxis()); level.addFreshEntity(hourHand); - + if (contraption.getLeft() .containsBlockBreakers()) award(AllAdvancements.CONTRAPTION_ACTORS); @@ -254,12 +255,12 @@ public class ClockworkBearingTileEntity extends KineticTileEntity minuteHand.setPos(anchor.getX(), anchor.getY(), anchor.getZ()); minuteHand.setRotationAxis(direction.getAxis()); level.addFreshEntity(minuteHand); - + if (contraption.getRight() .containsBlockBreakers()) award(AllAdvancements.CONTRAPTION_ACTORS); } - + award(AllAdvancements.CLOCKWORK_BEARING); // Run diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkContraption.java index 5027c0bea..5d82af30a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkContraption.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Ass import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionType; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionLighter; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java index b02f94773..329296ae1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java @@ -12,10 +12,10 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.ServerSpeedProvider; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -51,7 +51,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); - movementMode = new ScrollOptionBehaviour<>(RotationMode.class, Lang.translateDirect("contraptions.movement_mode"), + movementMode = new ScrollOptionBehaviour<>(RotationMode.class, CreateLang.translateDirect("contraptions.movement_mode"), this, getMovementModeSlot()); movementMode.requiresWrench(); behaviours.add(movementMode); @@ -177,7 +177,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity level.addFreshEntity(movedContraption); AllSoundEvents.CONTRAPTION_ASSEMBLE.playOnServer(level, worldPosition); - + if (contraption.containsBlockBreakers()) award(AllAdvancements.CONTRAPTION_ACTORS); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java index ee71a2dd5..25d7b81de 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java @@ -12,11 +12,11 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingInstance.java index 88d9b7998..909f94895 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingInstance.java @@ -11,8 +11,8 @@ import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java index 340db86f8..4185af03d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/StabilizedBearingMovementBehaviour.java @@ -17,8 +17,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java index a28c89f02..da97e6dcf 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -46,12 +46,12 @@ public class WindmillBearingBlock extends BearingBlock implements ITE getTileEntityClass() { return WindmillBearingTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.WINDMILL_BEARING.get(); } - + public static Couple getSpeedRange() { return Couple.create(1, 16); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java index e9c5d7079..89af1936a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java @@ -8,8 +8,9 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; @@ -52,7 +53,7 @@ public class WindmillBearingTileEntity extends MechanicalBearingTileEntity { if (!running) assembleNextTick = true; } - + public void disassembleForMovement() { if (!running) return; @@ -101,7 +102,7 @@ public class WindmillBearingTileEntity extends MechanicalBearingTileEntity { super.addBehaviours(behaviours); behaviours.remove(movementMode); movementDirection = new ScrollOptionBehaviour<>(RotationDirection.class, - Lang.translateDirect("contraptions.windmill.rotation_direction"), this, getMovementModeSlot()); + CreateLang.translateDirect("contraptions.windmill.rotation_direction"), this, getMovementModeSlot()); movementDirection.requiresWrench(); movementDirection.withCallback($ -> onDirectionChanged()); behaviours.add(movementDirection); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java index 3c1ae6875..e6435644a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/AbstractChassisBlock.java @@ -5,8 +5,8 @@ import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisRangeDisplay.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisRangeDisplay.java index 26a1ca324..13cbbffe6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisRangeDisplay.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisRangeDisplay.java @@ -13,8 +13,8 @@ import com.mojang.datafixers.util.Pair; import com.simibubi.create.AllItems; import com.simibubi.create.AllKeys; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; +import net.createmod.catnip.CatnipClient; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; @@ -35,7 +35,7 @@ public class ChassisRangeDisplay { public Entry(ChassisTileEntity te) { this.te = te; timer = DISPLAY_TIME; - CreateClient.OUTLINER.showCluster(getOutlineKey(), createSelection(te)) + CatnipClient.OUTLINER.showCluster(getOutlineKey(), createSelection(te)) .colored(0xFFFFFF) .disableNormals() .lineWidth(1 / 16f) @@ -97,7 +97,7 @@ public class ChassisRangeDisplay { Entry entry = entries.get(pos); if (tickEntry(entry, hasWrench)) iterator.remove(); - CreateClient.OUTLINER.keep(entry.getOutlineKey()); + CatnipClient.OUTLINER.keep(entry.getOutlineKey()); } for (Iterator iterator = groupEntries.iterator(); iterator.hasNext();) { @@ -107,7 +107,7 @@ public class ChassisRangeDisplay { if (group == lastHoveredGroup) lastHoveredGroup = null; } - CreateClient.OUTLINER.keep(group.getOutlineKey()); + CatnipClient.OUTLINER.keep(group.getOutlineKey()); } if (!hasWrench) @@ -173,9 +173,9 @@ public class ChassisRangeDisplay { GroupEntry hoveredGroup = new GroupEntry(chassis); for (ChassisTileEntity included : hoveredGroup.includedTEs) - CreateClient.OUTLINER.remove(included.getBlockPos()); + CatnipClient.OUTLINER.remove(included.getBlockPos()); - groupEntries.forEach(entry -> CreateClient.OUTLINER.remove(entry.getOutlineKey())); + groupEntries.forEach(entry -> CatnipClient.OUTLINER.remove(entry.getOutlineKey())); groupEntries.clear(); entries.clear(); groupEntries.add(hoveredGroup); @@ -186,7 +186,7 @@ public class ChassisRangeDisplay { BlockPos pos = chassis.getBlockPos(); GroupEntry entry = getExistingGroupForPos(pos); if (entry != null) - CreateClient.OUTLINER.remove(entry.getOutlineKey()); + CatnipClient.OUTLINER.remove(entry.getOutlineKey()); groupEntries.clear(); entries.clear(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisTileEntity.java index 2a552461c..37d182305 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/ChassisTileEntity.java @@ -16,9 +16,9 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.BulkScrollValueBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -41,7 +41,7 @@ public class ChassisTileEntity extends SmartTileEntity { @Override public void addBehaviours(List behaviours) { int max = AllConfigs.SERVER.kinetics.maxChassisRange.get(); - range = new BulkScrollValueBehaviour(Lang.translateDirect("generic.range"), this, new CenteredSideValueBoxTransform(), + range = new BulkScrollValueBehaviour(CreateLang.translateDirect("generic.range"), this, new CenteredSideValueBoxTransform(), te -> ((ChassisTileEntity) te).collectChassisGroup()); range.requiresWrench(); range.between(1, max); @@ -56,7 +56,7 @@ public class ChassisTileEntity extends SmartTileEntity { public void initialize() { super.initialize(); if (getBlockState().getBlock() instanceof RadialChassisBlock) - range.setLabel(Lang.translateDirect("generic.radius")); + range.setLabel(CreateLang.translateDirect("generic.radius")); } public int getRange() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java index e94e2b5ce..ce923e75a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java @@ -5,9 +5,9 @@ import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerRenderer.java index cfb6a1d0e..d33f73eab 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerRenderer.java @@ -6,9 +6,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -29,7 +29,7 @@ public class StickerRenderer extends SafeTileEntityRenderer { BlockState state = te.getBlockState(); SuperByteBuffer head = CachedBufferer.partial(AllBlockPartials.STICKER_HEAD, state); - float offset = te.piston.getValue(AnimationTickHolder.getPartialTicks(te.getLevel())); + float offset = te.piston.getValue(WorldTickHolder.getPartialTicks(te.getLevel())); if (te.getLevel() != Minecraft.getInstance().level && !te.isVirtual()) offset = state.getValue(StickerBlock.EXTENDED) ? 1 : 0; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerTileEntity.java index 71724bf40..413ef22d4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerTileEntity.java @@ -9,9 +9,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.glu import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -85,7 +85,7 @@ public class StickerTileEntity extends SmartTileEntity { protected void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); } - + @Override protected void read(CompoundTag compound, boolean clientPacket) { super.read(compound, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageBlock.java index 71ae146fc..cff65aee1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageBlock.java @@ -6,8 +6,8 @@ import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -138,5 +138,5 @@ public class GantryCarriageBlock extends DirectionalAxisKineticBlock implements public BlockEntityType getTileEntityType() { return AllTileEntities.GANTRY_PINION.get(); } - + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java index f84270b53..626854d9c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageInstance.java @@ -7,9 +7,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java index 6e3e6fd44..b2e52eb9f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageRenderer.java @@ -7,10 +7,10 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -70,7 +70,7 @@ public class GantryCarriageRenderer extends KineticTileEntityRenderer { } public static float getAngleForTe(KineticTileEntity te, final BlockPos pos, Axis axis) { - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); float offset = getRotationOffsetForPosition(te, pos, axis); return (time * te.getSpeed() * 3f / 20 + offset) % 360; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java index f088e9236..ec27f26c0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java @@ -10,9 +10,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Str import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock; import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftTileEntity; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.ServerSpeedProvider; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -121,7 +121,7 @@ public class GantryContraptionEntity extends AbstractContraptionEntity { if (level.isClientSide) return; - + axisMotion = pinionMovementSpeed; setContraptionMotion(movementVec); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueEntity.java index 2c74e3b0f..c6086068c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueEntity.java @@ -15,9 +15,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.cha import com.simibubi.create.content.schematics.ISpecialEntityItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -294,7 +294,7 @@ public class SuperGlueEntity extends Entity implements IEntityAdditionalSpawnDat public PushReaction getPistonPushReaction() { return PushReaction.IGNORE; } - + @Override public PortalInfo findDimensionEntryPoint(ServerLevel pDestination) { portalEntrancePos = blockPosition(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueHandler.java index 66ed67c86..08c9b8a9c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueHandler.java @@ -6,10 +6,10 @@ import java.util.Set; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.BlockMovementChecks; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.worldWrappers.RayTraceWorld; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.worldWrappers.RayTraceWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueItem.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueItem.java index feacc0e42..931bd5ac0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueItem.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.glue; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ItemParticleOption; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHandler.java index ca772f793..7c828b90a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHandler.java @@ -7,12 +7,12 @@ import java.util.Set; import com.google.common.base.Objects; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.RaycastHelper; +import net.createmod.catnip.CatnipClient; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.LocalPlayer; @@ -63,7 +63,7 @@ public class SuperGlueSelectionHandler { if (clusterCooldown > 0) { if (clusterCooldown == 25) player.displayClientMessage(TextComponent.EMPTY, true); - CreateClient.OUTLINER.keep(clusterOutlineSlot); + CatnipClient.OUTLINER.keep(clusterOutlineSlot); clusterCooldown--; } @@ -97,7 +97,7 @@ public class SuperGlueSelectionHandler { for (SuperGlueEntity glueEntity : glueNearby) { boolean h = clusterCooldown == 0 && glueEntity == selected; AllSpecialTextures faceTex = h ? AllSpecialTextures.GLUE : null; - CreateClient.OUTLINER.showAABB(glueEntity, glueEntity.getBoundingBox()) + CatnipClient.OUTLINER.showAABB(glueEntity, glueEntity.getBoundingBox()) .colored(h ? HIGHLIGHT : PASSIVE) .withFaceTextures(faceTex, faceTex) .disableNormals() @@ -115,7 +115,7 @@ public class SuperGlueSelectionHandler { } if (firstPos != null && !firstPos.closerThan(hovered, 24)) { - Lang.translate("super_glue.too_far") + CreateLang.translate("super_glue.too_far") .color(FAIL) .sendStatus(player); return; @@ -147,18 +147,18 @@ public class SuperGlueSelectionHandler { key = "super_glue.click_to_discard"; } - Lang.translate(key) + CreateLang.translate(key) .color(color) .sendStatus(player); if (currentSelectionBox != null) - CreateClient.OUTLINER.showAABB(bbOutlineSlot, currentSelectionBox) + CatnipClient.OUTLINER.showAABB(bbOutlineSlot, currentSelectionBox) .colored(canReach && canAfford && !cancel ? HIGHLIGHT : FAIL) .withFaceTextures(AllSpecialTextures.GLUE, AllSpecialTextures.GLUE) .disableNormals() .lineWidth(1 / 16f); - CreateClient.OUTLINER.showCluster(clusterOutlineSlot, currentCluster) + CatnipClient.OUTLINER.showCluster(clusterOutlineSlot, currentCluster) .colored(0x4D9162) .disableNormals() .lineWidth(1 / 64f); @@ -233,7 +233,7 @@ public class SuperGlueSelectionHandler { firstPos = hoveredPos; if (face != null) SuperGlueItem.spawnParticles(level, firstPos, face, true); - Lang.translate("super_glue.first_pos") + CreateLang.translate("super_glue.first_pos") .sendStatus(player); AllSoundEvents.SLIME_ADDED.playAt(level, firstPos, 0.5F, 0.85F, false); level.playSound(player, firstPos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 0.75f, 1); @@ -244,7 +244,7 @@ public class SuperGlueSelectionHandler { LocalPlayer player = Minecraft.getInstance().player; currentCluster = null; firstPos = null; - Lang.translate("super_glue.abort") + CreateLang.translate("super_glue.abort") .sendStatus(player); clusterCooldown = 0; } @@ -256,14 +256,14 @@ public class SuperGlueSelectionHandler { player.level.playSound(player, hoveredPos, SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, 0.75f, 1); if (currentCluster != null) - CreateClient.OUTLINER.showCluster(clusterOutlineSlot, currentCluster) + CatnipClient.OUTLINER.showCluster(clusterOutlineSlot, currentCluster) .colored(0xB5F2C6) .withFaceTextures(AllSpecialTextures.GLUE, AllSpecialTextures.HIGHLIGHT_CHECKERED) .disableNormals() .lineWidth(1 / 24f); discard(); - Lang.translate("super_glue.success") + CreateLang.translate("super_glue.success") .sendStatus(player); clusterCooldown = 40; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHelper.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHelper.java index 4089269d5..fc85e12c6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHelper.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/glue/SuperGlueSelectionHelper.java @@ -6,8 +6,8 @@ import java.util.List; import java.util.Set; import com.simibubi.create.content.contraptions.components.structureMovement.BlockMovementChecks; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.NonNullList; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsHandler.java index 3017f10d3..f7cc8edcb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsHandler.java @@ -11,7 +11,7 @@ import com.mojang.blaze3d.platform.InputConstants; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.ControlsUtil; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; @@ -40,7 +40,7 @@ public class ControlsHandler { controlsPos = controllerLocalPos; Minecraft.getInstance().player.displayClientMessage( - Lang.translateDirect("contraption.controls.start_controlling", entity.getContraptionName()), true); + CreateLang.translateDirect("contraption.controls.start_controlling", entity.getContraptionName()), true); } public static void stopControlling() { @@ -57,7 +57,7 @@ public class ControlsHandler { controlsPos = null; currentlyPressed.clear(); - Minecraft.getInstance().player.displayClientMessage(Lang.translateDirect("contraption.controls.stop_controlling"), + Minecraft.getInstance().player.displayClientMessage(CreateLang.translateDirect("contraption.controls.stop_controlling"), true); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsMovementBehaviour.java index abff6a032..d0dbee40b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsMovementBehaviour.java @@ -8,10 +8,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.Direction; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; @@ -80,7 +80,7 @@ public class ControlsMovementBehaviour implements MovementBehaviour { angles.speed.chase(0, 0, Chaser.EXP); } - float pt = AnimationTickHolder.getPartialTicks(context.world); + float pt = WorldTickHolder.getPartialTicks(context.world); ControlsRenderer.render(context, renderWorld, matrices, buffer, angles.equipAnimation.getValue(pt), angles.speed.getValue(pt), angles.steering.getValue(pt)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsRenderer.java index 6bbfe9b0a..a18d92934 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsRenderer.java @@ -9,9 +9,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsServerHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsServerHandler.java index f3d78b7c2..55e19ffb1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsServerHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/ControlsServerHandler.java @@ -9,9 +9,9 @@ import java.util.Map.Entry; import java.util.UUID; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.LevelAccessor; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUD.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUD.java index 3a7b7d211..ebccd40b1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUD.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/interaction/controls/TrainHUD.java @@ -7,12 +7,12 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.ControlsUtil; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiComponent; @@ -132,12 +132,12 @@ public class TrainHUD { AllGuiTextures.TRAIN_HUD_FRAME.render(poseStack, -2, 1); AllGuiTextures.TRAIN_HUD_SPEED_BG.render(poseStack, 0, 0); - int w = (int) (AllGuiTextures.TRAIN_HUD_SPEED.width * displayedSpeed.getValue(partialTicks)); - int h = AllGuiTextures.TRAIN_HUD_SPEED.height; + int w = (int) (AllGuiTextures.TRAIN_HUD_SPEED.getWidth() * displayedSpeed.getValue(partialTicks)); + int h = AllGuiTextures.TRAIN_HUD_SPEED.getHeight(); AllGuiTextures.TRAIN_HUD_SPEED.bind(); - GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_HUD_SPEED.startX, - AllGuiTextures.TRAIN_HUD_SPEED.startY, w, h, 256, 256); + GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_HUD_SPEED.getStartX(), + AllGuiTextures.TRAIN_HUD_SPEED.getStartY(), w, h, 256, 256); int promptSize = (int) displayedPromptSize.getValue(partialTicks); if (promptSize > 1) { @@ -147,8 +147,8 @@ public class TrainHUD { AllGuiTextures.TRAIN_PROMPT_L.render(poseStack, -3, 0); AllGuiTextures.TRAIN_PROMPT_R.render(poseStack, promptSize, 0); - GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_PROMPT.startX + (128 - promptSize / 2f), - AllGuiTextures.TRAIN_PROMPT.startY, promptSize, AllGuiTextures.TRAIN_PROMPT.height, 256, 256); + GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_PROMPT.getStartX() + (128 - promptSize / 2f), + AllGuiTextures.TRAIN_PROMPT.getStartY(), promptSize, AllGuiTextures.TRAIN_PROMPT.getHeight(), 256, 256); poseStack.popPose(); @@ -166,13 +166,13 @@ public class TrainHUD { AllGuiTextures.TRAIN_HUD_DIRECTION.render(poseStack, 77, -20); - w = (int) (AllGuiTextures.TRAIN_HUD_THROTTLE.width * (1 - displayedThrottle.getValue(partialTicks))); + w = (int) (AllGuiTextures.TRAIN_HUD_THROTTLE.getWidth() * (1 - displayedThrottle.getValue(partialTicks))); AllGuiTextures.TRAIN_HUD_THROTTLE.bind(); - int invW = AllGuiTextures.TRAIN_HUD_THROTTLE.width - w; - GuiComponent.blit(poseStack, invW, 0, 0, AllGuiTextures.TRAIN_HUD_THROTTLE.startX + invW, - AllGuiTextures.TRAIN_HUD_THROTTLE.startY, w, h, 256, 256); + int invW = AllGuiTextures.TRAIN_HUD_THROTTLE.getWidth() - w; + GuiComponent.blit(poseStack, invW, 0, 0, AllGuiTextures.TRAIN_HUD_THROTTLE.getStartX() + invW, + AllGuiTextures.TRAIN_HUD_THROTTLE.getStartY(), w, h, 256, 256); AllGuiTextures.TRAIN_HUD_THROTTLE_POINTER.render(poseStack, - Math.max(1, AllGuiTextures.TRAIN_HUD_THROTTLE.width - w) - 3, -2); + Math.max(1, AllGuiTextures.TRAIN_HUD_THROTTLE.getWidth() - w) - 3, -2); // Direction diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssembleRailType.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssembleRailType.java index 0810b6a34..f67e1edfe 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssembleRailType.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssembleRailType.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.contraptions.components.structureMovement.mo import java.util.function.Supplier; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.entry.BlockEntry; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.util.StringRepresentable; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -13,13 +13,13 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public enum CartAssembleRailType implements StringRepresentable { - + REGULAR(Blocks.RAIL), POWERED_RAIL(Blocks.POWERED_RAIL), DETECTOR_RAIL(Blocks.DETECTOR_RAIL), ACTIVATOR_RAIL(Blocks.ACTIVATOR_RAIL), CONTROLLER_RAIL(AllBlocks.CONTROLLER_RAIL) - + ; private final Supplier railBlockSupplier; @@ -42,11 +42,11 @@ public enum CartAssembleRailType implements StringRepresentable { public Item getItem() { return railItemSupplier.get(); } - + public boolean matches(BlockState rail) { return rail.getBlock() == railBlockSupplier.get(); } - + @Override public String getSerializedName() { return Lang.asId(name()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlockItem.java index 7482573da..988509093 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlockItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlockItem.java @@ -5,7 +5,7 @@ import javax.annotation.Nonnull; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.tracks.ControllerRailBlock; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -49,7 +49,7 @@ public class CartAssemblerBlockItem extends BlockItem { if (player == null) return false; if (!(block instanceof BaseRailBlock)) { - Lang.translate("block.cart_assembler.invalid") + CreateLang.translate("block.cart_assembler.invalid") .sendStatus(player); return false; } @@ -86,4 +86,4 @@ public class CartAssemblerBlockItem extends BlockItem { AdvancementBehaviour.setPlacedBy(world, pos, player); return true; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerTileEntity.java index 0ae9a855a..8dad06ae6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerTileEntity.java @@ -19,11 +19,12 @@ import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxT import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -173,7 +174,7 @@ public class CartAssemblerTileEntity extends SmartTileEntity implements IDisplay nbt.putDouble("PushX", 0); cart.deserializeNBT(nbt); } - + if (contraption.containsBlockBreakers()) award(AllAdvancements.CONTRAPTION_ACTORS); } @@ -234,7 +235,7 @@ public class CartAssemblerTileEntity extends SmartTileEntity implements IDisplay @Override public void addBehaviours(List behaviours) { movementMode = new ScrollOptionBehaviour<>(CartMovementMode.class, - Lang.translateDirect("contraptions.cart_movement_mode"), this, getMovementModeSlot()); + CreateLang.translateDirect("contraptions.cart_movement_mode"), this, getMovementModeSlot()); movementMode.requiresWrench(); behaviours.add(movementMode); registerAwardables(behaviours, AllAdvancements.CONTRAPTION_ACTORS); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MinecartContraptionItem.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MinecartContraptionItem.java index 28c22731a..fe9e746cc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MinecartContraptionItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MinecartContraptionItem.java @@ -13,9 +13,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.ContraptionMovementSetting; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockSource; @@ -218,7 +218,7 @@ public class MinecartContraptionItem extends Item { OrientedContraptionEntity contraption = (OrientedContraptionEntity) passengers.get(0); if(ContraptionMovementSetting.isNoPickup(contraption.getContraption().getBlocks().values())) { - player.displayClientMessage(Lang.translateDirect("contraption.minecart_contraption_illegal_pickup") + player.displayClientMessage(CreateLang.translateDirect("contraption.minecart_contraption_illegal_pickup") .withStyle(ChatFormatting.RED), true); return; } @@ -236,7 +236,7 @@ public class MinecartContraptionItem extends Item { NbtIo.write(generatedStack.serializeNBT(), dataOutput); int estimatedPacketSize = dataOutput.toByteArray().length; if (estimatedPacketSize > 2_000_000) { - player.displayClientMessage(Lang.translateDirect("contraption.minecart_contraption_too_big") + player.displayClientMessage(CreateLang.translateDirect("contraption.minecart_contraption_too_big") .withStyle(ChatFormatting.RED), true); return; } @@ -250,7 +250,7 @@ public class MinecartContraptionItem extends Item { .getBlocks() .size() > 200) AllAdvancements.CART_PICKUP.awardTo(player); - + player.getInventory().placeItemBackInInventory(generatedStack); contraption.discard(); entity.discard(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MountedContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MountedContraption.java index 90f30b4ec..e98a9a2eb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MountedContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MountedContraption.java @@ -13,10 +13,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con import com.simibubi.create.content.contraptions.components.structureMovement.NonStationaryLighter; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity.CartMovementMode; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionLighter; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -159,7 +159,7 @@ public class MountedContraption extends Contraption { if (cart instanceof Container container) storage.attachExternal(new ContraptionInvWrapper(true, new InvWrapper(container))); } - + @Override @OnlyIn(Dist.CLIENT) public ContraptionLighter makeLighter() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/LinearActuatorTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/LinearActuatorTileEntity.java index 39e54a86e..fce8b9cce 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/LinearActuatorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/LinearActuatorTileEntity.java @@ -13,7 +13,7 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.ServerSpeedProvider; import net.minecraft.core.BlockPos; @@ -49,7 +49,7 @@ public abstract class LinearActuatorTileEntity extends KineticTileEntity @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); - movementMode = new ScrollOptionBehaviour<>(MovementMode.class, Lang.translateDirect("contraptions.movement_mode"), + movementMode = new ScrollOptionBehaviour<>(MovementMode.class, CreateLang.translateDirect("contraptions.movement_mode"), this, getMovementModeSlot()); movementMode.requiresWrench(); movementMode.withCallback(t -> waitingForSpeedChange = false); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonBlock.java index 856c5bbea..af367514c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/MechanicalPistonBlock.java @@ -9,8 +9,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -208,7 +208,7 @@ public class MechanicalPistonBlock extends DirectionalAxisKineticBlock implement public Class getTileEntityClass() { return MechanicalPistonTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.MECHANICAL_PISTON.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonContraption.java index 7413928c2..a35c278e4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonContraption.java @@ -21,8 +21,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Tra import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionLighter; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonExtensionPoleBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonExtensionPoleBlock.java index e0f63749a..f153df8fd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonExtensionPoleBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/piston/PistonExtensionPoleBlock.java @@ -11,10 +11,10 @@ import com.simibubi.create.AllShapes; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.util.PoleHelper; +import com.simibubi.create.foundation.utility.placement.PoleHelper; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -150,7 +150,7 @@ public class PistonExtensionPoleBlock extends WrenchableDirectionalBlock impleme @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, LevelAccessor world, BlockPos pos, BlockPos neighbourPos) { - if (state.getValue(BlockStateProperties.WATERLOGGED)) + if (state.getValue(BlockStateProperties.WATERLOGGED)) world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world)); return state; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java index dfa6dcd0c..1feb2bef1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/AbstractPulleyRenderer.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java index 62d7c0e65..607b7ee6d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/HosePulleyInstance.java @@ -6,7 +6,8 @@ import com.jozufozu.flywheel.core.Materials; import com.jozufozu.flywheel.core.materials.oriented.OrientedData; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.fluids.actors.HosePulleyTileEntity; -import com.simibubi.create.foundation.utility.AnimationTickHolder; + +import net.createmod.catnip.utility.AnimationTickHolder; public class HosePulleyInstance extends AbstractPulleyInstance { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java index 5eac17ee0..95e5efcc8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/pulley/RopePulleyInstance.java @@ -6,7 +6,8 @@ import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.core.materials.oriented.OrientedData; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.AnimationTickHolder; + +import net.createmod.catnip.utility.AnimationTickHolder; public class RopePulleyInstance extends AbstractPulleyInstance { public RopePulleyInstance(MaterialManager dispatcher, PulleyTileEntity tile) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java index a685a2553..41465a074 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.re import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Matrix4f; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java index 857a1ec4b..87b25cff7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderInfo.java @@ -5,8 +5,8 @@ import com.jozufozu.flywheel.event.BeginFrameEvent; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.util.Mth; public class ContraptionRenderInfo { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraption.java index 1149940a0..2f04034a5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/FlwContraption.java @@ -14,7 +14,6 @@ import com.jozufozu.flywheel.backend.instancing.batching.BatchingEngine; import com.jozufozu.flywheel.backend.instancing.instancing.InstancingEngine; import com.jozufozu.flywheel.backend.model.ArrayModelRenderer; import com.jozufozu.flywheel.core.model.Model; -import com.jozufozu.flywheel.core.model.WorldModel; import com.jozufozu.flywheel.core.model.WorldModelBuilder; import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; import com.jozufozu.flywheel.event.BeginFrameEvent; @@ -24,7 +23,7 @@ import com.mojang.math.Matrix4f; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.foundation.render.CreateContexts; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.renderer.RenderType; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java index ce34578b3..0cbfdcdf0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/SBBContraptionManager.java @@ -7,8 +7,8 @@ import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.render.SuperByteBufferCache; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.client.renderer.RenderType; import net.minecraft.world.level.LevelAccessor; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandler.java index d833d5a29..21a0a8d22 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandler.java @@ -12,9 +12,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Abs import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; @@ -45,7 +45,7 @@ public class CouplingHandler { event.setResult(Result.DENY); } } - + public static void forEachLoadedCoupling(Level world, Consumer> consumer) { if (world == null) return; @@ -83,13 +83,13 @@ public class CouplingHandler { int distanceTo = (int) entity1.position() .distanceTo(entity2.position()); boolean contraptionCoupling = player == null; - + if (distanceTo < 2) { if (contraptionCoupling) return false; // dont allow train contraptions with <2 distance distanceTo = 2; } - + if (distanceTo > AllConfigs.SERVER.kinetics.maxCartCouplingLength.get()) { status(player, tooFar); return false; @@ -177,7 +177,7 @@ public class CouplingHandler { public static void status(Player player, String key) { if (player == null) return; - player.displayClientMessage(Lang.translateDirect("minecart_coupling." + key), true); + player.displayClientMessage(CreateLang.translateDirect("minecart_coupling." + key), true); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandlerClient.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandlerClient.java index 954241a47..4fe1a74be 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingHandlerClient.java @@ -5,7 +5,7 @@ import java.util.Random; import com.mojang.math.Vector3f; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingPhysics.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingPhysics.java index d4c02314a..b158459c1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingPhysics.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingPhysics.java @@ -1,9 +1,9 @@ package com.simibubi.create.content.contraptions.components.structureMovement.train; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; @@ -64,10 +64,10 @@ public class CouplingPhysics { Vec3 link = otherCart.position() .subtract(pos); float correctionMagnitude = firstLoop ? -stress / 2f : -stress; - + if (!MinecartSim2020.canAddMotion(cart)) correctionMagnitude /= 2; - + correction = shape != null ? followLinkOnRail(link, pos, correctionMagnitude, MinecartSim2020.getRailVec(shape)).subtract(pos) : link.normalize() @@ -93,7 +93,7 @@ public class CouplingPhysics { public static void softCollisionStep(Level world, Couple carts, double couplingLength) { Couple maxSpeed = carts.map(AbstractMinecart::getMaxCartSpeedOnRail); Couple canAddmotion = carts.map(MinecartSim2020::canAddMotion); - + // Assuming Minecarts will never move faster than 1 block/tick Couple motions = carts.map(Entity::getDeltaMovement); motions.replaceWithParams(VecHelper::clamp, Couple.create(1f, 1f)); @@ -140,7 +140,7 @@ public class CouplingPhysics { .scale(correctionMagnitude); correction = VecHelper.clamp(correction, maxSpeed.get(current)); - + motions.set(current, motions.get(current) .add(correction)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java index 63eead5a9..ed79cd25f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/CouplingRenderer.java @@ -7,16 +7,16 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.KineticDebugger; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LevelRenderer; @@ -228,13 +228,13 @@ public class CouplingRenderer { int color = Color.mixColors(0xabf0e9, 0xee8572, (float) Mth .clamp(Math.abs(first.getCouplingLength(true) - connectedCenter.distanceTo(mainCenter)) * 8, 0, 1)); - CreateClient.OUTLINER.showLine(mainCart.getId() + "", mainCenter, connectedCenter) + CatnipClient.OUTLINER.showLine(mainCart.getId() + "", mainCenter, connectedCenter) .colored(color) .lineWidth(1 / 8f); Vec3 point = mainCart.position() .add(0, yOffset, 0); - CreateClient.OUTLINER.showLine(mainCart.getId() + "_dot", point, point.add(0, 1 / 128f, 0)) + CatnipClient.OUTLINER.showLine(mainCart.getId() + "_dot", point, point.add(0, 1 / 128f, 0)) .colored(0xffffff) .lineWidth(1 / 4f); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartCouplingItem.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartCouplingItem.java index 0a5542e8b..2eb72d2b5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartCouplingItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartCouplingItem.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.tr import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartSim2020.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartSim2020.java index ebdfd34c5..a885c3d36 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartSim2020.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/MinecartSim2020.java @@ -6,8 +6,8 @@ import com.google.common.collect.Maps; import com.mojang.datafixers.util.Pair; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/CapabilityMinecartController.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/CapabilityMinecartController.java index 5433e0e85..c3528dc5c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/CapabilityMinecartController.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/CapabilityMinecartController.java @@ -14,11 +14,11 @@ import javax.annotation.Nullable; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingHandler; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.WorldAttached; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectLists; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartController.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartController.java index df2f10db0..21bcad115 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartController.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/train/capability/MinecartController.java @@ -15,11 +15,11 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Abs import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingHandler; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; @@ -176,11 +176,11 @@ public class MinecartController implements INBTSerializable { List passengers = cart().getPassengers(); if (!passengers.isEmpty()) { Entity entity = passengers.get(0); - if (entity instanceof AbstractContraptionEntity) + if (entity instanceof AbstractContraptionEntity) ((AbstractContraptionEntity) entity).disassemble(); } } - + couplings.set(main, Optional.empty()); needsEntryRefresh |= main; sendData(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/tracks/ControllerRailBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/tracks/ControllerRailBlock.java index 2c5914c76..726f0e90c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/tracks/ControllerRailBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/tracks/ControllerRailBlock.java @@ -5,9 +5,9 @@ import javax.annotation.ParametersAreNonnullByDefault; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableBlock.java index f4908cb45..b4bc2db98 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableBlock.java @@ -5,8 +5,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.KineticBlock; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -102,12 +102,12 @@ public class TurntableBlock extends KineticBlock implements ITE getTileEntityClass() { return TurntableTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.TURNTABLE.get(); } - + @Override public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableHandler.java index 2a8a7f1f9..510384b50 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/turntable/TurntableHandler.java @@ -1,9 +1,9 @@ package com.simibubi.create.content.contraptions.components.turntable; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; @@ -26,16 +26,16 @@ public class TurntableHandler { BlockEntity tileEntity = mc.level.getBlockEntity(pos); if (!(tileEntity instanceof TurntableTileEntity)) return; - + TurntableTileEntity turnTable = (TurntableTileEntity) tileEntity; float speed = turnTable.getSpeed() * 3/10; if (speed == 0) return; - + Vec3 origin = VecHelper.getCenterOf(pos); Vec3 offset = mc.player.position().subtract(origin); - + if (offset.length() > 1/4f) speed *= Mth.clamp((1/2f - offset.length()) * 2, 0, 1); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelBlock.java index 058dab2d9..ce9a4baee 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelBlock.java @@ -9,10 +9,10 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelTileEntity.java index 07aa48bec..78dc29804 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/waterwheel/WaterWheelTileEntity.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -35,7 +35,7 @@ public class WaterWheelTileEntity extends GeneratingKineticTileEntity { super.addBehaviours(behaviours); registerAwardables(behaviours, AllAdvancements.LAVA_WHEEL, AllAdvancements.WATER_WHEEL); } - + @Override protected void read(CompoundTag compound, boolean clientPacket) { super.read(compound, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FlowSource.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FlowSource.java index 8a2455275..38fd94887 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FlowSource.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FlowSource.java @@ -4,8 +4,8 @@ import java.lang.ref.WeakReference; import java.util.function.Predicate; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; +import net.createmod.catnip.utility.BlockFace; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.common.util.LazyOptional; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidFX.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidFX.java index 0332d638d..6dfd73e25 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidFX.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidFX.java @@ -5,8 +5,8 @@ import java.util.Random; import com.simibubi.create.AllParticleTypes; import com.simibubi.create.content.contraptions.fluids.particle.FluidParticleData; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidNetwork.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidNetwork.java index ee559d9ae..779c623c3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidNetwork.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidNetwork.java @@ -16,10 +16,10 @@ import com.simibubi.create.content.contraptions.components.actors.PortableFluidI import com.simibubi.create.content.contraptions.fluids.PipeConnection.Flow; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.Level; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java index 5451e001b..a48f3d460 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidPropagator.java @@ -17,9 +17,9 @@ import com.simibubi.create.foundation.advancement.CreateAdvancement; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java index 92e200e36..b7c3eed42 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java @@ -13,9 +13,9 @@ import com.simibubi.create.content.contraptions.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java index bc4059b73..c281ceede 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java @@ -14,7 +14,7 @@ import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.utility.BlockFace; +import net.createmod.catnip.utility.BlockFace; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java index c4ab64276..8b84ec12f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeAttachmentModel.java @@ -11,8 +11,8 @@ import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.content.contraptions.relays.elementary.BracketedTileEntityBehaviour; import com.simibubi.create.foundation.block.connected.BakedModelWrapperWithData; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; @@ -32,11 +32,11 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData { public static PipeAttachmentModel opaque(BakedModel template) { return new PipeAttachmentModel(template, false); } - + public static PipeAttachmentModel transparent(BakedModel template) { return new PipeAttachmentModel(template, true); } - + public PipeAttachmentModel(BakedModel template, boolean hideAttachmentConnector) { super(template); this.hideAttachmentConnector = hideAttachmentConnector; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index b51f5b698..241a2e74e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -5,12 +5,12 @@ import java.util.Random; import java.util.function.Predicate; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -203,7 +203,7 @@ public class PipeConnection { float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 512f, 0, 1) * 31 / 32f; flow.progress.setValue(Math.min(flow.progress.getValue() + flowSpeed, 1)); - if (flow.progress.getValue() >= 1) + if (flow.progress.getValue() >= 1) flow.complete = true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java index 6d85b1fc0..fcf24d94d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java @@ -8,9 +8,9 @@ import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java index 23e41b42a..16a3cf01c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java @@ -7,8 +7,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java index 94c155f01..319827a5c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java @@ -17,13 +17,13 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingRecipe.java index 380945f5b..9b2d73913 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingRecipe.java @@ -11,7 +11,7 @@ import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -58,7 +58,7 @@ public class FillingRecipe extends ProcessingRecipe implements IA @Override public void addAssemblyIngredients(List list) {} - + @Override public void addAssemblyFluidIngredients(List list) { list.add(getRequiredFluid()); @@ -71,7 +71,7 @@ public class FillingRecipe extends ProcessingRecipe implements IA .getMatchingFluidStacks(); if (matchingFluidStacks.size() == 0) return new TextComponent("Invalid"); - return Lang.translateDirect("recipe.assembly.spout_filling_fluid", + return CreateLang.translateDirect("recipe.assembly.spout_filling_fluid", matchingFluidStacks.get(0).getDisplayName().getString()); } @@ -79,7 +79,7 @@ public class FillingRecipe extends ProcessingRecipe implements IA public void addRequiredMachines(Set list) { list.add(AllBlocks.SPOUT.get()); } - + @Override public Supplier> getJEISubCategory() { return () -> SequencedAssemblySubCategory.AssemblySpouting::new; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java index 916eb54af..6badb7b44 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java @@ -12,11 +12,11 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.BBHelper; -import com.simibubi.create.foundation.utility.Iterate; import it.unimi.dsi.fastutil.PriorityQueue; import it.unimi.dsi.fastutil.objects.ObjectHeapPriorityQueue; +import net.createmod.catnip.utility.BBHelper; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java index afdb10379..8a0c1157b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidFillingBehaviour.java @@ -11,11 +11,11 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.BBHelper; -import com.simibubi.create.foundation.utility.Iterate; import it.unimi.dsi.fastutil.PriorityQueue; import it.unimi.dsi.fastutil.objects.ObjectHeapPriorityQueue; +import net.createmod.catnip.utility.BBHelper; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java index a3f428274..d6709d48b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidManipulationBehaviour.java @@ -13,9 +13,9 @@ import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyBlock.java index 37c231375..f5a947704 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyBlock.java @@ -5,8 +5,8 @@ import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -87,7 +87,7 @@ public class HosePulleyBlock extends HorizontalKineticBlock implements ITE getTileEntityClass() { return HosePulleyTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.HOSE_PULLEY.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyTileEntity.java index e466e72fd..4f3e0ec8a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/HosePulleyTileEntity.java @@ -8,8 +8,8 @@ import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.ServerSpeedProvider; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainRenderer.java index 0b6c9e33f..fd5d4ec89 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainRenderer.java @@ -12,8 +12,8 @@ import com.simibubi.create.foundation.fluid.FluidRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment; import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainTileEntity.java index 2206c65dd..aa6240412 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/ItemDrainTileEntity.java @@ -13,10 +13,10 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java index db8ce23ba..9fcd3af4d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java @@ -21,9 +21,9 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBe import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleOptions; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/BasinFluidParticle.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/BasinFluidParticle.java index decde4418..847b7be1a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/BasinFluidParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/BasinFluidParticle.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Quaternion; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.processing.BasinTileEntity; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java index f0e3a670c..99b14533d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/particle/FluidStackParticle.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.contraptions.fluids.particle; import com.simibubi.create.AllParticleTypes; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleRenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java index 1bcb6bbb1..f91b869e1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/AxisPipeBlock.java @@ -12,7 +12,7 @@ import com.simibubi.create.content.contraptions.relays.elementary.BracketedTileE import com.simibubi.create.content.contraptions.wrench.IWrenchableWithBracket; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -76,7 +76,7 @@ public class AxisPipeBlock extends RotatedPillarBlock implements IWrenchableWith super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer); } - + @Override public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean isMoving) { if (world.isClientSide) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java index 2d663dd90..bf9312210 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/BracketBlock.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.relays.elementary.AbstractSimpleShaftBlock; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.util.StringRepresentable; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java index e5ed9a422..45e47834b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/EncasedPipeBlock.java @@ -19,8 +19,8 @@ import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.protocol.game.DebugPackets; @@ -61,7 +61,7 @@ public class EncasedPipeBlock extends Block implements IWrenchable, ISpecialBloc builder.add(NORTH, EAST, SOUTH, WEST, UP, DOWN); super.createBlockStateDefinition(builder); } - + @Override public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java index b9d8d4be0..6ec342431 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java @@ -16,8 +16,8 @@ import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -95,7 +95,7 @@ public class FluidPipeBlock extends PipeBlock .filter(pc -> pc != null && pc.hasFlow()) .findAny() .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); - + FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, AllBlocks.GLASS_FLUID_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) @@ -118,7 +118,7 @@ public class FluidPipeBlock extends PipeBlock return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - + FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, EncasedPipeBlock.transferSixWayProperties(state, AllBlocks.ENCASED_FLUID_PIPE.getDefaultState())); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveBlock.java index a9bed692f..2937c0e07 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveBlock.java @@ -9,8 +9,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -125,7 +125,7 @@ public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxi public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { FluidPropagator.propagateChangedPipe(world, pos, state); } - + @Override public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java index d8d688604..068167f93 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveInstance.java @@ -8,8 +8,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java index 2b6404cfe..e13b565c4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveRenderer.java @@ -7,7 +7,7 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveTileEntity.java index 93d76fb9f..d0c1768c1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidValveTileEntity.java @@ -7,8 +7,8 @@ import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.fluids.pipes.StraightPipeTileEntity.StraightPipeFluidTransportBehaviour; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeBlock.java index 768b128d1..560fa3899 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeBlock.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.fluids.FluidPropagator; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VoxelShaper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -142,7 +142,7 @@ public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock : face == AttachFace.CEILING ? AllShapes.SMART_FLUID_PIPE_CEILING : AllShapes.SMART_FLUID_PIPE_WALL; return shape.get(state.getValue(FACING)); } - + @Override public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeTileEntity.java index b00346367..b5619ea61 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/SmartFluidPipeTileEntity.java @@ -10,8 +10,8 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/TransparentStraightPipeRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/TransparentStraightPipeRenderer.java index 76ed62dc4..307e7cee7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/TransparentStraightPipeRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/TransparentStraightPipeRenderer.java @@ -6,9 +6,9 @@ import com.simibubi.create.content.contraptions.fluids.PipeConnection.Flow; import com.simibubi.create.foundation.fluid.FluidRenderer; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java index 45059a5d9..ad7bdfb86 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluid.java @@ -5,8 +5,8 @@ import java.util.List; import com.simibubi.create.AllFluids; import com.simibubi.create.content.contraptions.fluids.VirtualFluid; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.network.chat.Component; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java index febb50e29..c898f806c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java @@ -8,9 +8,9 @@ import com.google.common.collect.Lists; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.BottleType; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java index f204dc201..1fe4c5f9d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java @@ -17,12 +17,13 @@ import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.BlockStressValues; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; import joptsimple.internal.Strings; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -96,7 +97,7 @@ public class BoilerData { for (float i : supplyOverTime) waterSupply = Math.max(i, waterSupply); } - + if (controller instanceof CreativeFluidTankTileEntity) waterSupply = waterSupplyPerLevel * 20; @@ -154,7 +155,7 @@ public class BoilerData { tooltip.add(indent.plainCopy() .append( - Lang.translateDirect("boiler.status", getHeatLevelTextComponent().withStyle(ChatFormatting.GREEN)))); + CreateLang.translateDirect("boiler.status", getHeatLevelTextComponent().withStyle(ChatFormatting.GREEN)))); tooltip.add(indent2.plainCopy() .append(getSizeComponent(true, false))); tooltip.add(indent2.plainCopy() @@ -171,16 +172,16 @@ public class BoilerData { tooltip.add(Lang.empty()); - Lang.translate("tooltip.capacityProvided") + CreateLang.translate("tooltip.capacityProvided") .style(ChatFormatting.GRAY) .forGoggles(tooltip); - Lang.number(totalSU) + CreateLang.number(totalSU) .translate("generic.unit.stress") .style(ChatFormatting.AQUA) .space() - .add((attachedEngines == 1 ? Lang.translate("boiler.via_one_engine") - : Lang.translate("boiler.via_engines", attachedEngines)).style(ChatFormatting.DARK_GRAY)) + .add((attachedEngines == 1 ? CreateLang.translate("boiler.via_one_engine") + : CreateLang.translate("boiler.via_engines", attachedEngines)).style(ChatFormatting.DARK_GRAY)) .forGoggles(tooltip, 1); return true; @@ -198,10 +199,10 @@ public class BoilerData { public MutableComponent getHeatLevelTextComponent() { int boilerLevel = Math.min(activeHeat, Math.min(maxHeatForWater, maxHeatForSize)); - return isPassive() ? Lang.translateDirect("boiler.passive") - : (boilerLevel == 0 ? Lang.translateDirect("boiler.idle") - : boilerLevel == 18 ? Lang.translateDirect("boiler.max_lvl") - : Lang.translateDirect("boiler.lvl", String.valueOf(boilerLevel))); + return isPassive() ? CreateLang.translateDirect("boiler.passive") + : (boilerLevel == 0 ? CreateLang.translateDirect("boiler.idle") + : boilerLevel == 18 ? CreateLang.translateDirect("boiler.max_lvl") + : CreateLang.translateDirect("boiler.lvl", String.valueOf(boilerLevel))); } public MutableComponent getSizeComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) { @@ -226,9 +227,9 @@ public class BoilerData { ChatFormatting style1 = styles.length >= 1 ? styles[0] : ChatFormatting.GRAY; ChatFormatting style2 = styles.length >= 2 ? styles[1] : ChatFormatting.DARK_GRAY; - return Lang.translateDirect("boiler." + label) + return CreateLang.translateDirect("boiler." + label) .withStyle(style1) - .append(Lang.translateDirect("boiler." + label + "_dots") + .append(CreateLang.translateDirect("boiler." + label + "_dots") .withStyle(style2)) .append(base); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankBlock.java index 901263a43..c76f4fb39 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankBlock.java @@ -11,8 +11,8 @@ import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.fluid.FluidHelper.FluidExchange; import com.simibubi.create.foundation.tileEntity.ComparatorUtil; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.BlockParticleOption; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java index e239afc29..fe4285bfa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankModel.java @@ -10,8 +10,8 @@ import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.api.connectivity.ConnectivityHandler; import com.simibubi.create.foundation.block.connected.CTModel; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankRenderer.java index e4f2ae7e7..8d671b431 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankRenderer.java @@ -7,9 +7,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.fluid.FluidRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java index ea089ddc2..10035b0be 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java @@ -16,9 +16,9 @@ import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.tileEntity.IMultiTileContainer; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java index 36ca4481e..668aaf5a1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java @@ -6,10 +6,10 @@ import java.util.List; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; @@ -27,27 +27,27 @@ public class GoggleConfigScreen extends AbstractSimiScreen { Component componentSpacing = new TextComponent(" "); tooltip = new ArrayList<>(); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay1"))); + .append(CreateLang.translateDirect("gui.config.overlay1"))); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay2") + .append(CreateLang.translateDirect("gui.config.overlay2") .withStyle(ChatFormatting.GRAY))); tooltip.add(TextComponent.EMPTY); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay3"))); + .append(CreateLang.translateDirect("gui.config.overlay3"))); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay4"))); + .append(CreateLang.translateDirect("gui.config.overlay4"))); tooltip.add(TextComponent.EMPTY); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay5") + .append(CreateLang.translateDirect("gui.config.overlay5") .withStyle(ChatFormatting.GRAY))); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay6") + .append(CreateLang.translateDirect("gui.config.overlay6") .withStyle(ChatFormatting.GRAY))); tooltip.add(TextComponent.EMPTY); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay7"))); + .append(CreateLang.translateDirect("gui.config.overlay7"))); tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.config.overlay8"))); + .append(CreateLang.translateDirect("gui.config.overlay8"))); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java index 367f6ca2c..138d1858f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java @@ -7,7 +7,6 @@ import java.util.Map; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.components.structureMovement.IDisplayAssemblyExceptions; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock; @@ -15,15 +14,16 @@ import com.simibubi.create.content.logistics.trains.entity.TrainRelocator; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CClient; import com.simibubi.create.foundation.gui.RemovedGuiUtils; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.outliner.Outline; -import com.simibubi.create.foundation.utility.outliner.Outliner.OutlineEntry; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.outliner.Outline; +import net.createmod.catnip.utility.outliner.Outliner.OutlineEntry; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.catnip.utility.theme.Theme; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -45,7 +45,7 @@ public class GoggleOverlayRenderer { public static final IIngameOverlay OVERLAY = GoggleOverlayRenderer::renderOverlay; - private static final Map outlines = CreateClient.OUTLINER.getOutlines(); + private static final Map outlines = CatnipClient.OUTLINER.getOutlines(); public static int hoverTicks = 0; public static BlockPos lastHovered = null; @@ -146,7 +146,7 @@ public class GoggleOverlayRenderer { tooltip.add(TextComponent.EMPTY); tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy() - .append(Lang.translateDirect("gui.goggles.pole_length")) + .append(CreateLang.translateDirect("gui.goggles.pole_length")) .append(new TextComponent(" " + poles))); } @@ -178,13 +178,13 @@ public class GoggleOverlayRenderer { float fade = Mth.clamp((hoverTicks + partialTicks) / 12f, 0, 1); Boolean useCustom = cfg.overlayCustomColor.get(); Color colorBackground = useCustom ? new Color(cfg.overlayBackgroundColor.get()) - : Theme.c(Theme.Key.VANILLA_TOOLTIP_BACKGROUND) + : Theme.Key.VANILLA_TOOLTIP_BACKGROUND.c() .scaleAlpha(.75f); Color colorBorderTop = useCustom ? new Color(cfg.overlayBorderColorTop.get()) - : Theme.c(Theme.Key.VANILLA_TOOLTIP_BORDER, true) + : Theme.Key.VANILLA_TOOLTIP_BORDER.c(true) .copy(); Color colorBorderBot = useCustom ? new Color(cfg.overlayBorderColorBot.get()) - : Theme.c(Theme.Key.VANILLA_TOOLTIP_BORDER, false) + : Theme.Key.VANILLA_TOOLTIP_BORDER.c(false) .copy(); if (fade < 1) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java index 0eeaf904f..371729597 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.contraptions.goggles; import java.util.List; import java.util.Optional; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.LangBuilder; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -50,8 +50,8 @@ public interface IHaveGoggleInformation { if (tank.getTanks() == 0) return false; - LangBuilder mb = Lang.translate("generic.unit.millibuckets"); - Lang.translate("gui.goggles.fluid_container") + LangBuilder mb = CreateLang.translate("generic.unit.millibuckets"); + CreateLang.translate("gui.goggles.fluid_container") .forGoggles(tooltip); boolean isEmpty = true; @@ -60,16 +60,16 @@ public interface IHaveGoggleInformation { if (fluidStack.isEmpty()) continue; - Lang.fluidName(fluidStack) + CreateLang.fluidName(fluidStack) .style(ChatFormatting.GRAY) .forGoggles(tooltip, 1); - Lang.builder() - .add(Lang.number(fluidStack.getAmount()) + CreateLang.builder() + .add(CreateLang.number(fluidStack.getAmount()) .add(mb) .style(ChatFormatting.GOLD)) .text(ChatFormatting.GRAY, " / ") - .add(Lang.number(tank.getTankCapacity(i)) + .add(CreateLang.number(tank.getTankCapacity(i)) .add(mb) .style(ChatFormatting.DARK_GRAY)) .forGoggles(tooltip, 1); @@ -86,8 +86,8 @@ public interface IHaveGoggleInformation { if (!isEmpty) return true; - Lang.translate("gui.goggles.fluid_container.capacity") - .add(Lang.number(tank.getTankCapacity(0)) + CreateLang.translate("gui.goggles.fluid_container.capacity") + .add(CreateLang.number(tank.getTankCapacity(0)) .add(mb) .style(ChatFormatting.GOLD)) .style(ChatFormatting.GRAY) diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java index 4240b612c..104da4718 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyItem.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.itemAssembly; -import com.simibubi.create.foundation.utility.Color; - +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.CreativeModeTab; diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java index 1dca38cfe..cb0e727b2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java @@ -12,9 +12,9 @@ import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; @@ -213,7 +213,7 @@ public class SequencedAssemblyRecipe implements Recipe { public boolean isSpecial() { return true; } - + @Override public RecipeType getType() { return AllRecipeTypes.SEQUENCED_ASSEMBLY.getType(); @@ -240,9 +240,9 @@ public class SequencedAssemblyRecipe implements Recipe { int step = sequencedAssemblyRecipe.getStep(stack); int total = length * sequencedAssemblyRecipe.loops; toolTip.add(new TextComponent("")); - toolTip.add(Lang.translateDirect("recipe.sequenced_assembly") + toolTip.add(CreateLang.translateDirect("recipe.sequenced_assembly") .withStyle(ChatFormatting.GRAY)); - toolTip.add(Lang.translateDirect("recipe.assembly.progress", step, total) + toolTip.add(CreateLang.translateDirect("recipe.assembly.progress", step, total) .withStyle(ChatFormatting.DARK_GRAY)); int remaining = total - step; @@ -253,7 +253,7 @@ public class SequencedAssemblyRecipe implements Recipe { Component textComponent = sequencedRecipe.getAsAssemblyRecipe() .getDescriptionForAssembly(); if (i == 0) - toolTip.add(Lang.translateDirect("recipe.assembly.next", textComponent) + toolTip.add(CreateLang.translateDirect("recipe.assembly.next", textComponent) .withStyle(ChatFormatting.AQUA)); else toolTip.add(new TextComponent("-> ").append(textComponent) diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java index e529c4126..efa52db3d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/AirFlowParticle.java @@ -5,9 +5,9 @@ import javax.annotation.Nonnull; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.fan.IAirCurrentSource; import com.simibubi.create.content.contraptions.processing.InWorldProcessing; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java index 1959fd31e..8d9d24abd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/AirParticle.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.contraptions.particle; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleProvider; @@ -48,7 +48,7 @@ public class AirParticle extends SimpleAnimatedParticle { lifetime = Math.min((int) (length / data.speed), 60); selectSprite(7); setAlpha(.25f); - + if (length == 0) { remove(); setAlpha(0); @@ -72,11 +72,11 @@ public class AirParticle extends SimpleAnimatedParticle { float progress = (float) Math.pow(((float) age) / lifetime, drag); float angle = (progress * 2 * 360 + twirlAngleOffset) % 360; Vec3 twirl = VecHelper.rotate(new Vec3(0, twirlRadius, 0), angle, twirlAxis); - + float x = (float) (Mth.lerp(progress, originX, targetX) + twirl.x); float y = (float) (Mth.lerp(progress, originY, targetY) + twirl.y); float z = (float) (Mth.lerp(progress, originZ, targetZ) + twirl.z); - + xd = x - this.x; yd = y - this.y; zd = z - this.z; diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/CubeParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/CubeParticle.java index 59f36cb06..004aea530 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/CubeParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/CubeParticle.java @@ -7,8 +7,8 @@ import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexFormat; -import com.simibubi.create.AllSpecialTextures; +import net.createmod.catnip.enums.CatnipSpecialTextures; import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.Particle; @@ -44,7 +44,7 @@ public class CubeParticle extends Particle { private static final ParticleRenderType RENDER_TYPE = new ParticleRenderType() { @Override public void begin(BufferBuilder builder, TextureManager textureManager) { - AllSpecialTextures.BLANK.bind(); + CatnipSpecialTextures.BLANK.bind(); // transparent, additive blending RenderSystem.depthMask(false); @@ -87,13 +87,13 @@ public class CubeParticle extends Particle { public void averageAge(int age) { this.lifetime = (int) (age + (random.nextDouble() * 2D - 1D) * 8); } - + public void setHot(boolean hot) { this.hot = hot; } - + private boolean billowing = false; - + @Override public void tick() { if (this.hot && this.age > 0) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java b/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java index 593940293..a2a94bce1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java @@ -2,10 +2,10 @@ package com.simibubi.create.content.contraptions.particle; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.content.contraptions.goggles.GogglesItem; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -67,7 +67,7 @@ public class RotationIndicatorParticle extends SimpleAnimatedParticle { } public void move(double x, double y, double z) { - float time = AnimationTickHolder.getTicks(level); + float time = WorldTickHolder.getTicks(level); float angle = (float) ((time * speed) % 360) - (speed / 2 * age * (((float) age) / lifetime)); if (speed < 0 && axis.isVertical()) angle += 180; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRecipe.java index 7e213f2e8..383491918 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRecipe.java @@ -16,7 +16,7 @@ import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java index 92c192333..c8e5d5346 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java @@ -8,10 +8,12 @@ import com.simibubi.create.foundation.fluid.FluidRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment; import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; + +import net.createmod.ponder.utility.WorldTickHolder; + +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; @@ -73,7 +75,7 @@ public class BasinRenderer extends SmartTileEntityRenderer { if (fluidLevel > 0) { ms.translate(0, (Mth.sin( - AnimationTickHolder.getRenderTime(basin.getLevel()) / 12f + anglePartition * itemCount) + 1.5f) + WorldTickHolder.getRenderTime(basin.getLevel()) / 12f + anglePartition * itemCount) + 1.5f) * 1 / 32f, 0); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java index f2549660a..0c4843ff2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java @@ -28,14 +28,14 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBe import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour.TankSegment; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/EmptyingByBasin.java b/src/main/java/com/simibubi/create/content/contraptions/processing/EmptyingByBasin.java index 1a29725af..95f75c962 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/EmptyingByBasin.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/EmptyingByBasin.java @@ -5,8 +5,8 @@ import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.PotionItem; import net.minecraft.world.item.crafting.Recipe; @@ -26,7 +26,7 @@ public class EmptyingByBasin { public static boolean canItemBeEmptied(Level world, ItemStack stack) { if (stack.getItem() instanceof PotionItem) return true; - + wrapper.setItem(0, stack); if (AllRecipeTypes.EMPTYING.find(wrapper, world) .isPresent()) @@ -51,7 +51,7 @@ public class EmptyingByBasin { if (stack.getItem() instanceof PotionItem) return PotionFluidHandler.emptyPotion(stack, simulate); - + wrapper.setItem(0, stack); Optional> recipe = AllRecipeTypes.EMPTYING.find(wrapper, world); if (recipe.isPresent()) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java b/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java index d2f3f5f39..b5cb0c4d0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/HeatCondition.java @@ -3,7 +3,8 @@ package com.simibubi.create.content.contraptions.processing; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; -import com.simibubi.create.foundation.utility.Lang; + +import net.createmod.catnip.utility.lang.Lang; public enum HeatCondition { diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java b/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java index ce57a9fc1..e30964542 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/InWorldProcessing.java @@ -19,9 +19,9 @@ import com.simibubi.create.content.contraptions.relays.belt.transport.Transporte import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java index 0d280b60d..1d482b5b4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingOutput.java @@ -8,8 +8,8 @@ import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.TagParser; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java index 653b37d03..e63a52344 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java @@ -10,10 +10,10 @@ import com.simibubi.create.foundation.data.SimpleDatagenIngredient; import com.simibubi.create.foundation.data.recipe.Mods; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.utility.Pair; import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo; import com.tterrag.registrate.util.DataIngredient; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.NonNullList; import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.resources.ResourceLocation; @@ -118,12 +118,12 @@ public class ProcessingRecipeBuilder> { params.ingredients.add(ingredient); return this; } - + public ProcessingRecipeBuilder require(Mods mod, String id) { params.ingredients.add(new SimpleDatagenIngredient(mod, id)); return this; } - + public ProcessingRecipeBuilder require(ResourceLocation ingredient) { params.ingredients.add(DataIngredient.ingredient(null, ingredient)); return this; @@ -169,11 +169,11 @@ public class ProcessingRecipeBuilder> { public ProcessingRecipeBuilder output(float chance, Mods mod, String id, int amount) { return output(new ProcessingOutput(Pair.of(mod.asResource(id), amount), chance)); } - + public ProcessingRecipeBuilder output(float chance, ResourceLocation registryName, int amount) { return output(new ProcessingOutput(Pair.of(registryName, amount), chance)); } - + public ProcessingRecipeBuilder output(ProcessingOutput output) { params.results.add(output); return this; @@ -188,7 +188,7 @@ public class ProcessingRecipeBuilder> { params.fluidResults.add(fluidStack); return this; } - + public ProcessingRecipeBuilder toolNotConsumed() { params.keepHeldItem = true; return this; @@ -223,7 +223,7 @@ public class ProcessingRecipeBuilder> { protected NonNullList fluidResults; protected int processingDuration; protected HeatCondition requiredHeat; - + public boolean keepHeldItem; protected ProcessingRecipeParams(ResourceLocation id) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java index 073850685..859b48d6e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlock.java @@ -12,8 +12,8 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java index e90367af9..f632c8c52 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerBlockItem.java @@ -7,8 +7,8 @@ import java.util.Map; import javax.annotation.ParametersAreNonnullByDefault; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerInteractionBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerInteractionBehaviour.java index 2756310ad..d6874906b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerInteractionBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerInteractionBehaviour.java @@ -12,9 +12,9 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.schedule.Schedule; import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleItem; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Iterate; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -59,18 +59,18 @@ public class BlazeBurnerInteractionBehaviour extends MovingInteractionBehaviour if (train.runtime.paused && !train.runtime.completed) { train.runtime.paused = false; AllSoundEvents.CONFIRM.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.continued"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.continued"), true); return true; } if (!itemInHand.isEmpty()) { AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.remove_with_empty_hand"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.remove_with_empty_hand"), true); return true; } AllSoundEvents.playItemPickup(player); - player.displayClientMessage(Lang.translateDirect( + player.displayClientMessage(CreateLang.translateDirect( train.runtime.isAutoSchedule ? "schedule.auto_removed_from_train" : "schedule.removed_from_train"), true); player.setItemInHand(activeHand, train.runtime.returnSchedule()); @@ -86,21 +86,21 @@ public class BlazeBurnerInteractionBehaviour extends MovingInteractionBehaviour if (schedule.entries.isEmpty()) { AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.no_stops"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.no_stops"), true); return true; } train.runtime.setSchedule(schedule, false); AllAdvancements.CONDUCTOR.awardTo(player); AllSoundEvents.CONFIRM.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.applied_to_train") + player.displayClientMessage(CreateLang.translateDirect("schedule.applied_to_train") .withStyle(ChatFormatting.GREEN), true); itemInHand.shrink(1); player.setItemInHand(activeHand, itemInHand.isEmpty() ? ItemStack.EMPTY : itemInHand); return true; } - player.displayClientMessage(Lang.translateDirect("schedule.non_controlling_seat"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.non_controlling_seat"), true); AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java index 28de9978c..2f62d8a09 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java @@ -10,12 +10,12 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.logistics.trains.entity.CarriageContraption; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java index 8e9c113c8..445fdddea 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java @@ -15,10 +15,10 @@ import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -55,7 +55,7 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer 0.125f; HeatLevel heatLevel = BlazeBurnerBlock.getHeatLevelOf(blockState); - float time = AnimationTickHolder.getRenderTime(level); + float time = WorldTickHolder.getRenderTime(level); float renderTick = time + (hashCode % 13) * 16f; float offsetMult = heatLevel.isAtLeast(HeatLevel.FADING) ? 64 : 16; float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java index 6a17d9f85..29fde8d2d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java @@ -10,11 +10,11 @@ import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/LitBlazeBurnerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/LitBlazeBurnerBlock.java index 72efff729..9370ce4e9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/LitBlazeBurnerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/LitBlazeBurnerBlock.java @@ -6,8 +6,8 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftBlock.java index c4160824a..99447d351 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftBlock.java @@ -10,13 +10,13 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; -import com.simibubi.create.foundation.utility.placement.util.PoleHelper; +import com.simibubi.create.foundation.utility.placement.PoleHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftTileEntity.java index 62a0f4200..2b46a3d27 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/GantryShaftTileEntity.java @@ -4,8 +4,8 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryCarriageBlock; import com.simibubi.create.content.contraptions.components.structureMovement.gantry.GantryCarriageTileEntity; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerBlock.java index 681b117d9..5af86e511 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerBlock.java @@ -11,10 +11,10 @@ import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; @@ -111,7 +111,7 @@ public class SpeedControllerBlock extends HorizontalAxisKineticBlock implements public Class getTileEntityClass() { return SpeedControllerTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.ROTATION_SPEED_CONTROLLER.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerTileEntity.java index 9238ed52e..2e6a609ec 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerTileEntity.java @@ -12,9 +12,9 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -45,15 +45,15 @@ public class SpeedControllerTileEntity extends KineticTileEntity { Integer max = AllConfigs.SERVER.kinetics.maxRotationSpeed.get(); targetSpeed = - new ScrollValueBehaviour(Lang.translateDirect("generic.speed"), this, new ControllerValueBoxTransform()); + new ScrollValueBehaviour(CreateLang.translateDirect("generic.speed"), this, new ControllerValueBoxTransform()); targetSpeed.between(-max, max); targetSpeed.value = DEFAULT_SPEED; targetSpeed.moveText(new Vec3(9, 0, 10)); - targetSpeed.withUnit(i -> Lang.translateDirect("generic.unit.rpm")); + targetSpeed.withUnit(i -> CreateLang.translateDirect("generic.unit.rpm")); targetSpeed.withCallback(i -> this.updateTargetRotation()); targetSpeed.withStepFunction(CreativeMotorTileEntity::step); behaviours.add(targetSpeed); - + registerAwardables(behaviours, AllAdvancements.SPEED_CONTROLLER); } @@ -63,7 +63,7 @@ public class SpeedControllerTileEntity extends KineticTileEntity { RotationPropagator.handleRemoved(level, worldPosition, this); removeSource(); attachKinetics(); - + if (isCogwheelPresent() && getSpeed() != 0) award(AllAdvancements.SPEED_CONTROLLER); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/Instruction.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/Instruction.java index 9335285d1..e7600dc5d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/Instruction.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/Instruction.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.relays.advanced.sequencer; import java.util.Vector; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/InstructionSpeedModifiers.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/InstructionSpeedModifiers.java index 23bdf2048..0767102bd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/InstructionSpeedModifiers.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/InstructionSpeedModifiers.java @@ -3,8 +3,9 @@ package com.simibubi.create.content.contraptions.relays.advanced.sequencer; import java.util.ArrayList; import java.util.List; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -32,7 +33,7 @@ public enum InstructionSpeedModifiers { static List getOptions() { List options = new ArrayList<>(); for (InstructionSpeedModifiers entry : values()) - options.add(Lang.translateDirect(entry.translationKey)); + options.add(CreateLang.translateDirect(entry.translationKey)); return options; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftBlock.java index c7c15ce82..bcee0828b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftBlock.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.KineticBlock; import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.gui.ScreenOpener; +import net.createmod.catnip.gui.ScreenOpener; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -149,7 +149,7 @@ public class SequencedGearshiftBlock extends HorizontalAxisKineticBlock implemen public Class getTileEntityClass() { return SequencedGearshiftTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.SEQUENCED_GEARSHIFT.get(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java index 087dfa4f9..592995fb1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java @@ -4,16 +4,16 @@ import java.util.Vector; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.core.BlockPos; import net.minecraft.nbt.ListTag; import net.minecraft.network.chat.Component; @@ -33,7 +33,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { private Vector> inputs; public SequencedGearshiftScreen(SequencedGearshiftTileEntity te) { - super(Lang.translateDirect("gui.sequenced_gearshift.title")); + super(CreateLang.translateDirect("gui.sequenced_gearshift.title")); this.instructions = te.instructions; this.pos = te.getBlockPos(); compareTag = Instruction.serializeAll(instructions); @@ -41,7 +41,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); setWindowOffset(-20, 0); super.init(); @@ -56,7 +56,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { initInputsOfRow(row, x, y); confirmButton = - new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { onClose(); }); @@ -78,13 +78,13 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { new SelectionScrollInput(x, y + rowHeight * row, 50, 18).forOptions(SequencerInstructions.getOptions()) .calling(state -> instructionUpdated(index, state)) .setState(instruction.instruction.ordinal()) - .titled(Lang.translateDirect("gui.sequenced_gearshift.instruction")); + .titled(CreateLang.translateDirect("gui.sequenced_gearshift.instruction")); ScrollInput value = new ScrollInput(x + 58, y + rowHeight * row, 28, 18).calling(state -> instruction.value = state); ScrollInput direction = new SelectionScrollInput(x + 88, y + rowHeight * row, 28, 18) .forOptions(InstructionSpeedModifiers.getOptions()) .calling(state -> instruction.speedModifier = InstructionSpeedModifiers.values()[state]) - .titled(Lang.translateDirect("gui.sequenced_gearshift.speed")); + .titled(CreateLang.translateDirect("gui.sequenced_gearshift.speed")); rowInputs.add(type); rowInputs.add(value); @@ -105,7 +105,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { value.active = value.visible = hasValue; if (hasValue) value.withRange(1, def.maxValue + 1) - .titled(Lang.translateDirect(def.parameterKey)) + .titled(CreateLang.translateDirect(def.parameterKey)) .withShiftStep(def.shiftStep) .setState(instruction.value) .onChanged(); @@ -136,7 +136,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { for (int row = 0; row < instructions.capacity(); row++) { AllGuiTextures toDraw = AllGuiTextures.SEQUENCER_EMPTY; - int yOffset = toDraw.height * row; + int yOffset = toDraw.getHeight() * row; if (row >= instructions.size()) { toDraw.render(ms, x, y + 14 + yOffset, this); continue; @@ -146,7 +146,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { SequencerInstructions def = instruction.instruction; def.background.render(ms, x, y + 14 + yOffset, this); - label(ms, 36, yOffset - 3, Lang.translateDirect(def.translationKey)); + label(ms, 36, yOffset - 3, CreateLang.translateDirect(def.translationKey)); if (def.hasValueParameter) { String text = def.formatValue(instruction.value); int stringWidth = font.width(text); @@ -156,10 +156,10 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { label(ms, 127, yOffset - 3, instruction.speedModifier.label); } - drawCenteredString(ms, font, title, x + (background.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (background.getWidth() - 8) / 2, y + 3, 0xFFFFFF); GuiGameElement.of(renderedItem) - .at(x + background.width + 6, y + background.height - 56, -200) + .at(x + background.getWidth() + 6, y + background.getHeight() - 56, -200) .scale(5) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencerInstructions.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencerInstructions.java index 060a0df7e..b30479f20 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencerInstructions.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencerInstructions.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import java.util.List; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.network.chat.Component; public enum SequencerInstructions { @@ -48,13 +49,13 @@ public enum SequencerInstructions { static List getOptions() { List options = new ArrayList<>(); for (SequencerInstructions entry : values()) - options.add(Lang.translateDirect(entry.descriptiveTranslationKey)); + options.add(CreateLang.translateDirect(entry.descriptiveTranslationKey)); return options; } String formatValue(int value) { if (this == TURN_ANGLE) - return value + Lang.translateDirect("generic.unit.degrees").getString(); + return value + CreateLang.translateDirect("generic.unit.degrees").getString(); if (this == TURN_DISTANCE) return value + "m"; if (this == DELAY) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 501ed451f..cb1b9b692 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -26,7 +26,7 @@ import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.render.DestroyProgressRenderingHandler; import com.simibubi.create.foundation.block.render.ReducedDestroyEffects; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LevelRenderer; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltHelper.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltHelper.java index 4f0086b07..a636499f9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltHelper.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltHelper.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.contraptions.relays.belt; import com.simibubi.create.AllTags.AllItemTags; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltInstance.java index 0a518ce6c..20547fd70 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltInstance.java @@ -17,8 +17,8 @@ import com.simibubi.create.content.contraptions.base.flwdata.BeltData; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.LightLayer; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltPart.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltPart.java index 852c07c97..b3c4d366d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltPart.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltPart.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.relays.belt; -import com.simibubi.create.foundation.utility.Lang; - +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.util.StringRepresentable; public enum BeltPart implements StringRepresentable { @@ -11,4 +10,4 @@ public enum BeltPart implements StringRepresentable { public String getSerializedName() { return Lang.asId(name()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java index b27ed9d8b..2dd0d3585 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java @@ -19,11 +19,11 @@ import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.ShadowRenderHelper; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -75,7 +75,7 @@ public class BeltRenderer extends SafeTileEntityRenderer { PoseStack localTransforms = new PoseStack(); TransformStack msr = TransformStack.cast(localTransforms); VertexConsumer vb = buffer.getBuffer(RenderType.solid()); - float renderTick = AnimationTickHolder.getRenderTime(te.getLevel()); + float renderTick = WorldTickHolder.getRenderTime(te.getLevel()); msr.centre() .rotateY(AngleHelper.horizontalAngle(facing) + (upward ? 180 : 0) + (sideways ? 270 : 0)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltShapes.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltShapes.java index 2cd553b0d..382d440ca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltShapes.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltShapes.java @@ -6,8 +6,8 @@ import java.util.HashMap; import java.util.Map; import com.simibubi.create.AllShapes; -import com.simibubi.create.foundation.utility.VoxelShaper; +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java index 681e16ec7..4feee13ec 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlicer.java @@ -7,15 +7,15 @@ import java.util.Optional; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorItem; import com.simibubi.create.content.contraptions.relays.belt.transport.BeltInventory; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -169,14 +169,14 @@ public class BeltSlicer { if (itemstack.isEmpty()) continue; int count = itemstack.getCount(); - + if (AllItems.BELT_CONNECTOR.isIn(itemstack)) { if (!world.isClientSide) itemstack.shrink(1); beltFound = true; continue; } - + if (AllBlocks.SHAFT.isIn(itemstack)) { int taken = Math.min(count, requiredShafts - amountRetrieved); if (!world.isClientSide) @@ -470,13 +470,13 @@ public class BeltSlicer { return; if (feedback.langKey != null) - mc.player.displayClientMessage(Lang.translateDirect(feedback.langKey) + mc.player.displayClientMessage(CreateLang.translateDirect(feedback.langKey) .withStyle(feedback.formatting), true); else mc.player.displayClientMessage(new TextComponent(""), true); if (feedback.bb != null) - CreateClient.OUTLINER.chaseAABB("BeltSlicer", feedback.bb) + CatnipClient.OUTLINER.chaseAABB("BeltSlicer", feedback.bb) .lineWidth(1 / 16f) .colored(feedback.color); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlope.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlope.java index 0001fb187..71445af0b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlope.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltSlope.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.relays.belt; -import com.simibubi.create.foundation.utility.Lang; - +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.util.StringRepresentable; public enum BeltSlope implements StringRepresentable { @@ -15,4 +14,4 @@ public enum BeltSlope implements StringRepresentable { public boolean isDiagonal() { return this == UPWARD || this == DOWNWARD; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index 6405eaf32..49ff2db67 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -31,8 +31,8 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.client.renderer.LightTexture; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index ac3f3edb4..d2c2d006b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -15,7 +15,7 @@ import com.simibubi.create.content.contraptions.relays.elementary.AbstractSimple import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltTunnelInteractionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltTunnelInteractionHandler.java index ab1c46c40..f94385a42 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltTunnelInteractionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltTunnelInteractionHandler.java @@ -13,8 +13,8 @@ import com.simibubi.create.content.logistics.block.display.DisplayLinkBlock; import com.simibubi.create.content.logistics.block.display.source.AccumulatedItemCountDisplaySource; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticTileRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticTileRenderer.java index 8e0e86660..cc1dde575 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticTileRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticTileRenderer.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider.Context; @@ -48,7 +48,7 @@ public class BracketedKineticTileRenderer extends KineticTileEntityRenderer { ms, buffer.getBuffer(RenderType.solid()), light); float offset = getShaftAngleOffset(axis, pos); - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); float angle = ((time * te.getSpeed() * 3f / 10 + offset) % 360) / 180 * (float) Math.PI; SuperByteBuffer shaft = diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java index 8c5ae2e3b..733362df5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedTileEntityBehaviour.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.world.level.Level; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java index cd366bc9c..1d6ad96e4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedCogwheelBlock; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogwheelBlockItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogwheelBlockItem.java index caabc7551..92a96642a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogwheelBlockItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogwheelBlockItem.java @@ -10,11 +10,11 @@ import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java index 4adaf8acb..60e78e8d5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/ShaftBlock.java @@ -9,11 +9,11 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.components.steam.PoweredShaftBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; import com.simibubi.create.content.curiosities.girder.GirderEncasedShaftBlock; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; -import com.simibubi.create.foundation.utility.placement.util.PoleHelper; +import com.simibubi.create.foundation.utility.placement.PoleHelper; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedBeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedBeltBlock.java index a4c585b9a..0712f27fc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedBeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedBeltBlock.java @@ -5,9 +5,9 @@ import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java index bebb607d5..832047bd0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogCTBehaviour.java @@ -7,8 +7,8 @@ import org.jetbrains.annotations.Nullable; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java index 62d6f45bc..3baebd86a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogInstance.java @@ -14,8 +14,8 @@ import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java index 74445ff1f..40e5ae91b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/EncasedCogRenderer.java @@ -8,8 +8,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java index d6ded2749..9b1576a0b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftInstance.java @@ -10,8 +10,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.KineticTileInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java index ba38d1481..d048c8828 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/SplitShaftRenderer.java @@ -8,9 +8,9 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -33,7 +33,7 @@ public class SplitShaftRenderer extends KineticTileEntityRenderer { Block block = te.getBlockState().getBlock(); final Axis boxAxis = ((IRotate) block).getRotationAxis(te.getBlockState()); final BlockPos pos = te.getBlockPos(); - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); for (Direction direction : Iterate.directions) { Axis axis = direction.getAxis(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java index 64f421053..a9e08deaf 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeBlock.java @@ -7,12 +7,12 @@ import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java index b27f44012..702ae2e72 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java @@ -11,10 +11,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java index a5872e8b3..38e3798b5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeRenderer.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock.Type; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeShaper.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeShaper.java index b21d42d34..5a47c0346 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeShaper.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeShaper.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.relays.gauge; import java.util.Arrays; import com.simibubi.create.AllShapes; -import com.simibubi.create.foundation.utility.VoxelShaper; +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.Direction; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.VoxelShape; @@ -29,4 +29,4 @@ public class GaugeShaper extends VoxelShaper { public VoxelShape get(Direction direction, boolean axisAlong) { return (axisAlong ? axisTrue : axisFalse).get(direction); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeTileEntity.java index bdd77ba69..dc7e10a1e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeTileEntity.java @@ -4,7 +4,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -48,7 +48,7 @@ public class GaugeTileEntity extends KineticTileEntity implements IHaveGoggleInf @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - tooltip.add(componentSpacing.plainCopy().append(Lang.translateDirect("gui.gauge.info_header"))); + tooltip.add(componentSpacing.plainCopy().append(CreateLang.translateDirect("gui.gauge.info_header"))); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java index fb48c7209..18aed589f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java @@ -4,9 +4,9 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; @@ -55,7 +55,7 @@ public class SpeedGaugeTileEntity extends GaugeTileEntity { @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { super.addToGoggleTooltip(tooltip, isPlayerSneaking); - Lang.translate("gui.speedometer.title") + CreateLang.translate("gui.speedometer.title") .style(ChatFormatting.GRAY) .forGoggles(tooltip); SpeedLevel.getFormattedSpeedText(speed, isOverStressed()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java index 665226cb1..85301cf74 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/StressGaugeTileEntity.java @@ -7,10 +7,10 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.item.ItemDescription; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.LangBuilder; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -81,33 +81,33 @@ public class StressGaugeTileEntity extends GaugeTileEntity { double capacity = getNetworkCapacity(); double stressFraction = getNetworkStress() / (capacity == 0 ? 1 : capacity); - Lang.translate("gui.stressometer.title") + CreateLang.translate("gui.stressometer.title") .style(ChatFormatting.GRAY) .forGoggles(tooltip); if (getTheoreticalSpeed() == 0) - Lang.text(ItemDescription.makeProgressBar(3, 0)) + CreateLang.text(ItemDescription.makeProgressBar(3, 0)) .translate("gui.stressometer.no_rotation") .style(ChatFormatting.DARK_GRAY) .forGoggles(tooltip); else { StressImpact.getFormattedStressText(stressFraction) .forGoggles(tooltip); - Lang.translate("gui.stressometer.capacity") + CreateLang.translate("gui.stressometer.capacity") .style(ChatFormatting.GRAY) .forGoggles(tooltip); double remainingCapacity = capacity - getNetworkStress(); - LangBuilder su = Lang.translate("generic.unit.stress"); - LangBuilder stressTip = Lang.number(remainingCapacity) + LangBuilder su = CreateLang.translate("generic.unit.stress"); + LangBuilder stressTip = CreateLang.number(remainingCapacity) .add(su) .style(StressImpact.of(stressFraction) .getRelativeColor()); if (remainingCapacity != capacity) stressTip.text(ChatFormatting.GRAY, " / ") - .add(Lang.number(capacity) + .add(CreateLang.number(capacity) .add(su) .style(ChatFormatting.DARK_GRAY)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java index ae7173155..1fa8af632 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxInstance.java @@ -10,8 +10,8 @@ import com.jozufozu.flywheel.api.MaterialManager; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.LightLayer; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java index 04671bcad..d5babb04e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/GearboxRenderer.java @@ -7,9 +7,9 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; @@ -31,7 +31,7 @@ public class GearboxRenderer extends KineticTileEntityRenderer { final Axis boxAxis = te.getBlockState().getValue(BlockStateProperties.AXIS); final BlockPos pos = te.getBlockPos(); - float time = AnimationTickHolder.getRenderTime(te.getLevel()); + float time = WorldTickHolder.getRenderTime(te.getLevel()); for (Direction direction : Iterate.directions) { final Axis axis = direction.getAxis(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/VerticalGearboxItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/VerticalGearboxItem.java index 5b5a4761a..1a89bf55e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/VerticalGearboxItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gearbox/VerticalGearboxItem.java @@ -4,8 +4,8 @@ import java.util.Map; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.base.IRotate; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -29,7 +29,7 @@ public class VerticalGearboxItem extends BlockItem { @Override public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList p_150895_2_) { } - + @Override public String getDescriptionId() { return "item.create.vertical_gearbox"; diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/IWrenchable.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/IWrenchable.java index dc2a85735..f2d074a47 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/IWrenchable.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/IWrenchable.java @@ -9,9 +9,9 @@ import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; -import com.simibubi.create.foundation.utility.DirectionHelper; -import com.simibubi.create.foundation.utility.VoxelShaper; +import net.createmod.catnip.utility.DirectionHelper; +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java index 1539410e1..f6ab1c9e0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItemRenderer.java @@ -5,7 +5,7 @@ import com.mojang.math.Vector3f; import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer; import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms; diff --git a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java index 64b108331..1b9e1a44e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundColor.java @@ -1,8 +1,7 @@ package com.simibubi.create.content.curiosities; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; - +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.color.item.ItemColor; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java index 6d2537478..4b66b0d05 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java @@ -11,9 +11,9 @@ import com.simibubi.create.foundation.config.CRecipes; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.NonNullList; diff --git a/src/main/java/com/simibubi/create/content/curiosities/ExperienceNuggetItem.java b/src/main/java/com/simibubi/create/content/curiosities/ExperienceNuggetItem.java index 53b91160e..9c981a587 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ExperienceNuggetItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ExperienceNuggetItem.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.curiosities; -import com.simibubi.create.foundation.utility.VecHelper; - +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction.Axis; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -60,7 +59,7 @@ public class ExperienceNuggetItem extends Item { xp.setDeltaMovement(motion); pLevel.addFreshEntity(xp); } - + pPlayer.setItemInHand(pUsedHand, ItemStack.EMPTY); return InteractionResultHolder.consume(itemInHand); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/NoGravMagicalDohickyItem.java b/src/main/java/com/simibubi/create/content/curiosities/NoGravMagicalDohickyItem.java index 4d314d720..6224a431e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/NoGravMagicalDohickyItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/NoGravMagicalDohickyItem.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.curiosities; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.NonNullList; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/curiosities/TreeFertilizerItem.java b/src/main/java/com/simibubi/create/content/curiosities/TreeFertilizerItem.java index 47ae26065..5d80b7e41 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/TreeFertilizerItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/TreeFertilizerItem.java @@ -1,7 +1,10 @@ package com.simibubi.create.content.curiosities; -import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationServerWorld; +import javax.annotation.Nonnull; +import org.jetbrains.annotations.NotNull; + +import net.createmod.catnip.utility.worldWrappers.PlacementSimulationServerWorld; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.BlockTags; @@ -93,14 +96,14 @@ public class TreeFertilizerItem extends Item { } @Override - public BlockState getBlockState(BlockPos pos) { + public @NotNull BlockState getBlockState(@Nonnull BlockPos pos) { if (pos.getY() <= 9) return soil; return super.getBlockState(pos); } @Override - public boolean setBlock(BlockPos pos, BlockState newState, int flags) { + public boolean setBlock(@Nonnull BlockPos pos, @Nonnull BlockState newState, int flags) { if (newState.getBlock() == Blocks.PODZOL) return true; return super.setBlock(pos, newState, flags); diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java index c84a256fe..4f0f2e271 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java @@ -4,7 +4,7 @@ import com.simibubi.create.AllEnchantments; import com.simibubi.create.AllItems; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; @@ -63,7 +63,7 @@ public class BackTankUtil { return; boolean depleted = threshold == 1; - MutableComponent component = Lang.translateDirect(depleted ? "backtank.depleted" : "backtank.low"); + MutableComponent component = CreateLang.translateDirect(depleted ? "backtank.depleted" : "backtank.low"); AllSoundEvents.DENY.play(player.level, null, player.blockPosition(), 1, 1.25f); AllSoundEvents.STEAM.play(player.level, null, player.blockPosition(), .5f, .5f); diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java index 9ceefaf8e..58201e55a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java @@ -4,12 +4,14 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import net.createmod.catnip.gui.element.GuiGameElement; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.math.AngleHelper; + +import net.createmod.ponder.utility.WorldTickHolder; + +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.model.EntityModel; @@ -78,7 +80,7 @@ public class CopperBacktankArmorLayer behaviours) { super.addBehaviours(behaviours); registerAwardables(behaviours, AllAdvancements.BACKTANK); } - + @Override public void onSpeedChanged(float previousSpeed) { super.onSpeedChanged(previousSpeed); if (getSpeed() != 0) award(AllAdvancements.BACKTANK); } - + @Override public void tick() { super.tick(); diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java index 4f154a3fd..d0d914d70 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.curiosities.armor; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Pose; diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java index 98aceda43..079889058 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/AbstractBellTileEntity.java @@ -5,8 +5,8 @@ import java.util.List; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -52,7 +52,7 @@ public abstract class AbstractBellTileEntity extends SmartTileEntity { ringingTicks = 0; } } - + @Override protected void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); @@ -60,7 +60,7 @@ public abstract class AbstractBellTileEntity extends SmartTileEntity { return; NBTHelper.writeEnum(tag, "Ringing", ringDirection); } - + @Override protected void read(CompoundTag tag, boolean clientPacket) { super.read(tag, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java index 291a236fd..65476e0b6 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/BellRenderer.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellPulser.java b/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellPulser.java index d90c066ea..57488fa7d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellPulser.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellPulser.java @@ -8,8 +8,8 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java index 892020b1f..e90a1dfa9 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/SoulPulseEffect.java @@ -7,7 +7,7 @@ import java.util.stream.Stream; import com.google.common.collect.Streams; import com.simibubi.create.content.curiosities.bell.SoulParticle.ExpandingPerimeterData; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.EntityType; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/MetalLadderBlock.java b/src/main/java/com/simibubi/create/content/curiosities/deco/MetalLadderBlock.java index a5c44f180..82c150814 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/MetalLadderBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/MetalLadderBlock.java @@ -5,10 +5,10 @@ import java.util.function.Predicate; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.content.curiosities.tools.ExtendoGripItem; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardRenderer.java index 478ec22e4..3a6eab42c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardRenderer.java @@ -3,8 +3,8 @@ package com.simibubi.create.content.curiosities.deco; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardTileEntity.java index ab6fa677e..26edb157a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/PlacardTileEntity.java @@ -6,8 +6,8 @@ import com.mojang.math.Vector3f; import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java index 5e42e9b1a..5ed747f68 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java @@ -7,7 +7,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.logistics.trains.entity.CarriageSyncData; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorTileEntity.java index 98d9f93f8..008e10e3f 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorTileEntity.java @@ -4,8 +4,8 @@ import java.util.List; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/simibubi/create/content/curiosities/girder/ConnectedGirderModel.java b/src/main/java/com/simibubi/create/content/curiosities/girder/ConnectedGirderModel.java index 373800fd2..5fe648575 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/girder/ConnectedGirderModel.java +++ b/src/main/java/com/simibubi/create/content/curiosities/girder/ConnectedGirderModel.java @@ -7,8 +7,8 @@ import java.util.Random; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.block.connected.CTModel; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlock.java b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlock.java index ff20a1c6b..eb9fe907e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlock.java @@ -19,10 +19,10 @@ import com.simibubi.create.content.logistics.trains.management.display.FlapDispl import com.simibubi.create.content.logistics.trains.track.TrackBlock; import com.simibubi.create.content.logistics.trains.track.TrackShape; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlockStateGenerator.java b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlockStateGenerator.java index 1c387539c..affde64b4 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlockStateGenerator.java +++ b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlockStateGenerator.java @@ -1,10 +1,10 @@ package com.simibubi.create.content.curiosities.girder; import com.simibubi.create.foundation.data.AssetLookup; -import com.simibubi.create.foundation.utility.Iterate; import com.tterrag.registrate.providers.DataGenContext; import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.Block; import net.minecraftforge.client.model.generators.MultiPartBlockStateBuilder; diff --git a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderPlacementHelper.java b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderPlacementHelper.java index 154a476bf..0f2e26c36 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderPlacementHelper.java +++ b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderPlacementHelper.java @@ -7,9 +7,9 @@ import com.google.common.base.Predicates; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.curiosities.tools.ExtendoGripItem; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderWrenchBehavior.java b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderWrenchBehavior.java index dd8fe7a89..9b35c0a95 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/girder/GirderWrenchBehavior.java +++ b/src/main/java/com/simibubi/create/content/curiosities/girder/GirderWrenchBehavior.java @@ -8,13 +8,13 @@ import org.jetbrains.annotations.Nullable; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.CreateClient; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -91,7 +91,7 @@ public class GirderWrenchBehavior { .getNormal()) .scale(0.1 * normalMultiplier)); - CreateClient.OUTLINER.showAABB("girderWrench", new AABB(corner1, corner2)) + CatnipClient.OUTLINER.showAABB("girderWrench", new AABB(corner1, corner2)) .lineWidth(1 / 32f) .colored(new Color(127, 127, 127)); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryHandler.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryHandler.java index 0a30ce607..8c61bf3e1 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryHandler.java @@ -8,8 +8,8 @@ import com.mojang.math.Vector3f; import com.simibubi.create.AllItems; import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java index 44aa285ba..a935b7591 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandItem.java @@ -16,12 +16,12 @@ import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.PlaneMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java index a5c77c3b5..64592fb1a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java @@ -7,17 +7,18 @@ import com.simibubi.create.content.curiosities.symmetry.mirror.EmptyMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.PlaneMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror; import com.simibubi.create.content.curiosities.symmetry.mirror.TriplePlaneMirror; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import com.simibubi.create.foundation.gui.element.PartialModelGuiElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; import net.minecraft.world.InteractionHand; @@ -34,8 +35,8 @@ public class SymmetryWandScreen extends AbstractSimiScreen { private Label labelAlign; private IconButton confirmButton; - private final Component mirrorType = Lang.translateDirect("gui.symmetryWand.mirrorType"); - private final Component orientation = Lang.translateDirect("gui.symmetryWand.orientation"); + private final Component mirrorType = CreateLang.translateDirect("gui.symmetryWand.mirrorType"); + private final Component orientation = CreateLang.translateDirect("gui.symmetryWand.orientation"); private SymmetryMirror currentElement; private ItemStack wand; @@ -54,7 +55,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen { @Override public void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); setWindowOffset(-20, 0); super.init(); @@ -96,7 +97,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen { addRenderableWidget(areaType); addRenderableWidget(labelType); - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { onClose(); }); @@ -139,7 +140,7 @@ public class SymmetryWandScreen extends AbstractSimiScreen { ms.mulPose(new Vector3f(.3f, 1f, 0f).rotationDegrees(-22.5f)); currentElement.applyModelTransform(ms); // RenderSystem.multMatrix(ms.peek().getModel()); - GuiGameElement.of(currentElement.getModel()) + PartialModelGuiElement.of(currentElement.getModel()) .render(ms); ms.popPose(); diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandItemRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandItemRenderer.java index 4f28a4d67..071077705 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/client/SymmetryWandItemRenderer.java @@ -4,8 +4,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer; import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms; diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/CrossPlaneMirror.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/CrossPlaneMirror.java index e1342bf4b..12764744a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/CrossPlaneMirror.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/CrossPlaneMirror.java @@ -9,7 +9,7 @@ import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; @@ -105,7 +105,7 @@ public class CrossPlaneMirror extends SymmetryMirror { @Override public List getAlignToolTips() { - return ImmutableList.of(Lang.translateDirect("orientation.orthogonal"), Lang.translateDirect("orientation.diagonal")); + return ImmutableList.of(CreateLang.translateDirect("orientation.orthogonal"), CreateLang.translateDirect("orientation.diagonal")); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/PlaneMirror.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/PlaneMirror.java index 06b6a0ceb..d3fd47378 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/PlaneMirror.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/PlaneMirror.java @@ -9,7 +9,7 @@ import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; @@ -101,7 +101,7 @@ public class PlaneMirror extends SymmetryMirror { @Override public List getAlignToolTips() { - return ImmutableList.of(Lang.translateDirect("orientation.alongZ"), Lang.translateDirect("orientation.alongX")); + return ImmutableList.of(CreateLang.translateDirect("orientation.alongZ"), CreateLang.translateDirect("orientation.alongX")); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/SymmetryMirror.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/SymmetryMirror.java index 0ad3e979e..afd3f9faf 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/SymmetryMirror.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/SymmetryMirror.java @@ -7,7 +7,7 @@ import java.util.Map; import com.google.common.collect.ImmutableList; import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -45,8 +45,8 @@ public abstract class SymmetryMirror { } public static List getMirrors() { - return ImmutableList.of(Lang.translateDirect("symmetry.mirror.plane"), Lang.translateDirect("symmetry.mirror.doublePlane"), - Lang.translateDirect("symmetry.mirror.triplePlane")); + return ImmutableList.of(CreateLang.translateDirect("symmetry.mirror.plane"), CreateLang.translateDirect("symmetry.mirror.doublePlane"), + CreateLang.translateDirect("symmetry.mirror.triplePlane")); } public StringRepresentable getOrientation() { diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/TriplePlaneMirror.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/TriplePlaneMirror.java index a0d9a9a61..163863af0 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/TriplePlaneMirror.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/mirror/TriplePlaneMirror.java @@ -7,7 +7,7 @@ import java.util.Map; import com.google.common.collect.ImmutableList; import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; @@ -66,7 +66,7 @@ public class TriplePlaneMirror extends SymmetryMirror { @Override public List getAlignToolTips() { - return ImmutableList.of(Lang.translateDirect("orientation.horizontal")); + return ImmutableList.of(CreateLang.translateDirect("orientation.horizontal")); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java index 0bf111bec..9ff5270ce 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/RadialToolboxMenu.java @@ -13,15 +13,15 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllKeys; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.KeyMapping; import net.minecraft.network.chat.Component; @@ -81,7 +81,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { if (state == State.DETACH) { - tip = Lang.translateDirect("toolbox.outOfRange"); + tip = CreateLang.translateDirect("toolbox.outOfRange"); if (hoveredX > -20 && hoveredX < 20 && hoveredY > -80 && hoveredY < -20) hoveredSlot = UNEQUIP; @@ -99,7 +99,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { ms.translate(0.5, -0.5, 0); if (!scrollMode && hoveredSlot == UNEQUIP) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.render(ms, -13, -13, this); - tip = Lang.translateDirect("toolbox.detach") + tip = CreateLang.translateDirect("toolbox.detach") .withStyle(ChatFormatting.GOLD); } ms.popPose(); @@ -117,7 +117,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { ms.translate(0.5, -0.5, 0); if (!scrollMode && hoveredSlot == DEPOSIT) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.render(ms, -13, -13, this); - tip = Lang.translateDirect(state == State.SELECT_BOX ? "toolbox.depositAll" : "toolbox.depositBox") + tip = CreateLang.translateDirect(state == State.SELECT_BOX ? "toolbox.depositAll" : "toolbox.depositBox") .withStyle(ChatFormatting.GOLD); } ms.popPose(); @@ -179,7 +179,7 @@ public class RadialToolboxMenu extends AbstractSimiScreen { (scrollMode ? AllIcons.I_REFRESH : AllIcons.I_FLIP).render(ms, -9, -9, this); if (!scrollMode && UNEQUIP == hoveredSlot) { AllGuiTextures.TOOLBELT_SLOT_HIGHLIGHT.render(ms, -13, -13, this); - tip = Lang.translateDirect("toolbox.unequip", minecraft.player.getMainHandItem() + tip = CreateLang.translateDirect("toolbox.unequip", minecraft.player.getMainHandItem() .getHoverName()) .withStyle(ChatFormatting.GOLD); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolBoxInstance.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolBoxInstance.java index aac661c5e..d7bdcea9c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolBoxInstance.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolBoxInstance.java @@ -7,9 +7,9 @@ import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; import com.jozufozu.flywheel.core.Materials; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java index c7ec4aacc..5dc5d971e 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandler.java @@ -7,8 +7,8 @@ import java.util.stream.Collectors; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.ISyncPersistentData.PersistentDataPacket; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java index a4c61f2fc..45c0bb350 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxHandlerClient.java @@ -13,9 +13,9 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllKeys; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.networking.AllPackets; +import net.createmod.catnip.gui.ScreenOpener; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java index 1d35771c3..e6b6a94e0 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxInventory.java @@ -7,8 +7,8 @@ import java.util.function.Consumer; import javax.annotation.Nonnull; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java index 86912a652..d8e20592a 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxRenderer.java @@ -6,8 +6,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java index 13110e32b..9969f4f3d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxScreen.java @@ -12,12 +12,13 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import com.simibubi.create.foundation.gui.element.PartialModelGuiElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; @@ -44,13 +45,13 @@ public class ToolboxScreen extends AbstractSimiContainerScreen @Override protected void init() { - setWindowSize(30 + BG.width, BG.height + PLAYER.height - 24); + setWindowSize(30 + BG.getWidth(), BG.getHeight() + PLAYER.getHeight() - 24); setWindowOffset(-11, 0); super.init(); color = menu.contentHolder.getColor(); - confirmButton = new IconButton(leftPos + 30 + BG.width - 33, topPos + BG.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(leftPos + 30 + BG.getWidth() - 33, topPos + BG.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { minecraft.player.closeContainer(); }); @@ -60,11 +61,11 @@ public class ToolboxScreen extends AbstractSimiContainerScreen disposeButton.withCallback(() -> { AllPackets.channel.sendToServer(new ToolboxDisposeAllPacket(menu.contentHolder.getBlockPos())); }); - disposeButton.setToolTip(Lang.translateDirect("toolbox.depositBox")); + disposeButton.setToolTip(CreateLang.translateDirect("toolbox.depositBox")); addRenderableWidget(disposeButton); extraAreas = ImmutableList.of( - new Rect2i(leftPos + 30 + BG.width, topPos + BG.height - 15 - 34 - 6, 72, 68) + new Rect2i(leftPos + 30 + BG.getWidth(), topPos + BG.getHeight() - 15 - 34 - 6, 72, 68) ); } @@ -77,17 +78,17 @@ public class ToolboxScreen extends AbstractSimiContainerScreen @Override protected void renderBg(PoseStack ms, float partialTicks, int mouseX, int mouseY) { - int x = leftPos + imageWidth - BG.width; + int x = leftPos + imageWidth - BG.getWidth(); int y = topPos; BG.render(ms, x, y, this); font.draw(ms, title, x + 15, y + 4, 0x442000); int invX = leftPos; - int invY = topPos + imageHeight - PLAYER.height; + int invY = topPos + imageHeight - PLAYER.getHeight(); renderPlayerInventory(ms, invX, invY); - renderToolbox(ms, x + BG.width + 50, y + BG.height + 12, partialTicks); + renderToolbox(ms, x + BG.getWidth() + 50, y + BG.getHeight() + 12, partialTicks); hoveredToolboxSlot = null; for (int compartment = 0; compartment < 8; compartment++) { @@ -141,7 +142,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen .translate(0, -6 / 16f, 12 / 16f) .rotateX(-105 * menu.contentHolder.lid.getValue(partialTicks)) .translate(0, 6 / 16f, -12 / 16f); - GuiGameElement.of(AllBlockPartials.TOOLBOX_LIDS.get(color)) + PartialModelGuiElement.of(AllBlockPartials.TOOLBOX_LIDS.get(color)) .render(ms); ms.popPose(); @@ -149,7 +150,7 @@ public class ToolboxScreen extends AbstractSimiContainerScreen ms.pushPose(); ms.translate(0, -offset * 1 / 8f, menu.contentHolder.drawers.getValue(partialTicks) * -.175f * (2 - offset)); - GuiGameElement.of(AllBlockPartials.TOOLBOX_DRAWER) + PartialModelGuiElement.of(AllBlockPartials.TOOLBOX_DRAWER) .render(ms); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java index a44225964..5a1fa9f2b 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxTileEntity.java @@ -14,10 +14,10 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.ResetableLazy; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintEntity.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintEntity.java index fafa00deb..506a89d92 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintEntity.java @@ -17,10 +17,10 @@ import com.simibubi.create.content.schematics.ISpecialEntityItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; import com.simibubi.create.foundation.networking.ISyncPersistentData; -import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.IInteractionChecker; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintOverlayRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintOverlayRenderer.java index 6889a801e..e8d238692 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintOverlayRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintOverlayRenderer.java @@ -18,10 +18,11 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import com.simibubi.create.content.logistics.trains.track.TrackPlacement.PlacementInfo; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Pair; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; @@ -288,7 +289,7 @@ public class BlueprintOverlayRenderer { public static void drawItemStack(PoseStack ms, Minecraft mc, int x, int y, ItemStack itemStack, String count) { if (itemStack.getItem() instanceof FilterItem) { - int step = AnimationTickHolder.getTicks(mc.level) / 10; + int step = WorldTickHolder.getTicks(mc.level) / 10; ItemStack[] itemsMatchingFilter = getItemsMatchingFilter(itemStack); if (itemsMatchingFilter.length > 0) itemStack = itemsMatchingFilter[step % itemsMatchingFilter.length]; diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintRenderer.java index 4b68a02cc..64813303c 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintRenderer.java @@ -8,8 +8,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.curiosities.tools.BlueprintEntity.BlueprintSection; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.Sheets; diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintScreen.java b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintScreen.java index 3999c10dc..09fedc9ff 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/BlueprintScreen.java @@ -14,11 +14,12 @@ import com.simibubi.create.content.logistics.item.filter.FilterScreenPacket.Opti import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import com.simibubi.create.foundation.gui.element.PartialModelGuiElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.ChatFormatting; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; @@ -40,20 +41,20 @@ public class BlueprintScreen extends AbstractSimiContainerScreen { menu.clearContents(); contentsCleared(); menu.sendClearPacket(); }); - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { minecraft.player.closeContainer(); }); @@ -61,13 +62,13 @@ public class BlueprintScreen extends AbstractSimiContainerScreenat(x + background.width + 20, y + background.height - 32, 0) + PartialModelGuiElement.of(AllBlockPartials.CRAFTING_BLUEPRINT_1x1).at(x + background.getWidth() + 20, y + background.getHeight() - 32, 0) .rotate(45, -45, 22.5f) .scale(40) .render(ms); @@ -107,26 +108,26 @@ public class BlueprintScreen extends AbstractSimiContainerScreen filter = Predicates.alwaysFalse(); - + switch (pattern) { case Chance25: filter = pos -> r.nextBoolean() || r.nextBoolean(); @@ -56,7 +56,7 @@ public enum PlacementPatterns { default: break; } - + blocksIn.removeIf(filter); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java index 43ddf5fe4..f913cdae9 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperItem.java @@ -9,8 +9,8 @@ import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.item.ItemDescription; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.NBTHelper; import com.simibubi.create.foundation.utility.NBTProcessors; import net.minecraft.ChatFormatting; @@ -59,7 +59,7 @@ public abstract class ZapperItem extends Item { .getBlock() .getName(); ItemDescription.add(tooltip, - Lang.translateDirect("terrainzapper.usingBlock", + CreateLang.translateDirect("terrainzapper.usingBlock", usedBlock.withStyle(ChatFormatting.GRAY)) .withStyle(ChatFormatting.DARK_GRAY)); } @@ -180,7 +180,7 @@ public abstract class ZapperItem extends Item { public Component validateUsage(ItemStack item) { CompoundTag tag = item.getOrCreateTag(); if (!canActivateWithoutSelectedBlock(item) && !tag.contains("BlockUsed")) - return Lang.translateDirect("terrainzapper.leftClickToSet"); + return CreateLang.translateDirect("terrainzapper.leftClickToSet"); return null; } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperRenderHandler.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperRenderHandler.java index 9028abdaa..698482579 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperRenderHandler.java @@ -8,8 +8,8 @@ import java.util.function.Supplier; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.AllSoundEvents; -import com.simibubi.create.CreateClient; +import net.createmod.catnip.CatnipClient; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.particles.ParticleTypes; @@ -38,7 +38,7 @@ public class ZapperRenderHandler extends ShootableGadgetRenderHandler { return; cachedBeams.forEach(beam -> { - CreateClient.OUTLINER.endChasingLine(beam, beam.start, beam.end, 1 - beam.itensity, false) + CatnipClient.OUTLINER.endChasingLine(beam, beam.start, beam.end, 1 - beam.itensity, false) .disableNormals() .colored(0xffffff) .lineWidth(beam.itensity * 1 / 8f); diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java index 6328eaaa7..bb4edd234 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java @@ -4,15 +4,15 @@ import java.util.Vector; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; @@ -24,7 +24,7 @@ import net.minecraft.world.level.block.state.BlockState; public abstract class ZapperScreen extends AbstractSimiScreen { - protected final Component patternSection = Lang.translateDirect("gui.terrainzapper.patternSection"); + protected final Component patternSection = CreateLang.translateDirect("gui.terrainzapper.patternSection"); protected AllGuiTextures background; protected ItemStack zapper; @@ -54,7 +54,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); setWindowOffset(-10, 0); super.init(); @@ -64,7 +64,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen { int y = guiTop; confirmButton = - new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { onClose(); }); @@ -75,13 +75,13 @@ public abstract class ZapperScreen extends AbstractSimiScreen { for (int col = 0; col <= 2; col++) { int id = patternButtons.size(); PlacementPatterns pattern = PlacementPatterns.values()[id]; - IconButton patternButton = new IconButton(x + background.width - 76 + col * 18, y + 21 + row * 18, pattern.icon); + IconButton patternButton = new IconButton(x + background.getWidth() - 76 + col * 18, y + 21 + row * 18, pattern.icon); patternButton.withCallback(() -> { patternButtons.forEach(b -> b.active = true); patternButton.active = false; currentPattern = pattern; }); - patternButton.setToolTip(Lang.translateDirect("gui.terrainzapper.pattern." + pattern.translationKey)); + patternButton.setToolTip(CreateLang.translateDirect("gui.terrainzapper.pattern." + pattern.translationKey)); patternButtons.add(patternButton); } } @@ -123,7 +123,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen { protected void renderZapper(PoseStack ms, int x, int y) { GuiGameElement.of(zapper) .scale(4) - .at(x + background.width, y + background.height - 48, -200) + .at(x + background.getWidth(), y + background.getHeight() - 48, -200) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/Brush.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/Brush.java index 4b1123d17..1953dd6cc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/Brush.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/Brush.java @@ -2,7 +2,7 @@ package com.simibubi.create.content.curiosities.zapper.terrainzapper; import java.util.Collection; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -30,7 +30,7 @@ public abstract class Brush { public TerrainTools[] getSupportedTools() { return TerrainTools.values(); } - + public TerrainTools redirectTool(TerrainTools tool) { return tool; } @@ -52,7 +52,7 @@ public abstract class Brush { } Component getParamLabel(int paramIndex) { - return Lang + return CreateLang .translateDirect(paramIndex == 0 ? "generic.width" : paramIndex == 1 ? "generic.height" : "generic.length"); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/CylinderBrush.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/CylinderBrush.java index e468a11f5..1b9d2d9cc 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/CylinderBrush.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/CylinderBrush.java @@ -8,9 +8,9 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.Pair; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; @@ -74,7 +74,7 @@ public class CylinderBrush extends ShapedBrush { @Override Component getParamLabel(int paramIndex) { - return paramIndex == 0 ? Lang.translateDirect("generic.radius") : super.getParamLabel(paramIndex); + return paramIndex == 0 ? CreateLang.translateDirect("generic.radius") : super.getParamLabel(paramIndex); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/DynamicBrush.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/DynamicBrush.java index 976376488..f9fda8365 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/DynamicBrush.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/DynamicBrush.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Set; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -27,7 +27,7 @@ public class DynamicBrush extends Brush { } Component getParamLabel(int paramIndex) { - return Lang.translateDirect("generic.range"); + return CreateLang.translateDirect("generic.range"); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/PlacementOptions.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/PlacementOptions.java index 9861b2505..8f096363d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/PlacementOptions.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/PlacementOptions.java @@ -1,7 +1,8 @@ package com.simibubi.create.content.curiosities.zapper.terrainzapper; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.utility.Lang; + +import net.createmod.catnip.utility.lang.Lang; public enum PlacementOptions { diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/SphereBrush.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/SphereBrush.java index 4fcfa3b9e..c0531d478 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/SphereBrush.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/SphereBrush.java @@ -5,9 +5,9 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; @@ -51,7 +51,7 @@ public class SphereBrush extends ShapedBrush { @Override Component getParamLabel(int paramIndex) { - return Lang.translateDirect("generic.radius"); + return CreateLang.translateDirect("generic.radius"); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/TerrainTools.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/TerrainTools.java index 79e6fe2be..258485d33 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/TerrainTools.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/TerrainTools.java @@ -6,8 +6,8 @@ import javax.annotation.Nullable; import com.simibubi.create.content.curiosities.zapper.ZapperItem; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -26,7 +26,7 @@ public enum TerrainTools { Flatten(AllIcons.I_FLATTEN), ; - + public String translationKey; public AllIcons icon; diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java index ddc4901f8..5084407f8 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItem.java @@ -6,11 +6,11 @@ import java.util.function.Consumer; import com.simibubi.create.content.curiosities.zapper.PlacementPatterns; import com.simibubi.create.content.curiosities.zapper.ZapperItem; -import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; @@ -51,7 +51,7 @@ public class WorldshaperItem extends ZapperItem { public Component validateUsage(ItemStack item) { if (!item.getOrCreateTag() .contains("BrushParams")) - return Lang.translateDirect("terrainzapper.shiftRightClickToSet"); + return CreateLang.translateDirect("terrainzapper.shiftRightClickToSet"); return super.validateUsage(item); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItemRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItemRenderer.java index a163d209c..c7facd63f 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperItemRenderer.java @@ -6,7 +6,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; import com.simibubi.create.content.curiosities.zapper.ZapperItemRenderer; import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; @@ -38,7 +38,7 @@ public class WorldshaperItemRenderer extends ZapperItemRenderer brushOptions = - Lang.translatedOptions("gui.terrainzapper.brush", "cuboid", "sphere", "cylinder", "surface", "cluster"); + CreateLang.translatedOptions("gui.terrainzapper.brush", "cuboid", "sphere", "cylinder", "surface", "cluster"); protected Vector toolButtons; protected Vector placementButtons; @@ -84,7 +84,7 @@ public class WorldshaperScreen extends ZapperScreen { brushLabel = new Label(x + 61, y + 25, TextComponent.EMPTY).withShadow(); brushInput = new SelectionScrollInput(x + 56, y + 20, 77, 18).forOptions(brushOptions) - .titled(Lang.translateDirect("gui.terrainzapper.brush")) + .titled(CreateLang.translateDirect("gui.terrainzapper.brush")) .writingTo(brushLabel) .calling(brushIndex -> { currentBrush = TerrainBrushes.values()[brushIndex]; @@ -165,12 +165,12 @@ public class WorldshaperScreen extends ZapperScreen { followDiagonalsIndicator.state = followDiagonalsIndicator.state == State.OFF ? State.ON : State.OFF; currentFollowDiagonals = !currentFollowDiagonals; }); - followDiagonals.setToolTip(Lang.translateDirect("gui.terrainzapper.searchDiagonal")); + followDiagonals.setToolTip(CreateLang.translateDirect("gui.terrainzapper.searchDiagonal")); acrossMaterials.withCallback(() -> { acrossMaterialsIndicator.state = acrossMaterialsIndicator.state == State.OFF ? State.ON : State.OFF; currentAcrossMaterials = !currentAcrossMaterials; }); - acrossMaterials.setToolTip(Lang.translateDirect("gui.terrainzapper.searchFuzzy")); + acrossMaterials.setToolTip(CreateLang.translateDirect("gui.terrainzapper.searchFuzzy")); addRenderableWidget(followDiagonals); addRenderableWidget(followDiagonalsIndicator); addRenderableWidget(acrossMaterials); @@ -196,7 +196,7 @@ public class WorldshaperScreen extends ZapperScreen { toolButton.active = false; currentTool = tool; }); - toolButton.setToolTip(Lang.translateDirect("gui.terrainzapper.tool." + tool.translationKey)); + toolButton.setToolTip(CreateLang.translateDirect("gui.terrainzapper.tool." + tool.translationKey)); toolButtons.add(toolButton); } @@ -228,7 +228,7 @@ public class WorldshaperScreen extends ZapperScreen { placementButton.active = false; currentPlacement = option; }); - placementButton.setToolTip(Lang.translateDirect("gui.terrainzapper.placement." + option.translationKey)); + placementButton.setToolTip(CreateLang.translateDirect("gui.terrainzapper.placement." + option.translationKey)); placementButtons.add(placementButton); } diff --git a/src/main/java/com/simibubi/create/content/logistics/IRedstoneLinkable.java b/src/main/java/com/simibubi/create/content/logistics/IRedstoneLinkable.java index 1fa782796..dc1ffbd16 100644 --- a/src/main/java/com/simibubi/create/content/logistics/IRedstoneLinkable.java +++ b/src/main/java/com/simibubi/create/content/logistics/IRedstoneLinkable.java @@ -1,22 +1,22 @@ package com.simibubi.create.content.logistics; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; public interface IRedstoneLinkable { public int getTransmittedStrength(); - + public void setReceivedStrength(int power); - + public boolean isListening(); - + public boolean isAlive(); - + public Couple getNetworkKey(); - + public BlockPos getLocation(); - + } diff --git a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java index 019b6de47..f553bfd2f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java @@ -11,9 +11,9 @@ import java.util.concurrent.atomic.AtomicInteger; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkBehaviour; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.WorldHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.WorldHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelBlock.java index 0d5ea76a4..616f83a80 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelBlock.java @@ -9,9 +9,9 @@ import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.worldWrappers.WrappedWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java index 67d5d7c00..f5ef5a0ed 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelInstance.java @@ -13,9 +13,9 @@ import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.logistics.block.flap.FlapData; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.Direction; import net.minecraft.world.level.LightLayer; @@ -77,7 +77,7 @@ public class BeltTunnelInstance extends BlockEntityInstance { LerpedFloat lerpedFloat = blockEntity.flaps.get(direction); - if (lerpedFloat == null) + if (lerpedFloat == null) return; float flapness = lerpedFloat.getValue(AnimationTickHolder.getPartialTicks()); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelRenderer.java index fbf919596..e8b94dddc 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelRenderer.java @@ -8,10 +8,10 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelShapes.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelShapes.java index f7e359aec..5bbcedcb2 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelShapes.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelShapes.java @@ -2,8 +2,7 @@ package com.simibubi.create.content.logistics.block.belts.tunnel; import static net.minecraft.world.level.block.Block.box; -import com.simibubi.create.foundation.utility.VoxelShaper; - +import net.createmod.catnip.utility.VoxelShaper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelTileEntity.java index 3541b7c1d..bb61ca458 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BeltTunnelTileEntity.java @@ -17,10 +17,10 @@ import com.simibubi.create.content.logistics.packet.TunnelFlapPacket; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelFilterSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelFilterSlot.java index 66c9aa1d9..4ce492fcc 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelFilterSlot.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.logistics.block.belts.tunnel; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.world.phys.Vec3; public class BrassTunnelFilterSlot extends ValueBoxTransform.Sided { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelTileEntity.java index 6651acef1..7a9e91127 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelTileEntity.java @@ -26,11 +26,12 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.SidedFilter import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -91,7 +92,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); behaviours.add(selectionMode = new ScrollOptionBehaviour<>(SelectionMode.class, - Lang.translateDirect("logistics.when_multiple_outputs_available"), this, + CreateLang.translateDirect("logistics.when_multiple_outputs_available"), this, new CenteredSideValueBoxTransform((state, d) -> d == Direction.UP))); selectionMode.requiresWrench(); @@ -746,20 +747,20 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave List allStacks = grabAllStacksOfGroup(true); if (allStacks.isEmpty()) return false; - + tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.brass_tunnel.contains")) + .append(CreateLang.translateDirect("tooltip.brass_tunnel.contains")) .withStyle(ChatFormatting.WHITE)); for (ItemStack item : allStacks) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.brass_tunnel.contains_entry", new TranslatableComponent(item.getDescriptionId()) + .append(CreateLang.translateDirect("tooltip.brass_tunnel.contains_entry", new TranslatableComponent(item.getDescriptionId()) .getString(), item.getCount())) .withStyle(ChatFormatting.GRAY)); } tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.brass_tunnel.retrieve")) + .append(CreateLang.translateDirect("tooltip.brass_tunnel.retrieve")) .withStyle(ChatFormatting.DARK_GRAY)); - + return true; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/AbstractChuteBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/AbstractChuteBlock.java index 9bf371d8c..1fa2d1af3 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/AbstractChuteBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/AbstractChuteBlock.java @@ -11,8 +11,8 @@ import com.simibubi.create.foundation.block.render.ReducedDestroyEffects; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; @@ -40,7 +40,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I public AbstractChuteBlock(Properties p_i48440_1_) { super(p_i48440_1_); } - + @OnlyIn(Dist.CLIENT) public void initializeClient(Consumer consumer) { consumer.accept(new ReducedDestroyEffects()); @@ -80,7 +80,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer); } - + @Override public void updateEntityAfterFallOn(BlockGetter worldIn, Entity entityIn) { super.updateEntityAfterFallOn(worldIn, entityIn); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java index df7f411d3..15b02e528 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java @@ -5,9 +5,9 @@ import java.util.Map; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.StringRepresentable; @@ -28,7 +28,7 @@ import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.pathfinder.PathComputationType; public class ChuteBlock extends AbstractChuteBlock { - + public static final Property SHAPE = EnumProperty.create("shape", Shape.class); public static final DirectionProperty FACING = BlockStateProperties.FACING_HOPPER; @@ -141,12 +141,12 @@ public class ChuteBlock extends AbstractChuteBlock { return state.setValue(SHAPE, Shape.NORMAL); return state.setValue(SHAPE, Shape.INTERSECTION); } - + @Override public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { return false; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.CHUTE.get(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index b24733582..f1694170a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -25,11 +25,11 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputB import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.ChatFormatting; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; @@ -700,26 +700,26 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { boolean downward = getItemMotion() < 0; tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.header"))); + .append(CreateLang.translateDirect("tooltip.chute.header"))); if (pull == 0 && push == 0) tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.no_fans_attached")) + .append(CreateLang.translateDirect("tooltip.chute.no_fans_attached")) .withStyle(ChatFormatting.GRAY)); if (pull != 0) tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.fans_" + (pull > 0 ? "pull_up" : "push_down")) + .append(CreateLang.translateDirect("tooltip.chute.fans_" + (pull > 0 ? "pull_up" : "push_down")) .withStyle(ChatFormatting.GRAY))); if (push != 0) tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.fans_" + (push > 0 ? "push_up" : "pull_down")) + .append(CreateLang.translateDirect("tooltip.chute.fans_" + (push > 0 ? "push_up" : "pull_down")) .withStyle(ChatFormatting.GRAY))); tooltip.add(componentSpacing.plainCopy() .append("-> ") - .append(Lang.translateDirect("tooltip.chute.items_move_" + (downward ? "down" : "up")) + .append(CreateLang.translateDirect("tooltip.chute.items_move_" + (downward ? "down" : "up")) .withStyle(ChatFormatting.YELLOW))); if (!item.isEmpty()) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.contains", new TranslatableComponent(item.getDescriptionId()) + .append(CreateLang.translateDirect("tooltip.chute.contains", new TranslatableComponent(item.getDescriptionId()) .getString(), item.getCount())) .withStyle(ChatFormatting.GREEN)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteFilterSlotPositioning.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteFilterSlotPositioning.java index c28d77587..7f79810c0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteFilterSlotPositioning.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteFilterSlotPositioning.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.logistics.block.chute; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotBehaviour.java index 84a16e8d5..7f0e65d7e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotBehaviour.java @@ -21,9 +21,9 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBe import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -77,12 +77,12 @@ public class DepotBehaviour extends TileEntityBehaviour { public void enableMerging() { allowMerge = true; } - + public DepotBehaviour withCallback(Consumer changeListener) { onHeldInserted = changeListener; return this; } - + public DepotBehaviour onlyAccepts(Predicate filter) { acceptedItems = filter; return this; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotRenderer.java index 982213757..1646ee2e4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/DepotRenderer.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.contraptions.relays.belt.BeltHelper; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorBlock.java index 875d6462c..ed026a63d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorBlock.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.content.logistics.block.depot.EjectorTileEntity.State; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java index 1a37a1141..d90c269d6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorInstance.java @@ -5,8 +5,8 @@ import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.util.Mth; public class EjectorInstance extends ShaftInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java index 9a60342e8..900d364ec 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorRenderer.java @@ -11,10 +11,10 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTargetHandler.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTargetHandler.java index fd08082ee..a3c2075be 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTargetHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTargetHandler.java @@ -3,14 +3,14 @@ package com.simibubi.create.content.logistics.block.depot; import com.mojang.math.Vector3f; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -59,7 +59,7 @@ public class EjectorTargetHandler { String key = "weighted_ejector.target_set"; ChatFormatting colour = ChatFormatting.GOLD; - player.displayClientMessage(Lang.translateDirect(key) + player.displayClientMessage(CreateLang.translateDirect(key) .withStyle(colour), true); currentSelection = pos; launcher = null; @@ -101,7 +101,7 @@ public class EjectorTargetHandler { Direction validTargetDirection = getValidTargetDirection(pos); if (validTargetDirection == null) { - player.displayClientMessage(Lang.translateDirect(key) + player.displayClientMessage(CreateLang.translateDirect(key) .withStyle(colour), true); currentItem = null; currentSelection = null; @@ -112,7 +112,7 @@ public class EjectorTargetHandler { colour = ChatFormatting.GREEN; player.displayClientMessage( - Lang.translateDirect(key, currentSelection.getX(), currentSelection.getY(), currentSelection.getZ()) + CreateLang.translateDirect(key, currentSelection.getX(), currentSelection.getY(), currentSelection.getZ()) .withStyle(colour), true); @@ -213,7 +213,7 @@ public class EjectorTargetHandler { ClientLevel world = mc.level; AABB bb = new AABB(0, 0, 0, 1, 0, 1).move(currentSelection.offset(-validX, -yDiff, -validZ)); - CreateClient.OUTLINER.chaseAABB("valid", bb) + CatnipClient.OUTLINER.chaseAABB("valid", bb) .colored(intColor) .lineWidth(1 / 16f); @@ -263,7 +263,7 @@ public class EjectorTargetHandler { BlockState state = world.getBlockState(pos); VoxelShape shape = state.getShape(world, pos); AABB boundingBox = shape.isEmpty() ? new AABB(BlockPos.ZERO) : shape.bounds(); - CreateClient.OUTLINER.showAABB("target", boundingBox.move(pos)) + CatnipClient.OUTLINER.showAABB("target", boundingBox.move(pos)) .colored(0xffcb74) .lineWidth(1 / 16f); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java index d9946340c..927c8421d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java @@ -19,16 +19,16 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -102,7 +102,7 @@ public class EjectorTileEntity extends KineticTileEntity { super.addBehaviours(behaviours); behaviours.add(depotBehaviour = new DepotBehaviour(this)); - maxStackSize = new ScrollValueBehaviour(Lang.translateDirect("weighted_ejector.stack_size"), this, new EjectorSlot()) + maxStackSize = new ScrollValueBehaviour(CreateLang.translateDirect("weighted_ejector.stack_size"), this, new EjectorSlot()) .between(0, 64) .withFormatter(i -> i == 0 ? "*" : String.valueOf(i)) .onlyActiveWhen(() -> state == State.CHARGED) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EntityLauncher.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EntityLauncher.java index ac7101318..87619fabf 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EntityLauncher.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EntityLauncher.java @@ -1,8 +1,7 @@ package com.simibubi.create.content.logistics.block.depot; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; - +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -97,40 +96,40 @@ public class EntityLauncher { * Vertical Motion fv(x) = (x - 0.08) * 0.98 * (Gravity modification ignored) * > See LivingEntity.travel() - * + * ** n-th Iterative * (= given initial velocity x, motion after t ticks) * X'(x, t) = x * 0.91^t * Y'(x, t) = x * 0.98^t + ((0.98^t - 1) / (0.98 - 1)) * -0.0784 - * + * ** integral * (= given intial velocity x, location offset after t ticks) * X(x, t) = -10.6033x * (-1 + 0.91^t) * Y(x, t) = -49.4983x * 0.98^t + 49.4983x - 194.033 * 0.98^t - 3.92t + 194.033 - * + * ** argmax y * (= given initial y velocity, ticks at which y reaches top) * tPeak(x) = log(98 / (25x + 98)) / (2*log(7) - 2*log(5) - log(2)) - * + * ** max y * (= given initial y velocity, height offset at tPeak) * yPeak(x) = 889.636 + 49.4983x + 0.032928/(98 + 25x) + 194.033 * log(1/(98 + 25x)) - * + * ** yPeak inverse (Zelo's approximation) * (= given yPeak, initial y velocity required to reach it at max) * yMotion(h) = sqrt(2h/13) + 0.015h - * + * ** Y'(x, t) inverse (Simi's approximation) * (= given yTarget and initial y velocity, elapsed ticks when arc hits yTarget on its way down) * t*(x, v) = sqrt(yPeak(v) - x) * 4.87 + 0.115 * (yPeak(v) - x) + tPeak(v) - * + * ** xMotion * (= given t* and xTarget, initial x velocity such that X'(x, t*) = xTarget) * xMotion(t, x) = x / (-10.6033 * (-1 + 0.91^t)); - * + * ** xError * Interpolated correction function from observed inaccuracies in-game - * + * */ double xError = (-0.0007 * Math.pow(xTarget + .5, 2) + 0.484) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeInstance.java index 450726b17..331aec415 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeInstance.java @@ -6,7 +6,8 @@ import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; import com.jozufozu.flywheel.core.Materials; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.Color; + +import net.createmod.catnip.utility.theme.Color; public class BrassDiodeInstance extends BlockEntityInstance implements TickableInstance { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeRenderer.java index f7cdaf99d..828a1cf63 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeRenderer.java @@ -4,8 +4,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.ColoredOverlayTileEntityRenderer; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; public class BrassDiodeRenderer extends ColoredOverlayTileEntityRenderer { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java index 540a0638a..3cd301147 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.block.diodes; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeTileEntity.java index 0e08276e8..28e2aec10 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeTileEntity.java @@ -8,7 +8,7 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour.StepContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -29,7 +29,7 @@ public abstract class BrassDiodeTileEntity extends SmartTileEntity { @Override public void addBehaviours(List behaviours) { - maxState = new ScrollValueBehaviour(Lang.translateDirect("generic.delay"), this, new BrassDiodeScrollSlot()) + maxState = new ScrollValueBehaviour(CreateLang.translateDirect("generic.delay"), this, new BrassDiodeScrollSlot()) .between(2, 60 * 20 * 30); maxState.withStepFunction(this::step); maxState.withFormatter(this::format); @@ -98,10 +98,10 @@ public abstract class BrassDiodeTileEntity extends SmartTileEntity { private Component getUnit(int value) { if (value < 20) - return Lang.translateDirect("generic.unit.ticks"); + return CreateLang.translateDirect("generic.unit.ticks"); if (value < 20 * 60) - return Lang.translateDirect("generic.unit.seconds"); - return Lang.translateDirect("generic.unit.minutes"); + return CreateLang.translateDirect("generic.unit.seconds"); + return CreateLang.translateDirect("generic.unit.minutes"); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlock.java index 85ae770fc..78323e27f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlock.java @@ -11,10 +11,10 @@ import com.simibubi.create.content.logistics.block.display.source.RedstonePowerD import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.WrenchableDirectionalBlock; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -57,7 +57,7 @@ public class DisplayLinkBlock extends WrenchableDirectionalBlock implements ITE< placed = placed.setValue(FACING, context.getClickedFace()); return placed.setValue(POWERED, shouldBePowered(placed, context.getLevel(), context.getClickedPos())); } - + @Override public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); @@ -151,7 +151,7 @@ public class DisplayLinkBlock extends WrenchableDirectionalBlock implements ITE< if (!(player instanceof LocalPlayer)) return; if (te.targetOffset.equals(BlockPos.ZERO)) { - player.displayClientMessage(Lang.translateDirect("display_link.invalid"), true); + player.displayClientMessage(CreateLang.translateDirect("display_link.invalid"), true); return; } ScreenOpener.open(new DisplayLinkScreen(te)); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlockItem.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlockItem.java index 7520f0de3..134bc941b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlockItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkBlockItem.java @@ -1,11 +1,11 @@ package com.simibubi.create.content.logistics.block.display; import com.simibubi.create.AllBlocks; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.block.display.target.DisplayTarget; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; @@ -60,7 +60,7 @@ public class DisplayLinkBlockItem extends BlockItem { if (player.isSteppingCarefully() && stack.hasTag()) { if (level.isClientSide) return InteractionResult.SUCCESS; - player.displayClientMessage(Lang.translateDirect("display_link.clear"), true); + player.displayClientMessage(CreateLang.translateDirect("display_link.clear"), true); stack.setTag(null); return InteractionResult.SUCCESS; } @@ -70,7 +70,7 @@ public class DisplayLinkBlockItem extends BlockItem { return InteractionResult.SUCCESS; CompoundTag stackTag = stack.getOrCreateTag(); stackTag.put("SelectedPos", NbtUtils.writeBlockPos(pos)); - player.displayClientMessage(Lang.translateDirect("display_link.set"), true); + player.displayClientMessage(CreateLang.translateDirect("display_link.set"), true); stack.setTag(stackTag); return InteractionResult.SUCCESS; } @@ -83,7 +83,7 @@ public class DisplayLinkBlockItem extends BlockItem { .isReplaceable() ? 0 : 1); if (!selectedPos.closerThan(placedPos, AllConfigs.SERVER.logistics.displayLinkRange.get())) { - player.displayClientMessage(Lang.translateDirect("display_link.too_far") + player.displayClientMessage(CreateLang.translateDirect("display_link.too_far") .withStyle(ChatFormatting.RED), true); return InteractionResult.FAIL; } @@ -98,7 +98,7 @@ public class DisplayLinkBlockItem extends BlockItem { ItemStack itemInHand = player.getItemInHand(pContext.getHand()); if (!itemInHand.isEmpty()) itemInHand.setTag(null); - player.displayClientMessage(Lang.translateDirect("display_link.success") + player.displayClientMessage(CreateLang.translateDirect("display_link.success") .withStyle(ChatFormatting.GREEN), true); return useOn; } @@ -127,7 +127,7 @@ public class DisplayLinkBlockItem extends BlockItem { lastShownPos = selectedPos; } - CreateClient.OUTLINER.showAABB("target", lastShownAABB) + CatnipClient.OUTLINER.showAABB("target", lastShownAABB) .colored(0xffcb74) .lineWidth(1 / 16f); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkRenderer.java index 3650b2554..2f80123bd 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkRenderer.java @@ -6,8 +6,8 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.RenderTypes; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java index 5ad126c0e..e11be329c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java @@ -9,25 +9,25 @@ import com.simibubi.create.content.logistics.block.display.source.DisplaySource; import com.simibubi.create.content.logistics.block.display.source.SingleLineDisplaySource; import com.simibubi.create.content.logistics.block.display.target.DisplayTarget; import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.ModularGuiLine; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget; -import com.simibubi.create.foundation.gui.widget.ElementWidget; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.ponder.PonderTag; -import com.simibubi.create.foundation.ponder.ui.PonderTagScreen; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.ponder.CreatePonderTag; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; +import net.createmod.catnip.gui.widget.ElementWidget; +import net.createmod.catnip.utility.Couple; +import net.createmod.ponder.foundation.ui.PonderTagScreen; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.multiplayer.ClientLevel; @@ -74,7 +74,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); super.init(); clearWidgets(); @@ -84,7 +84,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { initGathererOptions(); - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(this::onClose); addRenderableWidget(confirmButton); } @@ -142,7 +142,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { if (rows > 1) { targetLineSelector = new ScrollInput(x + 61, y + 105, 135, 16).withRange(0, rows) - .titled(Lang.translateDirect("display_link.display_on")) + .titled(CreateLang.translateDirect("display_link.display_on")) .inverted() .calling(i -> targetLineLabel.text = target.getLineOptionText(i)) .setState(startIndex); @@ -155,15 +155,15 @@ public class DisplayLinkScreen extends AbstractSimiScreen { sourceWidget = new ElementWidget(x + 37, y + 26) .showingElement(GuiGameElement.of(sourceIcon)) .withCallback((mX, mY) -> { - ScreenOpener.open(new PonderTagScreen(PonderTag.DISPLAY_SOURCES)); + ScreenOpener.open(new PonderTagScreen(CreatePonderTag.DISPLAY_SOURCES)); }); sourceWidget.getToolTip().addAll(List.of( - Lang.translateDirect("display_link.reading_from"), + CreateLang.translateDirect("display_link.reading_from"), sourceState.getBlock().getName() .withStyle(s -> s.withColor(sources.isEmpty() ? 0xF68989 : 0xF2C16D)), - Lang.translateDirect("display_link.attached_side"), - Lang.translateDirect("display_link.view_compatible") + CreateLang.translateDirect("display_link.attached_side"), + CreateLang.translateDirect("display_link.view_compatible") .withStyle(ChatFormatting.GRAY) )); @@ -172,15 +172,15 @@ public class DisplayLinkScreen extends AbstractSimiScreen { targetWidget = new ElementWidget(x + 37, y + 105) .showingElement(GuiGameElement.of(targetIcon)) .withCallback((mX, mY) -> { - ScreenOpener.open(new PonderTagScreen(PonderTag.DISPLAY_TARGETS)); + ScreenOpener.open(new PonderTagScreen(CreatePonderTag.DISPLAY_TARGETS)); }); targetWidget.getToolTip().addAll(List.of( - Lang.translateDirect("display_link.writing_to"), + CreateLang.translateDirect("display_link.writing_to"), targetState.getBlock().getName() .withStyle(s -> s.withColor(target == null ? 0xF68989 : 0xF2C16D)), - Lang.translateDirect("display_link.targeted_location"), - Lang.translateDirect("display_link.view_compatible") + CreateLang.translateDirect("display_link.targeted_location"), + CreateLang.translateDirect("display_link.view_compatible") .withStyle(ChatFormatting.GRAY) )); @@ -199,7 +199,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { .toList(); sourceTypeSelector = new SelectionScrollInput(x + 61, y + 26, 135, 16).forOptions(options) .writingTo(sourceTypeLabel) - .titled(Lang.translateDirect("display_link.information_type")) + .titled(CreateLang.translateDirect("display_link.information_type")) .calling(this::initGathererSourceSubOptions) .setState(startIndex); sourceTypeSelector.onChanged(); @@ -218,8 +218,8 @@ public class DisplayLinkScreen extends AbstractSimiScreen { if (targetLineSelector != null) targetLineSelector - .titled(source instanceof SingleLineDisplaySource ? Lang.translateDirect("display_link.display_on") - : Lang.translateDirect("display_link.display_on_multiline")); + .titled(source instanceof SingleLineDisplaySource ? CreateLang.translateDirect("display_link.display_on") + : CreateLang.translateDirect("display_link.display_on_multiline")); configWidgets.forEach(s -> { s.forEach(this::removeWidget); @@ -254,13 +254,13 @@ public class DisplayLinkScreen extends AbstractSimiScreen { int y = guiTop; background.render(ms, x, y, this); - MutableComponent header = Lang.translateDirect("display_link.title"); - font.draw(ms, header, x + background.width / 2 - font.width(header) / 2, y + 4, 0x442000); + MutableComponent header = CreateLang.translateDirect("display_link.title"); + font.draw(ms, header, x + background.getWidth() / 2 - font.width(header) / 2, y + 4, 0x442000); if (sources.isEmpty()) - font.drawShadow(ms, Lang.translateDirect("display_link.no_source"), x + 65, y + 30, 0xD3D3D3); + font.drawShadow(ms, CreateLang.translateDirect("display_link.no_source"), x + 65, y + 30, 0xD3D3D3); if (target == null) - font.drawShadow(ms, Lang.translateDirect("display_link.no_target"), x + 65, y + 109, 0xD3D3D3); + font.drawShadow(ms, CreateLang.translateDirect("display_link.no_target"), x + 65, y + 109, 0xD3D3D3); ms.pushPose(); ms.translate(0, guiTop + 46, 0); @@ -274,7 +274,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { ms.pushPose(); TransformStack.cast(ms) .pushPose() - .translate(x + background.width + 4, y + background.height + 4, 100) + .translate(x + background.getWidth() + 4, y + background.getHeight() + 4, 100) .scale(40) .rotateX(-22) .rotateY(63); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkTileEntity.java index c06ee51e9..c2dd25782 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkTileEntity.java @@ -7,10 +7,10 @@ import com.simibubi.create.content.logistics.block.display.target.DisplayTarget; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -31,7 +31,7 @@ public class DisplayLinkTileEntity extends SmartTileEntity { public LerpedFloat glow; private boolean sendPulse; - + public int refreshTicks; public DisplayLinkTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -47,7 +47,7 @@ public class DisplayLinkTileEntity extends SmartTileEntity { @Override public void tick() { super.tick(); - + if (isVirtual()) { glow.tickChaser(); return; @@ -59,7 +59,7 @@ public class DisplayLinkTileEntity extends SmartTileEntity { glow.tickChaser(); return; } - + refreshTicks++; if (refreshTicks < activeSource.getPassiveRefreshTicks()) return; @@ -114,7 +114,7 @@ public class DisplayLinkTileEntity extends SmartTileEntity { activeSource.transferData(context, activeTarget, targetLine); sendPulse = true; sendData(); - + award(AllAdvancements.DISPLAY_LINK); } @@ -133,7 +133,7 @@ public class DisplayLinkTileEntity extends SmartTileEntity { protected void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); writeGatheredData(tag, clientPacket); - if (clientPacket && activeTarget != null) + if (clientPacket && activeTarget != null) tag.putString("TargetType", activeTarget.id.toString()); if (clientPacket && sendPulse) { sendPulse = false; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java index bb7c37196..3f209da90 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java @@ -11,7 +11,7 @@ import com.simibubi.create.content.logistics.block.display.target.DisplayTargetS import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayLayout; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import joptsimple.internal.Strings; import net.minecraft.ChatFormatting; @@ -23,16 +23,16 @@ import net.minecraft.world.level.block.entity.LecternBlockEntity; public class BoilerDisplaySource extends DisplaySource { public static final List notEnoughSpaceSingle = - List.of(Lang.translateDirect("display_source.boiler.not_enough_space") - .append(Lang.translateDirect("display_source.boiler.for_boiler_status"))); + List.of(CreateLang.translateDirect("display_source.boiler.not_enough_space") + .append(CreateLang.translateDirect("display_source.boiler.for_boiler_status"))); public static final List notEnoughSpaceDouble = - List.of(Lang.translateDirect("display_source.boiler.not_enough_space"), - Lang.translateDirect("display_source.boiler.for_boiler_status")); + List.of(CreateLang.translateDirect("display_source.boiler.not_enough_space"), + CreateLang.translateDirect("display_source.boiler.for_boiler_status")); public static final List> notEnoughSpaceFlap = - List.of(List.of(Lang.translateDirect("display_source.boiler.not_enough_space")), - List.of(Lang.translateDirect("display_source.boiler.for_boiler_status"))); + List.of(List.of(CreateLang.translateDirect("display_source.boiler.not_enough_space")), + List.of(CreateLang.translateDirect("display_source.boiler.for_boiler_status"))); @Override public List provideText(DisplayLinkContext context, DisplayTargetStats stats) { @@ -133,7 +133,7 @@ public class BoilerDisplaySource extends DisplaySource { heat = new TextComponent(Strings.repeat(' ', lw - labelWidthOf("heat"))).append(heat); } - return Stream.of(List.of(Lang.translateDirect(label, boiler.getHeatLevelTextComponent())), + return Stream.of(List.of(CreateLang.translateDirect(label, boiler.getHeatLevelTextComponent())), List.of(size, boiler.getSizeComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)), List.of(water, boiler.getWaterComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)), List.of(heat, boiler.getHeatComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK))); @@ -151,7 +151,7 @@ public class BoilerDisplaySource extends DisplaySource { private MutableComponent labelOf(String label) { if (label.isBlank()) return TextComponent.EMPTY.copy(); - return Lang.translateDirect("boiler." + label); + return CreateLang.translateDirect("boiler." + label); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/DeathCounterDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/DeathCounterDisplaySource.java index d248da249..467735291 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/DeathCounterDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/DeathCounterDisplaySource.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.logistics.block.display.source; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; @@ -26,7 +26,7 @@ public class DeathCounterDisplaySource extends StatTrackingDisplaySource { @Override protected Component getObjectiveDisplayName() { - return Lang.translateDirect("display_source.scoreboard.objective.deaths"); + return CreateLang.translateDirect("display_source.scoreboard.objective.deaths"); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FillLevelDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FillLevelDisplaySource.java index dc6807ded..417872df0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FillLevelDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FillLevelDisplaySource.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.logistics.block.display.source; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.api.distmarker.Dist; @@ -18,7 +18,7 @@ public class FillLevelDisplaySource extends PercentOrProgressBarDisplaySource { return null; return sste.currentLevel; } - + @Override protected boolean progressBarActive(DisplayLinkContext context) { return context.sourceConfig() @@ -37,8 +37,8 @@ public class FillLevelDisplaySource extends PercentOrProgressBarDisplaySource { if (isFirstLine) return; builder.addSelectionScrollInput(0, 120, - (si, l) -> si.forOptions(Lang.translatedOptions("display_source.fill_level", "percent", "progress_bar")) - .titled(Lang.translateDirect("display_source.fill_level.display")), + (si, l) -> si.forOptions(CreateLang.translatedOptions("display_source.fill_level", "percent", "progress_bar")) + .titled(CreateLang.translateDirect("display_source.fill_level.display")), "Mode"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidListDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidListDisplaySource.java index 19c16a5d1..e60c099aa 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidListDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidListDisplaySource.java @@ -15,10 +15,10 @@ import com.simibubi.create.content.logistics.trains.management.display.FlapDispl import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.TankManipulationBehaviour; -import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.FluidFormatter; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemListDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemListDisplaySource.java index 4e9768dbd..2fe462086 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemListDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemListDisplaySource.java @@ -7,8 +7,8 @@ import com.simibubi.create.content.logistics.block.redstone.ContentObserverTileE import com.simibubi.create.foundation.item.CountedItemStackList; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.items.IItemHandler; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemThoughputDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemThoughputDisplaySource.java index e4e346aa0..161e86e9b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemThoughputDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemThoughputDisplaySource.java @@ -5,7 +5,7 @@ import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity; import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.FloatTag; @@ -44,7 +44,7 @@ public class ItemThoughputDisplaySource extends AccumulatedItemCountDisplaySourc } } - return Lang.number(rate) + return CreateLang.number(rate) .component(); } @@ -108,8 +108,8 @@ public class ItemThoughputDisplaySource extends AccumulatedItemCountDisplaySourc return; builder.addSelectionScrollInput(0, 80, (si, l) -> { - si.forOptions(Lang.translatedOptions("display_source.item_throughput.interval", "second", "minute", "hour")) - .titled(Lang.translateDirect("display_source.item_throughput.interval")); + si.forOptions(CreateLang.translatedOptions("display_source.item_throughput.interval", "second", "minute", "hour")) + .titled(CreateLang.translateDirect("display_source.item_throughput.interval")); }, "Interval"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticSpeedDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticSpeedDisplaySource.java index e04d40a4a..27012269d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticSpeedDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticSpeedDisplaySource.java @@ -4,7 +4,7 @@ import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntit import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.MutableComponent; import net.minecraftforge.api.distmarker.Dist; @@ -20,7 +20,7 @@ public class KineticSpeedDisplaySource extends NumericSingleLineDisplaySource { boolean absoluteValue = context.sourceConfig() .getInt("Directional") == 0; float speed = absoluteValue ? Math.abs(gaugeTile.getSpeed()) : gaugeTile.getSpeed(); - return Lang.number(speed) + return CreateLang.number(speed) .space() .translate("generic.unit.rpm") .component(); @@ -41,7 +41,7 @@ public class KineticSpeedDisplaySource extends NumericSingleLineDisplaySource { builder.addSelectionScrollInput(0, 95, (selectionScrollInput, label) -> { selectionScrollInput - .forOptions(Lang.translatedOptions("display_source.kinetic_speed", "absolute", "directional")); + .forOptions(CreateLang.translatedOptions("display_source.kinetic_speed", "absolute", "directional")); }, "Directional"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticStressDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticStressDisplaySource.java index 1a1a06185..e7ee30ca6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticStressDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/KineticStressDisplaySource.java @@ -4,9 +4,9 @@ import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEnti import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.LangBuilder; import net.minecraft.network.chat.MutableComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -18,7 +18,7 @@ public class KineticStressDisplaySource extends PercentOrProgressBarDisplaySourc int mode = getMode(context); if (mode == 1) return super.formatNumeric(context, currentLevel); - LangBuilder builder = Lang.number(currentLevel); + LangBuilder builder = CreateLang.number(currentLevel); if (context.getTargetTE() instanceof FlapDisplayTileEntity) builder.space(); return builder.translate("generic.unit.stress") @@ -69,9 +69,9 @@ public class KineticStressDisplaySource extends PercentOrProgressBarDisplaySourc return; builder.addSelectionScrollInput(0, 120, (si, l) -> si - .forOptions(Lang.translatedOptions("display_source.kinetic_stress", "progress_bar", "percent", + .forOptions(CreateLang.translatedOptions("display_source.kinetic_stress", "progress_bar", "percent", "current", "max", "remaining")) - .titled(Lang.translateDirect("display_source.kinetic_stress.display")), + .titled(CreateLang.translateDirect("display_source.kinetic_stress.display")), "Mode"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/RedstonePowerDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/RedstonePowerDisplaySource.java index 03e0195a8..844c3f57f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/RedstonePowerDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/RedstonePowerDisplaySource.java @@ -2,7 +2,7 @@ package com.simibubi.create.content.logistics.block.display.source; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; @@ -12,7 +12,7 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; public class RedstonePowerDisplaySource extends PercentOrProgressBarDisplaySource { - + @Override protected String getTranslationKey() { return "redstone_power"; @@ -22,7 +22,7 @@ public class RedstonePowerDisplaySource extends PercentOrProgressBarDisplaySourc protected MutableComponent formatNumeric(DisplayLinkContext context, Float currentLevel) { return new TextComponent(String.valueOf((int) (currentLevel * 15))); } - + @Override protected boolean allowsLabeling(DisplayLinkContext context) { return true; @@ -52,9 +52,9 @@ public class RedstonePowerDisplaySource extends PercentOrProgressBarDisplaySourc if (isFirstLine) return; builder.addSelectionScrollInput(0, 120, - (si, l) -> si.forOptions(Lang.translatedOptions("display_source.redstone_power", "number", "progress_bar")) - .titled(Lang.translateDirect("display_source.redstone_power.display")), + (si, l) -> si.forOptions(CreateLang.translatedOptions("display_source.redstone_power", "number", "progress_bar")) + .titled(CreateLang.translateDirect("display_source.redstone_power.display")), "Mode"); } - + } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ScoreboardDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ScoreboardDisplaySource.java index cafedbba6..3f48f8456 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ScoreboardDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ScoreboardDisplaySource.java @@ -5,9 +5,9 @@ import java.util.stream.Stream; import com.google.common.collect.ImmutableList; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; @@ -47,7 +47,7 @@ public class ScoreboardDisplaySource extends ValueListDisplaySource { private ImmutableList> notFound(String objective) { return ImmutableList - .of(IntAttached.with(404, Lang.translateDirect("display_source.scoreboard.objective_not_found", objective))); + .of(IntAttached.with(404, CreateLang.translateDirect("display_source.scoreboard.objective_not_found", objective))); } @Override @@ -60,9 +60,9 @@ public class ScoreboardDisplaySource extends ValueListDisplaySource { if (isFirstLine) builder.addTextInput(0, 137, (e, t) -> { e.setValue(""); - t.withTooltip(ImmutableList.of(Lang.translateDirect("display_source.scoreboard.objective") + t.withTooltip(ImmutableList.of(CreateLang.translateDirect("display_source.scoreboard.objective") .withStyle(s -> s.withColor(0x5391E1)), - Lang.translateDirect("gui.schedule.lmb_edit") + CreateLang.translateDirect("gui.schedule.lmb_edit") .withStyle(ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC))); }, "Objective"); else diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/SingleLineDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/SingleLineDisplaySource.java index c557050a0..867d0fe36 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/SingleLineDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/SingleLineDisplaySource.java @@ -9,7 +9,7 @@ import com.simibubi.create.content.logistics.trains.management.display.FlapDispl import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.MutableComponent; @@ -34,9 +34,9 @@ public abstract class SingleLineDisplaySource extends DisplaySource { protected void addLabelingTextBox(ModularGuiLineBuilder builder) { builder.addTextInput(0, 137, (e, t) -> { e.setValue(""); - t.withTooltip(ImmutableList.of(Lang.translateDirect("display_source.label") + t.withTooltip(ImmutableList.of(CreateLang.translateDirect("display_source.label") .withStyle(s -> s.withColor(0x5391E1)), - Lang.translateDirect("gui.schedule.lmb_edit") + CreateLang.translateDirect("gui.schedule.lmb_edit") .withStyle(ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC))); }, "Label"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StatTrackingDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StatTrackingDisplaySource.java index c4f15525c..59e05d215 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StatTrackingDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StatTrackingDisplaySource.java @@ -4,8 +4,8 @@ import java.util.stream.Stream; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StationSummaryDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StationSummaryDisplaySource.java index 60c5f2c13..ddc8aef75 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StationSummaryDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StationSummaryDisplaySource.java @@ -16,7 +16,7 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.station import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationTileEntity; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; @@ -57,7 +57,7 @@ public class StationSummaryDisplaySource extends DisplaySource { } else if (prediction.ticks < 200) { lines.add(WHITESPACE); - lines.add(Lang.translateDirect("display_source.station_summary.now")); + lines.add(CreateLang.translateDirect("display_source.station_summary.now")); } else { int min = prediction.ticks / 1200; @@ -68,8 +68,8 @@ public class StationSummaryDisplaySource extends DisplaySource { sec = 0; } lines.add(min > 0 ? new TextComponent(String.valueOf(min)) : WHITESPACE); - lines.add(min > 0 ? Lang.translateDirect("display_source.station_summary.minutes") - : Lang.translateDirect("display_source.station_summary.seconds", sec)); + lines.add(min > 0 ? CreateLang.translateDirect("display_source.station_summary.minutes") + : CreateLang.translateDirect("display_source.station_summary.seconds", sec)); } lines.add(prediction.train.name.copy()); @@ -187,16 +187,16 @@ public class StationSummaryDisplaySource extends DisplaySource { if (isFirstLine) { builder.addTextInput(0, 137, (e, t) -> { e.setValue(""); - t.withTooltip(ImmutableList.of(Lang.translateDirect("display_source.station_summary.filter") + t.withTooltip(ImmutableList.of(CreateLang.translateDirect("display_source.station_summary.filter") .withStyle(s -> s.withColor(0x5391E1)), - Lang.translateDirect("gui.schedule.lmb_edit") + CreateLang.translateDirect("gui.schedule.lmb_edit") .withStyle(ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC))); }, "Filter"); return; } builder.addScrollInput(0, 32, (si, l) -> { - si.titled(Lang.translateDirect("display_source.station_summary.train_name_column")) + si.titled(CreateLang.translateDirect("display_source.station_summary.train_name_column")) .withRange(0, 73) .withShiftStep(12); si.setState(50); @@ -204,7 +204,7 @@ public class StationSummaryDisplaySource extends DisplaySource { }, "NameColumn"); builder.addScrollInput(36, 22, (si, l) -> { - si.titled(Lang.translateDirect("display_source.station_summary.platform_column")) + si.titled(CreateLang.translateDirect("display_source.station_summary.platform_column")) .withRange(0, 16) .withShiftStep(4); si.setState(3); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/TimeOfDayDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/TimeOfDayDisplaySource.java index d71ef7bbf..c68eda8af 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/TimeOfDayDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/TimeOfDayDisplaySource.java @@ -6,7 +6,7 @@ import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; @@ -17,7 +17,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; public class TimeOfDayDisplaySource extends SingleLineDisplaySource { public static final MutableComponent EMPTY_TIME = new TextComponent("--:--"); - + @Override protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { if (!(context.level()instanceof ServerLevel sLevel)) @@ -35,7 +35,7 @@ public class TimeOfDayDisplaySource extends SingleLineDisplaySource { int dayTime = (int) (sLevel.getDayTime() % 24000); int hours = (dayTime / 1000 + 6) % 24; int minutes = (dayTime % 1000) * 60 / 1000; - MutableComponent suffix = Lang.translateDirect("generic.daytime." + (hours > 11 ? "pm" : "am")); + MutableComponent suffix = CreateLang.translateDirect("generic.daytime." + (hours > 11 ? "pm" : "am")); minutes = minutes / 5 * 5; if (c12) { @@ -78,8 +78,8 @@ public class TimeOfDayDisplaySource extends SingleLineDisplaySource { return; builder.addSelectionScrollInput(0, 60, (si, l) -> { - si.forOptions(Lang.translatedOptions("display_source.time", "12_hour", "24_hour")) - .titled(Lang.translateDirect("display_source.time.format")); + si.forOptions(CreateLang.translatedOptions("display_source.time", "12_hour", "24_hour")) + .titled(CreateLang.translateDirect("display_source.time.format")); }, "Cycle"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ValueListDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ValueListDisplaySource.java index 193067fad..36dc94ada 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ValueListDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ValueListDisplaySource.java @@ -15,10 +15,10 @@ import com.simibubi.create.content.logistics.trains.management.display.FlapDispl import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.block.entity.LecternBlockEntity; @@ -138,11 +138,11 @@ public abstract class ValueListDisplaySource extends DisplaySource { private Couple shorten(int number) { if (number >= 1000000) return Couple.create(new TextComponent(String.valueOf(number / 1000000)), - Lang.translateDirect("display_source.value_list.million") + CreateLang.translateDirect("display_source.value_list.million") .append(WHITESPACE)); if (number >= 1000) return Couple.create(new TextComponent(String.valueOf(number / 1000)), - Lang.translateDirect("display_source.value_list.thousand") + CreateLang.translateDirect("display_source.value_list.thousand") .append(WHITESPACE)); return Couple.create(new TextComponent(String.valueOf(number)), WHITESPACE); } @@ -162,8 +162,8 @@ public abstract class ValueListDisplaySource extends DisplaySource { @OnlyIn(Dist.CLIENT) protected void addFullNumberConfig(ModularGuiLineBuilder builder) { builder.addSelectionScrollInput(0, 75, - (si, l) -> si.forOptions(Lang.translatedOptions("display_source.value_list", "shortened", "full_number")) - .titled(Lang.translateDirect("display_source.value_list.display")), + (si, l) -> si.forOptions(CreateLang.translatedOptions("display_source.value_list", "shortened", "full_number")) + .titled(CreateLang.translateDirect("display_source.value_list.display")), "Format"); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/target/DisplayTarget.java b/src/main/java/com/simibubi/create/content/logistics/block/display/target/DisplayTarget.java index 6c1848421..b4542bd80 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/target/DisplayTarget.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/target/DisplayTarget.java @@ -5,7 +5,7 @@ import java.util.List; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.logistics.block.display.DisplayBehaviour; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -32,7 +32,7 @@ public abstract class DisplayTarget extends DisplayBehaviour { } public Component getLineOptionText(int line) { - return Lang.translateDirect("display_target.line", line + 1); + return CreateLang.translateDirect("display_target.line", line + 1); } public static void reserve(int line, BlockEntity target, DisplayLinkContext context) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/target/LecternDisplayTarget.java b/src/main/java/com/simibubi/create/content/logistics/block/display/target/LecternDisplayTarget.java index 9e97bdbee..da2a3dec0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/target/LecternDisplayTarget.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/target/LecternDisplayTarget.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.logistics.block.display.target; import java.util.List; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; @@ -65,7 +65,7 @@ public class LecternDisplayTarget extends DisplayTarget { } public Component getLineOptionText(int line) { - return Lang.translateDirect("display_target.page", line + 1); + return CreateLang.translateDirect("display_target.page", line + 1); } private ItemStack signBook(ItemStack book) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/target/SingleLineDisplayTarget.java b/src/main/java/com/simibubi/create/content/logistics/block/display/target/SingleLineDisplayTarget.java index 0858e5a92..aa327dc87 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/target/SingleLineDisplayTarget.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/target/SingleLineDisplayTarget.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.logistics.block.display.target; import java.util.List; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -14,19 +14,19 @@ public abstract class SingleLineDisplayTarget extends DisplayTarget { public final void acceptText(int line, List text, DisplayLinkContext context) { acceptLine(text.get(0), context); } - + protected abstract void acceptLine(MutableComponent text, DisplayLinkContext context); @Override public final DisplayTargetStats provideStats(DisplayLinkContext context) { return new DisplayTargetStats(1, getWidth(context), this); } - + @Override public Component getLineOptionText(int line) { - return Lang.translateDirect("display_target.single_line"); + return CreateLang.translateDirect("display_target.single_line"); } - + protected abstract int getWidth(DisplayLinkContext context); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java index fcaafeae9..bf1def854 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java @@ -9,10 +9,10 @@ import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VoxelShaper; import com.tterrag.registrate.util.entry.BlockEntry; +import net.createmod.catnip.utility.VoxelShaper; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.StringRepresentable; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index 930da5e2d..f20236d40 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -4,8 +4,8 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.foundation.advancement.AdvancementBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; @@ -63,7 +63,7 @@ public abstract class FunnelBlock extends AbstractDirectionalFunnelBlock { protected void createBlockStateDefinition(Builder builder) { super.createBlockStateDefinition(builder.add(EXTRACTING)); } - + @Override public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java index 2188665cb..109230fa9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java @@ -4,9 +4,9 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java index 24e44245e..3b3b29a72 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelInstance.java @@ -11,8 +11,8 @@ import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.logistics.block.flap.FlapData; import com.simibubi.create.foundation.render.AllMaterialSpecs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; import net.minecraft.world.level.LightLayer; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java index 1e62bf553..08ac338d5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelRenderer.java @@ -9,9 +9,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java index b48342493..350b0e1ff 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java @@ -20,11 +20,11 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -336,7 +336,7 @@ public class FunnelTileEntity extends SmartTileEntity implements IHaveHoveringIn .onFunnelTransfer(level, worldPosition, stack); award(AllAdvancements.FUNNEL); } - + private LerpedFloat createChasingFlap() { return LerpedFloat.linear() .startWithValue(.25f) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java index 5a47eda71..042c7f67b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java @@ -30,8 +30,8 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemS import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmAngleTarget.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmAngleTarget.java index 2181b41ae..7da424500 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmAngleTarget.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmAngleTarget.java @@ -1,8 +1,7 @@ package com.simibubi.create.content.logistics.block.mechanicalArm; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; - +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -25,7 +24,7 @@ public class ArmAngleTarget { } public ArmAngleTarget(BlockPos armPos, Vec3 pointTarget, Direction clawFacing, boolean ceiling) { -// if (ceiling) +// if (ceiling) // clawFacing = clawFacing.getOpposite(); Vec3 target = pointTarget; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java index ab27c8f6a..9ac0a575b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java @@ -14,10 +14,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.util.Mth; @@ -110,7 +111,7 @@ public class ArmInstance extends SingleRotatingInstance implements DynamicInstan int color; if (rave) { - float renderTick = AnimationTickHolder.getRenderTime(this.arm.getLevel()) + (blockEntity.hashCode() % 64); + float renderTick = WorldTickHolder.getRenderTime(this.arm.getLevel()) + (blockEntity.hashCode() % 64); baseAngle = (renderTick * 10) % 360; lowerArmAngle = Mth.lerp((Mth.sin(renderTick / 4) + 1) / 2, -45, 15); upperArmAngle = Mth.lerp((Mth.sin(renderTick / 8) + 1) / 4, -45, 95); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java index b6fe03b8c..cfee2085b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.block.mechanicalArm; import javax.annotation.Nullable; import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java index 91e6724d5..44c5c301a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPointHandler.java @@ -7,11 +7,11 @@ import java.util.List; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmInteractionPoint.Mode; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; @@ -64,8 +64,8 @@ public class ArmInteractionPointHandler { selected.cycleMode(); if (player != null) { Mode mode = selected.getMode(); - Lang.builder() - .translate(mode.getTranslationKey(), Lang.blockName(state) + CreateLang.builder() + .translate(mode.getTranslationKey(), CreateLang.blockName(state) .style(ChatFormatting.WHITE)) .color(mode.getColor()) .sendStatus(player); @@ -104,7 +104,7 @@ public class ArmInteractionPointHandler { LocalPlayer player = Minecraft.getInstance().player; if (removed > 0) { - Lang.builder() + CreateLang.builder() .translate("mechanical_arm.points_outside_range", removed) .style(ChatFormatting.RED) .sendStatus(player); @@ -118,7 +118,7 @@ public class ArmInteractionPointHandler { inputs++; } if (inputs + outputs > 0) - Lang.builder() + CreateLang.builder() .translate("mechanical_arm.summary", inputs, outputs) .style(ChatFormatting.WHITE) .sendStatus(player); @@ -201,7 +201,7 @@ public class ArmInteractionPointHandler { int color = point.getMode() .getColor(); - CreateClient.OUTLINER.showAABB(point, shape.bounds() + CatnipClient.OUTLINER.showAABB(point, shape.bounds() .move(pos)) .colored(color) .lineWidth(1 / 16f); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java index 1baec6fdc..a7b592082 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmRenderer.java @@ -10,10 +10,11 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity.Phase; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -65,7 +66,7 @@ public class ArmRenderer extends KineticTileEntityRenderer { boolean rave = arm.phase == Phase.DANCING && te.getSpeed() != 0; if (rave) { - float renderTick = AnimationTickHolder.getRenderTime(te.getLevel()) + (te.hashCode() % 64); + float renderTick = WorldTickHolder.getRenderTime(te.getLevel()) + (te.hashCode() % 64); baseAngle = (renderTick * 10) % 360; lowerArmAngle = Mth.lerp((Mth.sin(renderTick / 4) + 1) / 2, -45, 15); upperArmAngle = Mth.lerp((Mth.sin(renderTick / 8) + 1) / 4, -45, 95); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java index 8ac68137a..e3f047099 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmTileEntity.java @@ -19,11 +19,13 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; + +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.math.AngleHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -102,7 +104,7 @@ public class ArmTileEntity extends KineticTileEntity implements ITransformableTE super.addBehaviours(behaviours); selectionMode = new ScrollOptionBehaviour(SelectionMode.class, - Lang.translateDirect("logistics.when_multiple_outputs_available"), this, new SelectionModeValueBox()); + CreateLang.translateDirect("logistics.when_multiple_outputs_available"), this, new SelectionModeValueBox()); selectionMode.requiresWrench(); behaviours.add(selectionMode); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverInstance.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverInstance.java index 86a77af8b..3f629a043 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverInstance.java @@ -8,10 +8,10 @@ import com.jozufozu.flywheel.core.materials.model.ModelData; import com.jozufozu.flywheel.util.transform.Rotate; import com.jozufozu.flywheel.util.transform.Translate; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.properties.AttachFace; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java index 8fb88fd82..f8bfb13b4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverRenderer.java @@ -7,9 +7,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java index d7bd93f53..55a19a514 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java @@ -5,10 +5,10 @@ import java.util.List; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -79,7 +79,7 @@ public class AnalogLeverTileEntity extends SmartTileEntity implements IHaveGoggl @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - tooltip.add(componentSpacing.plainCopy().append(Lang.translateDirect("tooltip.analogStrength", this.state))); + tooltip.add(componentSpacing.plainCopy().append(CreateLang.translateDirect("tooltip.analogStrength", this.state))); return true; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java index 17dd8134a..d0005a7bb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java @@ -13,8 +13,8 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; @@ -163,7 +163,7 @@ public class ContentObserverBlock extends HorizontalDirectionalBlock implements public Class getTileEntityClass() { return ContentObserverTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.CONTENT_OBSERVER.get(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java index 7d2dc71a2..363b1d0b1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java @@ -12,8 +12,8 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBe import com.simibubi.create.foundation.tileEntity.behaviour.inventory.CapManipulationBehaviourBase.InterfaceProvider; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.TankManipulationBehaviour; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java index b7436efe0..08921f17a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.block.redstone; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java index 6d72a9c41..197c188d8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java @@ -13,7 +13,7 @@ import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeRenderer.java index 4428908fa..278399247 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeRenderer.java @@ -9,12 +9,13 @@ import com.simibubi.create.content.logistics.block.redstone.DoubleFaceAttachedBl import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.RenderTypes; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.catnip.utility.Couple; import com.simibubi.create.foundation.utility.DyeHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.ponder.utility.WorldTickHolder; + +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; @@ -143,7 +144,7 @@ public class NixieTubeRenderer extends SafeTileEntityRenderer getTileEntityClass() { return RedstoneLinkTileEntity.class; } - + @Override public BlockEntityType getTileEntityType() { return AllTileEntities.REDSTONE_LINK.get(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkFrequencySlot.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkFrequencySlot.java index e3a9526e5..df07b1df0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkFrequencySlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkFrequencySlot.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.block.redstone; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RoseQuartzLampBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RoseQuartzLampBlock.java index 9046030db..340c9c363 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RoseQuartzLampBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RoseQuartzLampBlock.java @@ -9,8 +9,8 @@ import java.util.function.BiConsumer; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.content.logistics.block.diodes.BrassDiodeBlock; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchBlock.java index 8b28fab10..7e7250a11 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchBlock.java @@ -7,9 +7,9 @@ import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchScreen.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchScreen.java index f6b26b01c..cc642d4c0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchScreen.java @@ -3,17 +3,17 @@ package com.simibubi.create.content.logistics.block.redstone; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.logistics.packet.ConfigureStockswitchPacket; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; @@ -25,7 +25,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { private IconButton confirmButton; private IconButton flipSignals; - private final Component invertSignal = Lang.translateDirect("gui.stockpile_switch.invert_signal"); + private final Component invertSignal = CreateLang.translateDirect("gui.stockpile_switch.invert_signal"); private final ItemStack renderedItem = new ItemStack(AllBlocks.STOCKPILE_SWITCH.get()); private AllGuiTextures background; @@ -36,7 +36,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { private LerpedFloat cursorLane; public StockpileSwitchScreen(StockpileSwitchTileEntity te) { - super(Lang.translateDirect("gui.stockpile_switch.title")); + super(CreateLang.translateDirect("gui.stockpile_switch.title")); background = AllGuiTextures.STOCKSWITCH; this.te = te; lastModification = -1; @@ -44,7 +44,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); setWindowOffset(-20, 0); super.init(); @@ -60,7 +60,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { .titled(TextComponent.EMPTY.plainCopy()) .calling(state -> { lastModification = 0; - offBelow.titled(Lang.translateDirect("gui.stockpile_switch.move_to_upper_at", state)); + offBelow.titled(CreateLang.translateDirect("gui.stockpile_switch.move_to_upper_at", state)); if (onAbove.getState() <= state) { onAbove.setState(state + 1); onAbove.onChanged(); @@ -72,7 +72,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { .titled(TextComponent.EMPTY.plainCopy()) .calling(state -> { lastModification = 0; - onAbove.titled(Lang.translateDirect("gui.stockpile_switch.move_to_lower_at", state)); + onAbove.titled(CreateLang.translateDirect("gui.stockpile_switch.move_to_lower_at", state)); if (offBelow.getState() >= state) { offBelow.setState(state - 1); offBelow.onChanged(); @@ -87,7 +87,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { addRenderableWidget(offBelow); confirmButton = - new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { onClose(); }); @@ -110,16 +110,16 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { AllGuiTextures.STOCKSWITCH_POWERED_LANE.render(ms, x + 36, y + (te.isInverted() ? 18 : 40), this); AllGuiTextures.STOCKSWITCH_UNPOWERED_LANE.render(ms, x + 36, y + (te.isInverted() ? 40 : 18), this); - drawCenteredString(ms, font, title, x + (background.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (background.getWidth() - 8) / 2, y + 3, 0xFFFFFF); AllGuiTextures sprite = AllGuiTextures.STOCKSWITCH_INTERVAL; float lowerBound = offBelow.getState(); float upperBound = onAbove.getState(); sprite.bind(); - blit(ms, (int) (x + upperBound) + 37, y + 18, (int) (sprite.startX + upperBound), sprite.startY, - (int) (sprite.width - upperBound), sprite.height); - blit(ms, x + 37, y + 40, sprite.startX, sprite.startY, (int) (lowerBound), sprite.height); + blit(ms, (int) (x + upperBound) + 37, y + 18, (int) (sprite.getStartX() + upperBound), sprite.getStartY(), + (int) (sprite.getWidth() - upperBound), sprite.getHeight()); + blit(ms, x + 37, y + 40, sprite.getStartX(), sprite.getStartY(), (int) (lowerBound), sprite.getHeight()); AllGuiTextures.STOCKSWITCH_ARROW_UP.render(ms, (int) (x + lowerBound + 36) - 2, y + 35, this); AllGuiTextures.STOCKSWITCH_ARROW_DOWN.render(ms, (int) (x + upperBound + 36) - 3, y + 17, this); @@ -127,14 +127,14 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { if (te.currentLevel != -1) { AllGuiTextures cursor = AllGuiTextures.STOCKSWITCH_CURSOR; ms.pushPose(); - ms.translate(Math.min(99, this.cursor.getValue(partialTicks) * sprite.width), + ms.translate(Math.min(99, this.cursor.getValue(partialTicks) * sprite.getWidth()), cursorLane.getValue(partialTicks) * 22, 0); cursor.render(ms, x + 34, y + 19, this); ms.popPose(); } GuiGameElement.of(renderedItem) - .at(x + background.width + 6, y + background.height - 56, -200) + .at(x + background.getWidth() + 6, y + background.getHeight() - 56, -200) .scale(5) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/vault/ItemVaultItem.java b/src/main/java/com/simibubi/create/content/logistics/block/vault/ItemVaultItem.java index fdd76e9bd..cdb33430d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/vault/ItemVaultItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/vault/ItemVaultItem.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.logistics.block.vault; import com.simibubi.create.AllTileEntities; import com.simibubi.create.api.connectivity.ConnectivityHandler; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LecternControllerRenderer.java b/src/main/java/com/simibubi/create/content/logistics/item/LecternControllerRenderer.java index d56a6ac3d..b9841c9cd 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LecternControllerRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LecternControllerRenderer.java @@ -5,8 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerClientHandler.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerClientHandler.java index 25ea8591d..8938e7fd1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerClientHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerClientHandler.java @@ -13,14 +13,14 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllSoundEvents; -import com.simibubi.create.CreateClient; -import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkBehaviour; import com.simibubi.create.foundation.utility.ControlsUtil; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; @@ -187,7 +187,7 @@ public class LinkedControllerClientHandler { VoxelShape shape = mc.level.getBlockState(selectedLocation) .getShape(mc.level, selectedLocation); if (!shape.isEmpty()) - CreateClient.OUTLINER.showAABB("controller", shape.bounds() + CatnipClient.OUTLINER.showAABB("controller", shape.bounds() .move(selectedLocation)) .colored(0xB73C2D) .lineWidth(1 / 16f); @@ -196,7 +196,7 @@ public class LinkedControllerClientHandler { LinkBehaviour linkBehaviour = TileEntityBehaviour.get(mc.level, selectedLocation, LinkBehaviour.TYPE); if (linkBehaviour != null) { AllPackets.channel.sendToServer(new LinkedControllerBindPacket(integer, selectedLocation)); - Lang.translate("linked_controller.key_bound", controls.get(integer) + CreateLang.translate("linked_controller.key_bound", controls.get(integer) .getTranslatedKeyMessage() .getString()) .sendStatus(mc.player); @@ -233,9 +233,9 @@ public class LinkedControllerClientHandler { } List list = new ArrayList<>(); - list.add(Lang.translateDirect("linked_controller.bind_mode") + list.add(CreateLang.translateDirect("linked_controller.bind_mode") .withStyle(ChatFormatting.GOLD)); - list.addAll(TooltipHelper.cutTextComponent(Lang.translateDirect("linked_controller.press_keybind", keys), + list.addAll(FontHelper.cutTextComponent(CreateLang.translateDirect("linked_controller.press_keybind", keys), ChatFormatting.GRAY, ChatFormatting.GRAY)); int width = 0; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItem.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItem.java index 9b3ae02e7..6a6d65910 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItem.java @@ -7,8 +7,8 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItemRenderer.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItemRenderer.java index 76cf1d624..8746f7b68 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerItemRenderer.java @@ -8,10 +8,10 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.item.LinkedControllerClientHandler.Mode; import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer; import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerScreen.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerScreen.java index 5436e38af..97aaabf2e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerScreen.java @@ -11,11 +11,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.utility.ControlsUtil; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.ChatFormatting; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; @@ -37,19 +37,19 @@ public class LinkedControllerScreen extends AbstractSimiContainerScreen { menu.clearContents(); menu.sendClearPacket(); }); - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { minecraft.player.closeContainer(); }); @@ -57,13 +57,13 @@ public class LinkedControllerScreen extends AbstractSimiContainerScreenat(x + background.width - 4, y + background.height - 56, -200) + .GuiRenderBuilder>at(x + background.getWidth() - 4, y + background.getHeight() - 56, -200) .scale(5) .render(ms); } @@ -109,7 +109,7 @@ public class LinkedControllerScreen extends AbstractSimiContainerScreen addToTooltip(List list, int slot) { if (slot < 0 || slot >= 12) return list; - list.add(Lang.translateDirect("linked_controller.frequency_slot_" + ((slot % 2) + 1), ControlsUtil.getControls() + list.add(CreateLang.translateDirect("linked_controller.frequency_slot_" + ((slot % 2) + 1), ControlsUtil.getControls() .get(slot / 2) .getTranslatedKeyMessage() .getString()) diff --git a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerServerHandler.java b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerServerHandler.java index 56962c1c5..3c4fdba4c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerServerHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/LinkedControllerServerHandler.java @@ -14,10 +14,10 @@ import com.simibubi.create.content.logistics.IRedstoneLinkable; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkBehaviour; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.BlockPos; import net.minecraft.world.level.LevelAccessor; @@ -73,8 +73,8 @@ public class LinkedControllerServerHandler { ManualFrequencyEntry entry = new ManualFrequencyEntry(pos, activated); Create.REDSTONE_LINK_NETWORK_HANDLER.addToNetwork(world, entry); list.add(entry); - - for (IRedstoneLinkable linkable : Create.REDSTONE_LINK_NETWORK_HANDLER.getNetworkOf(world, entry)) + + for (IRedstoneLinkable linkable : Create.REDSTONE_LINK_NETWORK_HANDLER.getNetworkOf(world, entry)) if (linkable instanceof LinkBehaviour lb && lb.isListening()) AllAdvancements.LINKED_CONTROLLER.awardTo(world.getPlayerByUUID(uniqueID)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/AbstractFilterScreen.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/AbstractFilterScreen.java index f06e71732..a145db03f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/AbstractFilterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/AbstractFilterScreen.java @@ -12,7 +12,6 @@ import com.simibubi.create.content.logistics.item.filter.FilterScreenPacket.Opti import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Indicator; import com.simibubi.create.foundation.gui.widget.Indicator.State; @@ -20,6 +19,8 @@ import com.simibubi.create.foundation.item.ItemDescription.Palette; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -40,19 +41,19 @@ public abstract class AbstractFilterScreen ex @Override protected void init() { - setWindowSize(Math.max(background.width, PLAYER_INVENTORY.width), background.height + 4 + PLAYER_INVENTORY.height); + setWindowSize(Math.max(background.getWidth(), PLAYER_INVENTORY.getWidth()), background.getHeight() + 4 + PLAYER_INVENTORY.getHeight()); super.init(); int x = leftPos; int y = topPos; - resetButton = new IconButton(x + background.width - 62, y + background.height - 24, AllIcons.I_TRASH); + resetButton = new IconButton(x + background.getWidth() - 62, y + background.getHeight() - 24, AllIcons.I_TRASH); resetButton.withCallback(() -> { menu.clearContents(); contentsCleared(); menu.sendClearPacket(); }); - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { minecraft.player.closeContainer(); }); @@ -61,24 +62,24 @@ public abstract class AbstractFilterScreen ex addRenderableWidget(confirmButton); extraAreas = ImmutableList.of( - new Rect2i(x + background.width, y + background.height - 40, 80, 48) + new Rect2i(x + background.getWidth(), y + background.getHeight() - 40, 80, 48) ); } @Override protected void renderBg(PoseStack ms, float partialTicks, int mouseX, int mouseY) { - int invX = getLeftOfCentered(PLAYER_INVENTORY.width); - int invY = topPos + background.height + 4; + int invX = getLeftOfCentered(PLAYER_INVENTORY.getWidth()); + int invY = topPos + background.getHeight() + 4; renderPlayerInventory(ms, invX, invY); int x = leftPos; int y = topPos; background.render(ms, x, y, this); - drawCenteredString(ms, font, title, x + (background.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (background.getWidth() - 8) / 2, y + 3, 0xFFFFFF); GuiGameElement.of(menu.contentHolder) - .at(x + background.width, y + background.height - 56, -200) + .at(x + background.getWidth(), y + background.getHeight() - 56, -200) .scale(5) .render(ms); } @@ -142,7 +143,7 @@ public abstract class AbstractFilterScreen ex if (!button.isHoveredOrFocused()) return; List tip = button.getToolTip(); - tip.addAll(TooltipHelper.cutTextComponent(tooltip, GRAY, GRAY)); + tip.addAll(FontHelper.cutTextComponent(tooltip, GRAY, GRAY)); } protected void contentsCleared() {} diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java index 2ab82ce70..1f7fa4db2 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterContainer.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.simibubi.create.AllContainerTypes; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java index fb5488ccb..394721315 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java @@ -15,8 +15,8 @@ import com.simibubi.create.foundation.gui.widget.Indicator; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; @@ -30,19 +30,19 @@ public class AttributeFilterScreen extends AbstractFilterScreen 3) { @@ -111,10 +111,10 @@ public class FilterItem extends Item implements MenuProvider { WhitelistMode whitelistMode = WhitelistMode.values()[filter.getOrCreateTag() .getInt("WhitelistMode")]; list.add((whitelistMode == WhitelistMode.WHITELIST_CONJ - ? Lang.translateDirect("gui.attribute_filter.allow_list_conjunctive") + ? CreateLang.translateDirect("gui.attribute_filter.allow_list_conjunctive") : whitelistMode == WhitelistMode.WHITELIST_DISJ - ? Lang.translateDirect("gui.attribute_filter.allow_list_disjunctive") - : Lang.translateDirect("gui.attribute_filter.deny_list")).withStyle(ChatFormatting.GOLD)); + ? CreateLang.translateDirect("gui.attribute_filter.allow_list_disjunctive") + : CreateLang.translateDirect("gui.attribute_filter.deny_list")).withStyle(ChatFormatting.GOLD)); int count = 0; ListTag attributes = filter.getOrCreateTag() diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreen.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreen.java index 9bae5a3e6..623bac7ba 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/FilterScreen.java @@ -8,7 +8,7 @@ import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Indicator; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -19,15 +19,15 @@ public class FilterScreen extends AbstractFilterScreen { private static final String PREFIX = "gui.filter."; - private Component allowN = Lang.translateDirect(PREFIX + "allow_list"); - private Component allowDESC = Lang.translateDirect(PREFIX + "allow_list.description"); - private Component denyN = Lang.translateDirect(PREFIX + "deny_list"); - private Component denyDESC = Lang.translateDirect(PREFIX + "deny_list.description"); + private Component allowN = CreateLang.translateDirect(PREFIX + "allow_list"); + private Component allowDESC = CreateLang.translateDirect(PREFIX + "allow_list.description"); + private Component denyN = CreateLang.translateDirect(PREFIX + "deny_list"); + private Component denyDESC = CreateLang.translateDirect(PREFIX + "deny_list.description"); - private Component respectDataN = Lang.translateDirect(PREFIX + "respect_data"); - private Component respectDataDESC = Lang.translateDirect(PREFIX + "respect_data.description"); - private Component ignoreDataN = Lang.translateDirect(PREFIX + "ignore_data"); - private Component ignoreDataDESC = Lang.translateDirect(PREFIX + "ignore_data.description"); + private Component respectDataN = CreateLang.translateDirect(PREFIX + "respect_data"); + private Component respectDataDESC = CreateLang.translateDirect(PREFIX + "respect_data.description"); + private Component ignoreDataN = CreateLang.translateDirect(PREFIX + "ignore_data"); + private Component ignoreDataDESC = CreateLang.translateDirect(PREFIX + "ignore_data.description"); private IconButton whitelist, blacklist; private IconButton respectNBT, ignoreNBT; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java index a5353d6a7..9fdb6c9c0 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java @@ -24,8 +24,9 @@ import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryAttunementAttribute; import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryCrystalAttribute; import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryPerkGemAttribute; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; @@ -122,7 +123,7 @@ public interface ItemAttribute { @OnlyIn(value = Dist.CLIENT) default TranslatableComponent format(boolean inverted) { - return Lang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), + return CreateLang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), getTranslationParameters()); } @@ -300,7 +301,7 @@ public interface ItemAttribute { @Override @OnlyIn(value = Dist.CLIENT) public TranslatableComponent format(boolean inverted) { - return Lang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), + return CreateLang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), group.getDisplayName()); } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/ShulkerFillLevelAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/ShulkerFillLevelAttribute.java index 86fca30e0..acc594a16 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/ShulkerFillLevelAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/ShulkerFillLevelAttribute.java @@ -8,7 +8,7 @@ import java.util.stream.Collectors; import javax.annotation.Nullable; import com.simibubi.create.content.logistics.item.filter.ItemAttribute; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; @@ -48,7 +48,7 @@ public class ShulkerFillLevelAttribute implements ItemAttribute { public Object[] getTranslationParameters() { String parameter = ""; if (levels != null) - parameter = Lang.translateDirect("item_attributes." + getTranslationKey() + "." + levels.key).getString(); + parameter = CreateLang.translateDirect("item_attributes." + getTranslationKey() + "." + levels.key).getString(); return new Object[]{parameter}; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/BezierConnection.java b/src/main/java/com/simibubi/create/content/logistics/trains/BezierConnection.java index 5c543536d..ff3eb942c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/BezierConnection.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/BezierConnection.java @@ -7,10 +7,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack.Pose; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.logistics.trains.track.TrackRenderer; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.BlockParticleOption; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/CameraDistanceModifier.java b/src/main/java/com/simibubi/create/content/logistics/trains/CameraDistanceModifier.java index ce02689f2..dc289fc8b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/CameraDistanceModifier.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/CameraDistanceModifier.java @@ -1,7 +1,8 @@ package com.simibubi.create.content.logistics.trains; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; + +import net.createmod.catnip.utility.animation.LerpedFloat; public class CameraDistanceModifier { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/DimensionPalette.java b/src/main/java/com/simibubi/create/content/logistics/trains/DimensionPalette.java index 8ab827f42..381d9b66b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/DimensionPalette.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/DimensionPalette.java @@ -3,8 +3,7 @@ package com.simibubi.create.content.logistics.trains; import java.util.ArrayList; import java.util.List; -import com.simibubi.create.foundation.utility.NBTHelper; - +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.Registry; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/GraphLocation.java b/src/main/java/com/simibubi/create/content/logistics/trains/GraphLocation.java index e64513743..6dc5519c7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/GraphLocation.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/GraphLocation.java @@ -1,11 +1,11 @@ package com.simibubi.create.content.logistics.trains; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; public class GraphLocation { - + public TrackGraph graph; public Couple edge; public double position; - -} \ No newline at end of file + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/ITrackBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/ITrackBlock.java index 33946c2a5..e3e0b4680 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/ITrackBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/ITrackBlock.java @@ -15,9 +15,9 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTa import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation; import com.simibubi.create.content.logistics.trains.track.TrackBlock; import com.simibubi.create.content.logistics.trains.track.TrackShape; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; @@ -97,7 +97,7 @@ public interface ITrackBlock { firstLocation.forceNode(); secondLocation.forceNode(); } - + boolean skipFirst = false; boolean skipSecond = false; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/RailwaySavedData.java b/src/main/java/com/simibubi/create/content/logistics/trains/RailwaySavedData.java index a5b2c1fb3..dfdad12b9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/RailwaySavedData.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/RailwaySavedData.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePointType; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalBoundary; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroup; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.server.MinecraftServer; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackEdge.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackEdge.java index d5e3affe0..61078a299 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackEdge.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackEdge.java @@ -6,8 +6,8 @@ import java.util.Collections; import com.google.common.collect.ImmutableList; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraph.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraph.java index 897713e94..eee486596 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraph.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraph.java @@ -28,12 +28,12 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePoi import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackEdgeIntersection; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroup; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphHelper.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphHelper.java index 8400d1501..b49ef2e78 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphHelper.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphHelper.java @@ -10,8 +10,8 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.TrackNodeLocation.DiscoveredLocation; import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation; import com.simibubi.create.content.logistics.trains.track.TrackTileEntity; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.world.level.Level; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSync.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSync.java index 2c52fe585..527b3d01d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSync.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSync.java @@ -15,9 +15,9 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.signal. import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroupPacket; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.PacketDistributor; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSyncPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSyncPacket.java index 33e5e0790..442e9da8e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSyncPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphSyncPacket.java @@ -12,10 +12,10 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePointType; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.phys.Vec3; @@ -268,4 +268,4 @@ public class TrackGraphSyncPacket extends TrackGraphPacket { updatedEdgeData.put(key, Pair.of(groupType, list)); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphVisualizer.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphVisualizer.java index e82b7ec16..ab5195d67 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphVisualizer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackGraphVisualizer.java @@ -9,15 +9,15 @@ import org.lwjgl.glfw.GLFW; import com.simibubi.create.AllKeys; import com.simibubi.create.Create; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalBoundary; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroup; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.outliner.Outliner; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.outliner.Outliner; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.AABB; @@ -36,7 +36,7 @@ public class TrackGraphVisualizer { return; Vec3 camera = cameraEntity.getEyePosition(); - Outliner outliner = CreateClient.OUTLINER; + Outliner outliner = CatnipClient.OUTLINER; boolean ctrl = false; // AllKeys.isKeyDown(GLFW.GLFW_KEY_LEFT_CONTROL); Map allGroups = Create.RAILWAYS.sided(null).signalEdgeGroups; float width = 1 / 8f; @@ -235,7 +235,7 @@ public class TrackGraphVisualizer { Vec3 yOffset = new Vec3(0, 3 / 16f, 0); Vec3 v1 = location.add(yOffset); Vec3 v2 = v1.add(node.normal.scale(3 / 16f)); - CreateClient.OUTLINER.showLine(Integer.valueOf(node.netId), v1, v2) + CatnipClient.OUTLINER.showLine(Integer.valueOf(node.netId), v1, v2) .colored(Color.mixColors(Color.WHITE, graph.color, 1)) .lineWidth(1 / 8f); @@ -251,7 +251,7 @@ public class TrackGraphVisualizer { if (!edge.node1.location.dimension.equals(edge.node2.location.dimension)) { v1 = location.add(yOffset); v2 = v1.add(node.normal.scale(3 / 16f)); - CreateClient.OUTLINER.showLine(Integer.valueOf(node.netId), v1, v2) + CatnipClient.OUTLINER.showLine(Integer.valueOf(node.netId), v1, v2) .colored(Color.mixColors(Color.WHITE, graph.color, 1)) .lineWidth(1 / 4f); continue; @@ -261,7 +261,7 @@ public class TrackGraphVisualizer { yOffset = new Vec3(0, (other.hashCode() > hashCode ? 6 : 4) / 16f, 0); if (!edge.isTurn()) { - CreateClient.OUTLINER.showLine(edge, edge.getPosition(0) + CatnipClient.OUTLINER.showLine(edge, edge.getPosition(0) .add(yOffset), edge.getPosition(1) .add(yOffset)) @@ -275,7 +275,7 @@ public class TrackGraphVisualizer { for (int i = 0; i <= turn.getSegmentCount(); i++) { Vec3 current = edge.getPosition(i * 1f / turn.getSegmentCount()); if (previous != null) - CreateClient.OUTLINER + CatnipClient.OUTLINER .showLine(Pair.of(edge, previous), previous.add(yOffset), current.add(yOffset)) .colored(graph.color) .lineWidth(1 / 16f); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/TrackNodeLocation.java b/src/main/java/com/simibubi/create/content/logistics/trains/TrackNodeLocation.java index 4ad5c089d..944bd87ff 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/TrackNodeLocation.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/TrackNodeLocation.java @@ -5,8 +5,7 @@ import java.util.HashSet; import java.util.Objects; import java.util.Set; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.nbt.CompoundTag; @@ -58,7 +57,7 @@ public class TrackNodeLocation extends Vec3i { return equalsIgnoreDim(pOther) && pOther instanceof TrackNodeLocation tnl && Objects.equals(tnl.dimension, dimension); } - + public boolean equalsIgnoreDim(Object pOther) { return super.equals(pOther); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java index f96bace94..2c3400ce3 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java @@ -12,8 +12,8 @@ import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.contraptions.components.steam.whistle.WhistleBlock; import com.simibubi.create.content.contraptions.components.steam.whistle.WhistleBlock.WhistleSize; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyInstance.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyInstance.java index 9a8a6c9c1..3a1df6007 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyInstance.java @@ -9,9 +9,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockAndTintGetter; @@ -44,7 +44,7 @@ public sealed class BogeyInstance { public void hiddenFrame() { beginFrame(0, null); } - + public void beginFrame(float wheelAngle, PoseStack ms) { if (ms == null) { for (int i : Iterate.zeroAndOne) diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Carriage.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Carriage.java index 43fbb12ee..d6620f222 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Carriage.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Carriage.java @@ -26,11 +26,11 @@ import com.simibubi.create.content.logistics.trains.TrackNodeLocation; import com.simibubi.create.content.logistics.trains.entity.TravellingPoint.IEdgePointListener; import com.simibubi.create.content.logistics.trains.entity.TravellingPoint.ITrackSelector; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; @@ -124,7 +124,7 @@ public class Carriage { boolean onTwoBogeys = isOnTwoBogeys(); double stress = train.derailed ? 0 : onTwoBogeys ? bogeySpacing - getAnchorDiff() : 0; blocked = false; - + MutableDouble distanceMoved = new MutableDouble(distance); boolean iterateFromBack = distance < 0; @@ -136,7 +136,7 @@ public class Carriage { CarriageBogey bogey = bogeys.get(actuallyFirstBogey); double bogeyCorrection = stress * (actuallyFirstBogey ? 0.5d : -0.5d); double bogeyStress = bogey.getStress(); - + for (boolean firstWheel : Iterate.trueAndFalse) { boolean actuallyFirstWheel = firstWheel ^ iterateFromBack; TravellingPoint point = bogey.points.get(actuallyFirstWheel); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageBogey.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageBogey.java index be80158df..f09df4682 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageBogey.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageBogey.java @@ -7,12 +7,12 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.DimensionPalette; import com.simibubi.create.content.logistics.trains.IBogeyBlock; import com.simibubi.create.content.logistics.trains.TrackGraph; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction.Axis; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraption.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraption.java index ad2396191..c0ea4b272 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraption.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraption.java @@ -23,12 +23,12 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.logistics.trains.IBogeyBlock; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -71,7 +71,7 @@ public class CarriageContraption extends Contraption { // render public int portalCutoffMin; public int portalCutoffMax; - + static final IItemHandlerModifiable fallbackItems = new ItemStackHandler(); static final IFluidHandler fallbackFluids = new FluidTank(0); @@ -104,9 +104,9 @@ public class CarriageContraption extends Contraption { if (bogeys == 0) return false; if (bogeys > 2) - throw new AssemblyException(Lang.translateDirect("train_assembly.too_many_bogeys", bogeys)); + throw new AssemblyException(CreateLang.translateDirect("train_assembly.too_many_bogeys", bogeys)); if (sidewaysControls) - throw new AssemblyException(Lang.translateDirect("train_assembly.sideways_controls")); + throw new AssemblyException(CreateLang.translateDirect("train_assembly.sideways_controls")); for (BlockPos blazePos : assembledBlazeBurners) for (Direction direction : Iterate.directionsInAxis(assemblyDirection.getAxis())) @@ -235,7 +235,7 @@ public class CarriageContraption extends Contraption { protected MountedStorageManager getStorageForSpawnPacket() { return storageProxy; } - + @Override protected ContraptionType getType() { return ContraptionType.CARRIAGE; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java index b4e0a7fea..e2aa26d0f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java @@ -26,11 +26,11 @@ import com.simibubi.create.content.logistics.trains.entity.TravellingPoint.Steer import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -532,7 +532,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { @Override public Component getDisplayName() { if (carriage == null) - return Lang.translateDirect("train"); + return CreateLang.translateDirect("train"); return carriage.train.name; } @@ -591,7 +591,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { boolean spaceDown = heldControls.contains(4); GlobalStation currentStation = carriage.train.getCurrentStation(); if (currentStation != null && spaceDown) { - sendPrompt(player, Lang.translateDirect("train.arrived_at", + sendPrompt(player, CreateLang.translateDirect("train.arrived_at", new TextComponent(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); return true; } @@ -603,7 +603,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { if (currentStation != null && targetSpeed != 0) { stationMessage = false; - sendPrompt(player, Lang.translateDirect("train.departing_from", + sendPrompt(player, CreateLang.translateDirect("train.departing_from", new TextComponent(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); } @@ -683,7 +683,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { boolean stationMessage = false; private void displayApproachStationMessage(Player player, GlobalStation station) { - sendPrompt(player, Lang.translateDirect("contraption.controls.approach_station", + sendPrompt(player, CreateLang.translateDirect("contraption.controls.approach_station", new KeybindComponent("key.jump"), station.name), false); stationMessage = true; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionInstance.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionInstance.java index 4d18e2525..f6252724f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionInstance.java @@ -7,8 +7,9 @@ import com.jozufozu.flywheel.util.AnimationTickHolder; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; + +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; public class CarriageContraptionInstance extends EntityInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java index f67a86798..47a4bd0d6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java @@ -8,9 +8,9 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java index be2e6fe41..d7ec1b9b8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java @@ -3,11 +3,11 @@ package com.simibubi.create.content.logistics.trains.entity; import java.util.Random; import com.simibubi.create.content.logistics.trains.entity.Carriage.DimensionalCarriageEntity; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java index 6d109d1ad..fe1a1e1e6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.trains.entity; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllSoundEvents.SoundEntry; import com.simibubi.create.content.logistics.trains.entity.Carriage.DimensionalCarriageEntity; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; import net.minecraft.sounds.SoundEvent; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSyncData.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSyncData.java index 1cf7226cb..ebc17c5bf 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSyncData.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSyncData.java @@ -18,11 +18,11 @@ import com.simibubi.create.content.logistics.trains.TrackGraph; import com.simibubi.create.content.logistics.trains.TrackNode; import com.simibubi.create.content.logistics.trains.entity.Carriage.DimensionalCarriageEntity; import com.simibubi.create.content.logistics.trains.entity.TravellingPoint.ITrackSelector; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.util.Mth; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Navigation.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Navigation.java index dfba07f87..73090dbcd 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Navigation.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Navigation.java @@ -31,10 +31,10 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.signal. import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroup; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; @@ -251,7 +251,7 @@ public class Navigation { return; } } - + topSpeed *= train.throttle; double turnTopSpeed = Math.min(topSpeed, train.maxTurnSpeed()); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java index 148c06159..9c38a7153 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java @@ -47,13 +47,13 @@ import com.simibubi.create.content.logistics.trains.management.schedule.Schedule import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -125,7 +125,7 @@ public class Train { public int honkPitch; public float accumulatedSteamRelease; - + int tickOffset; double[] stress; @@ -142,7 +142,7 @@ public class Train { this.carriageSpacing = carriageSpacing; this.icon = TrainIconType.getDefault(); this.stress = new double[carriageSpacing.size()]; - this.name = Lang.translateDirect("train.unnamed"); + this.name = CreateLang.translateDirect("train.unnamed"); this.status = new TrainStatus(this); this.doubleEnded = doubleEnded; @@ -315,7 +315,7 @@ public class Train { entries++; } } - + if (entries > 0) actual = total / entries; @@ -372,7 +372,7 @@ public class Train { toFollowBackward == null ? navigation::control : mp -> mp.follow(toFollowBackward); double totalStress = derailed ? 0 : leadingStress + trailingStress; - + boolean first = i == 0; boolean last = i == carriageCount - 1; int carriageType = first ? last ? Carriage.BOTH : Carriage.FIRST : last ? Carriage.LAST : Carriage.MIDDLE; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainMigration.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainMigration.java index 31185549e..e2069fb4c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainMigration.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainMigration.java @@ -8,9 +8,9 @@ import com.simibubi.create.content.logistics.trains.TrackEdge; import com.simibubi.create.content.logistics.trains.TrackGraph; import com.simibubi.create.content.logistics.trains.TrackNode; import com.simibubi.create.content.logistics.trains.TrackNodeLocation; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.util.Mth; @@ -118,4 +118,4 @@ public class TrainMigration { return trainMigration; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java index fc180a458..30da25564 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainPacket.java @@ -9,9 +9,9 @@ import java.util.function.Supplier; import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.trains.IBogeyBlock; import com.simibubi.create.foundation.networking.SimplePacketBase; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java index 614ec29a3..36c6b4a4d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocationPacket.java @@ -8,9 +8,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; @@ -96,7 +96,7 @@ public class TrainRelocationPacket extends SimplePacketBase { } if (TrainRelocator.relocate(train, sender.level, pos, hoveredBezier, direction, lookAngle, false)) { - sender.displayClientMessage(Lang.translateDirect("train.relocate.success") + sender.displayClientMessage(CreateLang.translateDirect("train.relocate.success") .withStyle(ChatFormatting.GREEN), true); train.carriages.forEach(c -> c.forEachPresentEntity(e -> { e.nonDamageTicks = 10; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocator.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocator.java index 838a536cc..773934f74 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocator.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainRelocator.java @@ -14,7 +14,6 @@ import org.apache.commons.lang3.mutable.MutableInt; import com.simibubi.create.AllItems; import com.simibubi.create.Create; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandlerClient; import com.simibubi.create.content.logistics.trains.GraphLocation; @@ -32,10 +31,11 @@ import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline; import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline.BezierPointSelection; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; @@ -85,7 +85,7 @@ public class TrainRelocator { if (!player.position() .closerThan(relocatingOrigin, 24) || player.isSteppingCarefully()) { relocatingTrain = null; - player.displayClientMessage(Lang.translateDirect("train.relocate.abort") + player.displayClientMessage(CreateLang.translateDirect("train.relocate.abort") .withStyle(ChatFormatting.RED), true); return; } @@ -119,7 +119,7 @@ public class TrainRelocator { for (int i = 0; i < toVisualise.size() - 1; i++) { Vec3 vec1 = toVisualise.get(i); Vec3 vec2 = toVisualise.get(i + 1); - CreateClient.OUTLINER.showLine(Pair.of(relocating, i), vec1.add(0, -.925f, 0), vec2.add(0, -.925f, 0)) + CatnipClient.OUTLINER.showLine(Pair.of(relocating, i), vec1.add(0, -.925f, 0), vec2.add(0, -.925f, 0)) .colored(lastHoveredResult || i != toVisualise.size() - 2 ? 0x95CD41 : 0xEA5C2B) .disableNormals() .lineWidth(i % 2 == 1 ? 1 / 6f : 1 / 4f); @@ -150,7 +150,7 @@ public class TrainRelocator { boolean direction = bezierSelection != null && lookAngle.dot(bezierSelection.direction()) < 0; boolean result = relocate(relocating, mc.level, blockPos, hoveredBezier, direction, lookAngle, true); if (!simulate && result) { - relocating.carriages.forEach(c -> c.forEachPresentEntity(e -> e.nonDamageTicks = 10)); + relocating.carriages.forEach(c -> c.forEachPresentEntity(e -> e.nonDamageTicks = 10)); AllPackets.channel.sendToServer(new TrainRelocationPacket(relocatingTrain, blockPos, hoveredBezier, direction, lookAngle, relocatingEntityId)); } @@ -267,7 +267,7 @@ public class TrainRelocator { @OnlyIn(Dist.CLIENT) public static void visualise(Train train, int i, Vec3 v1, Vec3 v2, boolean valid) { - CreateClient.OUTLINER.showLine(Pair.of(train, i), v1.add(0, -.825f, 0), v2.add(0, -.825f, 0)) + CatnipClient.OUTLINER.showLine(Pair.of(train, i), v1.add(0, -.825f, 0), v2.add(0, -.825f, 0)) .colored(valid ? 0x95CD41 : 0xEA5C2B) .disableNormals() .lineWidth(i % 2 == 1 ? 1 / 6f : 1 / 4f); @@ -296,14 +296,14 @@ public class TrainRelocator { if (entity instanceof AbstractContraptionEntity ce && Math.abs(ce.getPosition(0) .subtract(ce.getPosition(1)) .lengthSqr()) > 1 / 1024d) { - player.displayClientMessage(Lang.translateDirect("train.cannot_relocate_moving") + player.displayClientMessage(CreateLang.translateDirect("train.cannot_relocate_moving") .withStyle(ChatFormatting.RED), true); relocatingTrain = null; return; } if (!AllItems.WRENCH.isIn(player.getMainHandItem())) { - player.displayClientMessage(Lang.translateDirect("train.relocate.abort") + player.displayClientMessage(CreateLang.translateDirect("train.relocate.abort") .withStyle(ChatFormatting.RED), true); relocatingTrain = null; return; @@ -311,19 +311,19 @@ public class TrainRelocator { if (!player.position() .closerThan(relocatingOrigin, 24)) { - player.displayClientMessage(Lang.translateDirect("train.relocate.too_far") + player.displayClientMessage(CreateLang.translateDirect("train.relocate.too_far") .withStyle(ChatFormatting.RED), true); return; } Boolean success = relocateClient(relocating, true); if (success == null) - player.displayClientMessage(Lang.translateDirect("train.relocate", relocating.name), true); + player.displayClientMessage(CreateLang.translateDirect("train.relocate", relocating.name), true); else if (success.booleanValue()) - player.displayClientMessage(Lang.translateDirect("train.relocate.valid") + player.displayClientMessage(CreateLang.translateDirect("train.relocate.valid") .withStyle(ChatFormatting.GREEN), true); else - player.displayClientMessage(Lang.translateDirect("train.relocate.invalid") + player.displayClientMessage(CreateLang.translateDirect("train.relocate.invalid") .withStyle(ChatFormatting.RED), true); return; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainStatus.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainStatus.java index ac30cd36b..f16b86ad7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainStatus.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TrainStatus.java @@ -3,7 +3,7 @@ package com.simibubi.create.content.logistics.trains.entity; import java.util.ArrayList; import java.util.List; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -122,7 +122,7 @@ public class TrainStatus { if (owner == null) return; if (owner instanceof Player player) { - player.displayClientMessage(Lang.translateDirect("train.status", train.name) + player.displayClientMessage(CreateLang.translateDirect("train.status", train.name) .withStyle(ChatFormatting.GOLD), false); queued.forEach(c -> player.displayClientMessage(c, false)); } @@ -131,7 +131,7 @@ public class TrainStatus { public void displayInformation(String key, boolean itsAGoodThing, Object... args) { queued.add(new TextComponent(" - ").withStyle(ChatFormatting.GRAY) - .append(Lang.translateDirect("train.status." + key, args) + .append(CreateLang.translateDirect("train.status." + key, args) .withStyle(st -> st.withColor(itsAGoodThing ? 0xD5ECC2 : 0xFFD3B4)))); if (queued.size() > 3) queued.remove(0); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TravellingPoint.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TravellingPoint.java index 194d926a6..1d0b23bd5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/TravellingPoint.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/TravellingPoint.java @@ -24,9 +24,9 @@ import com.simibubi.create.content.logistics.trains.TrackNode; import com.simibubi.create.content.logistics.trains.TrackNodeLocation; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.TrackEdgePoint; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayBlock.java index d1b065ffa..176cd3074 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayBlock.java @@ -14,11 +14,11 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayLayout.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayLayout.java index 192467846..f11707f07 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayLayout.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayLayout.java @@ -5,8 +5,7 @@ import java.util.List; import org.apache.commons.lang3.mutable.MutableInt; -import com.simibubi.create.foundation.utility.NBTHelper; - +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java index f4902659b..675a7eb9d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayRenderer.java @@ -13,9 +13,9 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.font.FontSet; @@ -89,7 +89,7 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer { for (int i = 0; i < line.size(); i++) { FlapDisplaySection section = line.get(i); renderOutput.nextSection(section); - int ticks = AnimationTickHolder.getTicks(te.getLevel()); + int ticks = WorldTickHolder.getTicks(te.getLevel()); String text = section.renderCharsIndividually() || !section.spinning[0] ? section.text : section.cyclingOptions[((ticks / 3) + i * 13) % section.cyclingOptions.length]; StringDecomposer.iterateFormatted(text, Style.EMPTY, renderOutput); @@ -143,8 +143,8 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer { public boolean accept(int charIndex, Style style, int glyph) { FontSet fontset = getFontSet(); - int ticks = paused ? 0 : AnimationTickHolder.getTicks(level); - float time = paused ? 0 : AnimationTickHolder.getRenderTime(level); + int ticks = paused ? 0 : WorldTickHolder.getTicks(level); + float time = paused ? 0 : WorldTickHolder.getRenderTime(level); float dim = 1; if (section.renderCharsIndividually() && section.spinning[Math.min(charIndex, section.spinning.length)]) { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplaySection.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplaySection.java index 4481a80ca..0405294eb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplaySection.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplaySection.java @@ -6,9 +6,9 @@ import java.util.Map; import com.google.common.base.Strings; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; @@ -89,11 +89,11 @@ public class FlapDisplaySection { int max = Math.max(4, (int) (cyclingOptions.length * 1.75f)); if (spinningTicks > max) return 0; - + spinningTicks++; if (spinningTicks <= max && spinningTicks < 2) return spinningTicks == 1 ? 0 : spinning.length; - + int spinningFlaps = 0; for (int i = 0; i < spinning.length; i++) { int increasingChance = Mth.clamp(8 - spinningTicks, 1, 10); @@ -107,11 +107,11 @@ public class FlapDisplaySection { spinning[i + 1] &= continueSpin; if (spinningTicks > max) spinning[i] = false; - + if (spinning[i]) spinningFlaps++; } - + return spinningFlaps; } @@ -170,9 +170,9 @@ public class FlapDisplaySection { } public static String[] getFlapCycle(String key) { - return LOADED_FLAP_CYCLES.computeIfAbsent(key, k -> Lang.translateDirect("flap_display.cycles." + key) + return LOADED_FLAP_CYCLES.computeIfAbsent(key, k -> CreateLang.translateDirect("flap_display.cycles." + key) .getString() .split(";")); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayTileEntity.java index 37b7abb9a..8a4b5dfa1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/display/FlapDisplayTileEntity.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.DyeHelper; import com.simibubi.create.foundation.utility.DynamicComponent; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -168,7 +168,7 @@ public class FlapDisplayTileEntity extends KineticTileEntity { colour[lineIndex] = color == DyeColor.WHITE ? null : color; notifyUpdate(); } - + public void setGlowing(int lineIndex) { glowingLines[lineIndex] = true; notifyUpdate(); @@ -205,7 +205,7 @@ public class FlapDisplayTileEntity extends KineticTileEntity { for (int j = 0; j < manualLines.length; j++) if (manualLines[j]) NBTHelper.putMarker(tag, "CustomLine" + j); - + for (int j = 0; j < glowingLines.length; j++) if (glowingLines[j]) NBTHelper.putMarker(tag, "GlowingLine" + j); @@ -234,7 +234,7 @@ public class FlapDisplayTileEntity extends KineticTileEntity { manualLines = new boolean[ySize * 2]; for (int i = 0; i < ySize * 2; i++) manualLines[i] = tag.contains("CustomLine" + i); - + glowingLines = new boolean[ySize * 2]; for (int i = 0; i < ySize * 2; i++) glowingLines[i] = tag.contains("GlowingLine" + i); @@ -321,9 +321,9 @@ public class FlapDisplayTileEntity extends KineticTileEntity { : DyeHelper.DYE_TABLE.get(color) .getFirst() | 0xFF_000000; } - + public boolean isLineGlowing(int line) { return glowingLines[line]; } - + } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/CurvedTrackSelectionPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/CurvedTrackSelectionPacket.java index f248780f2..958e1bc4a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/CurvedTrackSelectionPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/CurvedTrackSelectionPacket.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTa import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation; import com.simibubi.create.content.logistics.trains.track.TrackTileEntity; import com.simibubi.create.foundation.networking.TileEntityConfigurationPacket; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -62,7 +62,7 @@ public class CurvedTrackSelectionPacket extends TileEntityConfigurationPacket result.setValue(overlap)); if (result.getValue().feedback != null) { - player.displayClientMessage(Lang.translateDirect(result.getValue().feedback) + player.displayClientMessage(CreateLang.translateDirect(result.getValue().feedback) .withStyle(ChatFormatting.RED), true); AllSoundEvents.DENY.play(player.level, null, pos, .5f, 1); return; @@ -90,7 +90,7 @@ public class CurvedTrackSelectionPacket extends TileEntityConfigurationPacket result.setValue(overlap)); if (result.getValue().feedback != null) { - player.displayClientMessage(Lang.translateDirect(result.getValue().feedback) + player.displayClientMessage(CreateLang.translateDirect(result.getValue().feedback) .withStyle(ChatFormatting.RED), true); AllSoundEvents.DENY.play(level, null, pos, .5f, 1); return InteractionResult.FAIL; @@ -98,14 +98,14 @@ public class TrackTargetingBlockItem extends BlockItem { stackTag.put("SelectedPos", NbtUtils.writeBlockPos(pos)); stackTag.putBoolean("SelectedDirection", front); stackTag.remove("Bezier"); - player.displayClientMessage(Lang.translateDirect("track_target.set"), true); + player.displayClientMessage(CreateLang.translateDirect("track_target.set"), true); stack.setTag(stackTag); AllSoundEvents.CONTROLLER_CLICK.play(level, null, pos, 1, 1); return InteractionResult.SUCCESS; } if (!stack.hasTag()) { - player.displayClientMessage(Lang.translateDirect("track_target.missing") + player.displayClientMessage(CreateLang.translateDirect("track_target.missing") .withStyle(ChatFormatting.RED), true); return InteractionResult.FAIL; } @@ -121,7 +121,7 @@ public class TrackTargetingBlockItem extends BlockItem { boolean bezier = tag.contains("Bezier"); if (!selectedPos.closerThan(placedPos, bezier ? 64 + 16 : 16)) { - player.displayClientMessage(Lang.translateDirect("track_target.too_far") + player.displayClientMessage(CreateLang.translateDirect("track_target.too_far") .withStyle(ChatFormatting.RED), true); return InteractionResult.FAIL; } @@ -139,12 +139,12 @@ public class TrackTargetingBlockItem extends BlockItem { ItemStack itemInHand = player.getItemInHand(pContext.getHand()); if (!itemInHand.isEmpty()) itemInHand.setTag(null); - player.displayClientMessage(Lang.translateDirect("track_target.success") + player.displayClientMessage(CreateLang.translateDirect("track_target.success") .withStyle(ChatFormatting.GREEN), true); - + if (type == EdgePointType.SIGNAL) AllAdvancements.SIGNAL.awardTo(player); - + return useOn; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/TrackTargetingClient.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/TrackTargetingClient.java index 94f629068..d804d8f2c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/TrackTargetingClient.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/TrackTargetingClient.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTa import com.simibubi.create.content.logistics.trains.track.BezierTrackPointLocation; import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline; import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline.BezierPointSelection; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; +import net.createmod.catnip.render.SuperRenderTypeBuffer; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.LevelRenderer; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/EdgeGroupColor.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/EdgeGroupColor.java index 6c0161ec1..052818191 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/EdgeGroupColor.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/EdgeGroupColor.java @@ -1,6 +1,6 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.signal; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.utility.theme.Color; public enum EdgeGroupColor { @@ -30,7 +30,7 @@ public enum EdgeGroupColor { return mask; return mask | this.mask; } - + public Color get() { return color; } @@ -38,7 +38,7 @@ public enum EdgeGroupColor { public static EdgeGroupColor getDefault() { return values()[0]; } - + public static EdgeGroupColor findNextAvailable(int mask) { EdgeGroupColor[] values = values(); for (int i = 0; i < values.length; i++) { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBlock.java index 15dd4fadd..e702522f1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBlock.java @@ -7,8 +7,9 @@ import javax.annotation.Nullable; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.wrench.IWrenchable; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; @@ -108,10 +109,10 @@ public class SignalBlock extends Block implements ITE, IWrench if (signal != null) { signal.cycleSignalType(pos); if (player != null) - player.displayClientMessage(Lang.translateDirect("track_signal.mode_change." + signal.getTypeFor(pos) + player.displayClientMessage(CreateLang.translateDirect("track_signal.mode_change." + signal.getTypeFor(pos) .getSerializedName()), true); } else if (player != null) - player.displayClientMessage(Lang.translateDirect("track_signal.cannot_change_mode"), true); + player.displayClientMessage(CreateLang.translateDirect("track_signal.cannot_change_mode"), true); }); return InteractionResult.SUCCESS; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBoundary.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBoundary.java index 6d57f86e2..9727f2f89 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBoundary.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalBoundary.java @@ -14,10 +14,10 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePoi import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalBlock.SignalType; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.OverlayState; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.SignalState; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroup.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroup.java index 3f84a6f47..f2828d817 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroup.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalEdgeGroup.java @@ -13,7 +13,7 @@ import org.apache.commons.lang3.mutable.MutableInt; import com.google.common.base.Predicates; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; @@ -29,7 +29,7 @@ public class SignalEdgeGroup { public Map intersecting; public Set intersectingResolved; public Set adjacent; - + public boolean fallbackGroup; public SignalEdgeGroup(UUID id) { @@ -40,7 +40,7 @@ public class SignalEdgeGroup { intersectingResolved = new HashSet<>(); color = EdgeGroupColor.getDefault(); } - + public SignalEdgeGroup asFallback() { fallbackGroup = true; return this; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalPropagator.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalPropagator.java index 6eaf4319f..f1581b665 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalPropagator.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalPropagator.java @@ -20,9 +20,9 @@ import com.simibubi.create.content.logistics.trains.TrackNodeLocation; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgeData; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePointType; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; public class SignalPropagator { diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalRenderer.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalRenderer.java index 0be8feda6..506ec06b9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalRenderer.java @@ -9,7 +9,7 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.signal. import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.SignalState; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; @@ -30,7 +30,7 @@ public class SignalRenderer extends SafeTileEntityRenderer { SignalState signalState = te.getState(); OverlayState overlayState = te.getOverlay(); - float renderTime = AnimationTickHolder.getRenderTime(te.getLevel()); + float renderTime = WorldTickHolder.getRenderTime(te.getLevel()); if (signalState.isRedLight(renderTime)) CachedBufferer.partial(AllBlockPartials.SIGNAL_ON, blockState) .renderInto(ms, buffer.getBuffer(RenderType.solid())); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalTileEntity.java index 68bccc274..3910a3389 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/SignalTileEntity.java @@ -11,7 +11,7 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTa import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalBlock.SignalType; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -109,7 +109,7 @@ public class SignalTileEntity extends SmartTileEntity implements ITransformableT boundary.updateTilePower(this); notifyUpdate(); }); - + blockState.getOptionalValue(SignalBlock.TYPE) .ifPresent(stateType -> { SignalType targetType = boundary.getTypeFor(worldPosition); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/TrackEdgePoint.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/TrackEdgePoint.java index acfaa54eb..0ec69784e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/TrackEdgePoint.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/signal/TrackEdgePoint.java @@ -11,8 +11,8 @@ import com.simibubi.create.content.logistics.trains.TrackNodeLocation; import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePointType; import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTargetingBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AbstractStationScreen.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AbstractStationScreen.java index ed32075ae..0848f263c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AbstractStationScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AbstractStationScreen.java @@ -10,12 +10,13 @@ import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.trains.entity.Carriage; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.entity.TrainIconType; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; +import com.simibubi.create.foundation.gui.element.PartialModelGuiElement; import com.simibubi.create.foundation.gui.widget.IconButton; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.world.level.block.state.properties.BlockStateProperties; public abstract class AbstractStationScreen extends AbstractSimiScreen { @@ -39,14 +40,14 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); super.init(); clearWidgets(); int x = guiLeft; int y = guiTop; - confirmButton = new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + confirmButton = new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(this::onClose); addRenderableWidget(confirmButton); } @@ -81,7 +82,7 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen { ms.pushPose(); TransformStack msr = TransformStack.cast(ms); msr.pushPose() - .translate(x + background.width + 4, y + background.height + 4, 100) + .translate(x + background.getWidth() + 4, y + background.getHeight() + 4, 100) .scale(40) .rotateX(-22) .rotateY(63); @@ -92,7 +93,7 @@ public abstract class AbstractStationScreen extends AbstractSimiScreen { if (te.resolveFlagAngle()) { msr.translate(1 / 16f, -19 / 16f, -12 / 16f); StationRenderer.transformFlag(msr, te, partialTicks, 180, false); - GuiGameElement.of(getFlag(partialTicks)) + PartialModelGuiElement.of(getFlag(partialTicks)) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AssemblyScreen.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AssemblyScreen.java index c7dc73580..a9d71a8d4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AssemblyScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/AssemblyScreen.java @@ -15,7 +15,7 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.client.gui.components.Widget; import net.minecraft.network.chat.MutableComponent; @@ -38,18 +38,18 @@ public class AssemblyScreen extends AbstractStationScreen { super.init(); int x = guiLeft; int y = guiTop; - int by = y + background.height - 24; + int by = y + background.getHeight() - 24; Widget widget = renderables.get(0); if (widget instanceof IconButton ib) { ib.setIcon(AllIcons.I_PRIORITY_VERY_LOW); - ib.setToolTip(Lang.translateDirect("station.close")); + ib.setToolTip(CreateLang.translateDirect("station.close")); } iconTypes = TrainIconType.REGISTRY.keySet() .stream() .toList(); - iconTypeScroll = new ScrollInput(x + 4, y + 17, 184, 14).titled(Lang.translateDirect("station.icon_type")); + iconTypeScroll = new ScrollInput(x + 4, y + 17, 184, 14).titled(CreateLang.translateDirect("station.icon_type")); iconTypeScroll.withRange(0, iconTypes.size()); iconTypeScroll.withStepFunction(ctx -> -iconTypeScroll.standardStep() .apply(ctx)); @@ -63,14 +63,14 @@ public class AssemblyScreen extends AbstractStationScreen { toggleAssemblyButton = new WideIconButton(x + 94, by, AllGuiTextures.I_ASSEMBLE_TRAIN); toggleAssemblyButton.active = false; - toggleAssemblyButton.setToolTip(Lang.translateDirect("station.assemble_train")); + toggleAssemblyButton.setToolTip(CreateLang.translateDirect("station.assemble_train")); toggleAssemblyButton.withCallback(() -> { AllPackets.channel.sendToServer(StationEditPacket.tryAssemble(te.getBlockPos())); }); quitAssembly = new IconButton(x + 73, by, AllIcons.I_DISABLE); quitAssembly.active = true; - quitAssembly.setToolTip(Lang.translateDirect("station.cancel")); + quitAssembly.setToolTip(CreateLang.translateDirect("station.cancel")); quitAssembly.withCallback(() -> { AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name)); minecraft.setScreen(new StationScreen(te, station)); @@ -102,7 +102,7 @@ public class AssemblyScreen extends AbstractStationScreen { displayedTrain = new WeakReference<>(null); quitAssembly.active = true; iconTypeScroll.active = iconTypeScroll.visible = false; - toggleAssemblyButton.setToolTip(Lang.translateDirect("station.assemble_train")); + toggleAssemblyButton.setToolTip(CreateLang.translateDirect("station.assemble_train")); toggleAssemblyButton.setIcon(AllGuiTextures.I_ASSEMBLE_TRAIN); toggleAssemblyButton.withCallback(() -> { AllPackets.channel.sendToServer(StationEditPacket.tryAssemble(te.getBlockPos())); @@ -119,36 +119,36 @@ public class AssemblyScreen extends AbstractStationScreen { int x = guiLeft; int y = guiTop; - MutableComponent header = Lang.translateDirect("station.assembly_title"); - font.draw(ms, header, x + background.width / 2 - font.width(header) / 2, y + 4, 0x0E2233); + MutableComponent header = CreateLang.translateDirect("station.assembly_title"); + font.draw(ms, header, x + background.getWidth() / 2 - font.width(header) / 2, y + 4, 0x0E2233); AssemblyException lastAssemblyException = te.lastException; if (lastAssemblyException != null) { - MutableComponent text = Lang.translateDirect("station.failed"); + MutableComponent text = CreateLang.translateDirect("station.failed"); font.draw(ms, text, x + 97 - font.width(text) / 2, y + 47, 0x775B5B); int offset = 0; if (te.failedCarriageIndex != -1) { - font.draw(ms, Lang.translateDirect("station.carriage_number", te.failedCarriageIndex), x + 30, y + 67, + font.draw(ms, CreateLang.translateDirect("station.carriage_number", te.failedCarriageIndex), x + 30, y + 67, 0x7A7A7A); offset += 10; } font.drawWordWrap(lastAssemblyException.component, x + 30, y + 67 + offset, 134, 0x775B5B); offset += font.split(lastAssemblyException.component, 134) .size() * 9 + 5; - font.drawWordWrap(Lang.translateDirect("station.retry"), x + 30, y + 67 + offset, 134, 0x7A7A7A); + font.drawWordWrap(CreateLang.translateDirect("station.retry"), x + 30, y + 67 + offset, 134, 0x7A7A7A); return; } int bogeyCount = te.bogeyCount; - MutableComponent text = Lang.translateDirect( + MutableComponent text = CreateLang.translateDirect( bogeyCount == 0 ? "station.no_bogeys" : bogeyCount == 1 ? "station.one_bogey" : "station.more_bogeys", bogeyCount); font.draw(ms, text, x + 97 - font.width(text) / 2, y + 47, 0x7A7A7A); - font.drawWordWrap(Lang.translateDirect("station.how_to"), x + 28, y + 62, 134, 0x7A7A7A); - font.drawWordWrap(Lang.translateDirect("station.how_to_1"), x + 28, y + 94, 134, 0x7A7A7A); - font.drawWordWrap(Lang.translateDirect("station.how_to_2"), x + 28, y + 117, 138, 0x7A7A7A); + font.drawWordWrap(CreateLang.translateDirect("station.how_to"), x + 28, y + 62, 134, 0x7A7A7A); + font.drawWordWrap(CreateLang.translateDirect("station.how_to_1"), x + 28, y + 94, 134, 0x7A7A7A); + font.drawWordWrap(CreateLang.translateDirect("station.how_to_2"), x + 28, y + 117, 138, 0x7A7A7A); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationBlock.java index 401ae4200..96823f11d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationBlock.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.logistics.block.depot.SharedDepotBlockMethods import com.simibubi.create.foundation.advancement.AdvancementBehaviour; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; -import com.simibubi.create.foundation.gui.ScreenOpener; +import net.createmod.catnip.gui.ScreenOpener; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -69,7 +69,7 @@ public class StationBlock extends Block implements ITE, IWren updateWater(pLevel, pState, pCurrentPos); return pState; } - + @Override public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationEditPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationEditPacket.java index e1ec084c7..eeaf9f485 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationEditPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationEditPacket.java @@ -4,8 +4,8 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.GraphLocation; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.networking.TileEntityConfigurationPacket; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java index 89da131f3..dec6a9f43 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java @@ -13,12 +13,12 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.entity.TrainIconType; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; @@ -57,7 +57,7 @@ public class StationScreen extends AbstractStationScreen { Consumer onTextChanged; onTextChanged = s -> nameBox.x = nameBoxX(s, nameBox); - nameBox = new EditBox(new NoShadowFontWrapper(font), x + 23, y + 4, background.width - 20, 10, + nameBox = new EditBox(new NoShadowFontWrapper(font), x + 23, y + 4, background.getWidth() - 20, 10, new TextComponent(station.name)); nameBox.setBordered(false); nameBox.setMaxLength(25); @@ -92,7 +92,7 @@ public class StationScreen extends AbstractStationScreen { addRenderableWidget(dropScheduleButton); onTextChanged = s -> trainNameBox.x = nameBoxX(s, trainNameBox); - trainNameBox = new EditBox(font, x + 23, y + 47, background.width - 75, 10, new TextComponent("")); + trainNameBox = new EditBox(font, x + 23, y + 47, background.getWidth() - 75, 10, new TextComponent("")); trainNameBox.setBordered(false); trainNameBox.setMaxLength(35); trainNameBox.setTextColor(0xC6C6C6); @@ -154,7 +154,7 @@ public class StationScreen extends AbstractStationScreen { addRenderableWidget(trainNameBox); int trainIconWidth = getTrainIconWidth(imminentTrain); - int targetPos = background.width / 2 - trainIconWidth / 2; + int targetPos = background.getWidth() / 2 - trainIconWidth / 2; if (trainIconWidth > 130) targetPos -= trainIconWidth - 130; float f = (float) (imminentTrain.navigation.distanceToDestination / 15f); @@ -166,14 +166,14 @@ public class StationScreen extends AbstractStationScreen { } int trainIconWidth = getTrainIconWidth(train); - int targetPos = background.width / 2 - trainIconWidth / 2; + int targetPos = background.getWidth() / 2 - trainIconWidth / 2; if (trainIconWidth > 130) targetPos -= trainIconWidth - 130; if (leavingAnimation > 0) { disassembleTrainButton.active = false; float f = 1 - (leavingAnimation / 80f); - trainPosition.setValue(targetPos + f * f * f * (background.width - targetPos + 5)); + trainPosition.setValue(targetPos + f * f * f * (background.getWidth() - targetPos + 5)); leavingAnimation--; if (leavingAnimation > 0) return; @@ -196,7 +196,7 @@ public class StationScreen extends AbstractStationScreen { if (te.trainHasSchedule) dropScheduleButton.setToolTip( - Lang.translateDirect(te.trainHasAutoSchedule ? "station.remove_auto_schedule" : "station.remove_schedule")); + CreateLang.translateDirect(te.trainHasAutoSchedule ? "station.remove_auto_schedule" : "station.remove_schedule")); else dropScheduleButton.getToolTip() .clear(); @@ -206,21 +206,21 @@ public class StationScreen extends AbstractStationScreen { } private int nameBoxX(String s, EditBox nameBox) { - return guiLeft + background.width / 2 - (Math.min(font.width(s), nameBox.getWidth()) + 10) / 2; + return guiLeft + background.getWidth() / 2 - (Math.min(font.width(s), nameBox.getWidth()) + 10) / 2; } private void updateAssemblyTooltip(String key) { if (key == null) { - disassembleTrainButton.setToolTip(Lang.translateDirect("station.disassemble_train")); - newTrainButton.setToolTip(Lang.translateDirect("station.create_train")); + disassembleTrainButton.setToolTip(CreateLang.translateDirect("station.disassemble_train")); + newTrainButton.setToolTip(CreateLang.translateDirect("station.create_train")); return; } for (IconButton ib : new IconButton[] { disassembleTrainButton, newTrainButton }) { List toolTip = ib.getToolTip(); toolTip.clear(); - toolTip.add(Lang.translateDirect("station." + key) + toolTip.add(CreateLang.translateDirect("station." + key) .withStyle(ChatFormatting.GRAY)); - toolTip.add(Lang.translateDirect("station." + key + "_1") + toolTip.add(CreateLang.translateDirect("station." + key + "_1") .withStyle(ChatFormatting.GRAY)); } } @@ -238,7 +238,7 @@ public class StationScreen extends AbstractStationScreen { Train train = displayedTrain.get(); if (train == null) { - MutableComponent header = Lang.translateDirect("station.idle"); + MutableComponent header = CreateLang.translateDirect("station.idle"); font.draw(ms, header, x + 97 - font.width(header) / 2, y + 47, 0x7A7A7A); return; } @@ -254,7 +254,7 @@ public class StationScreen extends AbstractStationScreen { List carriages = train.carriages; for (int i = carriages.size() - 1; i > 0; i--) { RenderSystem.setShaderColor(1, 1, 1, Math.min(1f, - Math.min((position + offset - 10) / 30f, (background.width - 40 - position - offset) / 30f))); + Math.min((position + offset - 10) / 30f, (background.getWidth() - 40 - position - offset) / 30f))); // if (i == carriages.size() - 1 && train.doubleEnded) { // offset += icon.render(TrainIconType.FLIPPED_ENGINE, ms, x + offset, y + 20) + 1; // continue; @@ -264,7 +264,7 @@ public class StationScreen extends AbstractStationScreen { } RenderSystem.setShaderColor(1, 1, 1, - Math.min(1f, Math.min((position + offset - 10) / 30f, (background.width - 40 - position - offset) / 30f))); + Math.min(1f, Math.min((position + offset - 10) / 30f, (background.getWidth() - 40 - position - offset) / 30f))); offset += icon.render(TrainIconType.ENGINE, ms, x + offset, y + 20); RenderSystem.disableBlend(); ms.popPose(); @@ -292,7 +292,7 @@ public class StationScreen extends AbstractStationScreen { @Override public boolean mouseClicked(double pMouseX, double pMouseY, int pButton) { if (!nameBox.isFocused() && pMouseY > guiTop && pMouseY < guiTop + 14 && pMouseX > guiLeft - && pMouseX < guiLeft + background.width) { + && pMouseX < guiLeft + background.getWidth()) { nameBox.setFocus(true); nameBox.setHighlightPos(0); setFocused(nameBox); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationTileEntity.java index 1c9edc2bd..cf7adf4a8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationTileEntity.java @@ -44,13 +44,13 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.WorldAttached; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.WorldAttached; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; @@ -284,7 +284,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable ItemStack handItem = player.getItemInHand(hand); if (!player.isCreative() && !AllBlocks.RAILWAY_CASING.isIn(handItem)) { - player.displayClientMessage(Lang.translateDirect("train_assembly.requires_casing"), true); + player.displayClientMessage(CreateLang.translateDirect("train_assembly.requires_casing"), true); return false; } @@ -298,7 +298,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable BlockState bogeyAnchor = ProperWaterloggedBlock.withWater(level, track.getBogeyAnchor(level, pos, state), pos); level.setBlock(targetPos, bogeyAnchor, 3); - player.displayClientMessage(Lang.translateDirect("train_assembly.bogey_created"), true); + player.displayClientMessage(CreateLang.translateDirect("train_assembly.bogey_created"), true); SoundType soundtype = bogeyAnchor.getBlock() .getSoundType(state, level, pos, player); level.playSound(null, pos, soundtype.getPlaceSound(), SoundSource.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, @@ -452,7 +452,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable return; if (bogeyLocations[0] != 0) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.frontmost_bogey_at_station")), -1); + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.frontmost_bogey_at_station")), -1); return; } @@ -485,7 +485,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable break; if (loc - iPrevious < 3) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.bogeys_too_close", i, i + 1)), -1); + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.bogeys_too_close", i, i + 1)), -1); return; } @@ -561,7 +561,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable } if (points.size() == 0) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.no_bogeys")), -1); + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.no_bogeys")), -1); return; } @@ -583,7 +583,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable atLeastOneForwardControls |= contraption.hasForwardControls(); contraption.setSoundQueueOffset(offset); if (!success) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.nothing_attached", bogeyIndex + 1)), + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.nothing_attached", bogeyIndex + 1)), -1); return; } @@ -602,7 +602,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable if (secondBogeyPos != null) { if (bogeyIndex == bogeyCount - 1 || !secondBogeyPos .equals(bogeyPosOffset.relative(assemblyDirection, bogeyLocations[bogeyIndex + 1] + 1))) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.not_connected_in_order")), + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.not_connected_in_order")), contraptions.size() + 1); return; } @@ -613,7 +613,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable bogeyIndex++; } else if (!typeOfFirstBogey.allowsSingleBogeyCarriage()) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.single_bogey_carriage")), + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.single_bogey_carriage")), contraptions.size() + 1); return; } @@ -623,7 +623,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable } if (!atLeastOneForwardControls) { - exception(new AssemblyException(Lang.translateDirect("train_assembly.no_controls")), -1); + exception(new AssemblyException(CreateLang.translateDirect("train_assembly.no_controls")), -1); return; } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/WideIconButton.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/WideIconButton.java index 1ea17f939..90f21aa03 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/WideIconButton.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/WideIconButton.java @@ -2,9 +2,10 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.statio import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.ScreenElement; import com.simibubi.create.foundation.gui.widget.IconButton; +import net.createmod.catnip.gui.element.ScreenElement; + public class WideIconButton extends IconButton { public WideIconButton(int x, int y, ScreenElement icon) { @@ -14,7 +15,7 @@ public class WideIconButton extends IconButton { @Override protected void drawBg(PoseStack matrixStack, AllGuiTextures button) { super.drawBg(matrixStack, button); - blit(matrixStack, x + 9, y, button.startX + 1, button.startY, button.width - 1, button.height); + blit(matrixStack, x + 9, y, button.getStartX() + 1, button.getStartY(), button.getWidth() - 1, button.getHeight()); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/DestinationSuggestions.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/DestinationSuggestions.java index 43ff18a2b..59b410c45 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/DestinationSuggestions.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/DestinationSuggestions.java @@ -5,8 +5,8 @@ import java.util.List; import com.mojang.brigadier.context.StringRange; import com.mojang.brigadier.suggestion.Suggestion; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.CommandSuggestions; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/IScheduleInput.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/IScheduleInput.java index 85c1b0fe8..104dd3e60 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/IScheduleInput.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/IScheduleInput.java @@ -7,8 +7,8 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableList; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; @@ -40,7 +40,7 @@ public interface IScheduleInput { } public default void setItem(int slot, ItemStack stack) {} - + public default ItemStack getItem(int slot) { return ItemStack.EMPTY; } @@ -58,4 +58,4 @@ public interface IScheduleInput { return false; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/Schedule.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/Schedule.java index dfc6b1f94..0e5352f84 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/Schedule.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/Schedule.java @@ -19,9 +19,9 @@ import com.simibubi.create.content.logistics.trains.management.schedule.destinat import com.simibubi.create.content.logistics.trains.management.schedule.destination.ChangeTitleInstruction; import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction; import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEntry.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEntry.java index 1aeefc729..a759544ae 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEntry.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleEntry.java @@ -5,8 +5,8 @@ import java.util.List; import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition; import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; @@ -46,4 +46,4 @@ public class ScheduleEntry { return entry; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItem.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItem.java index 9698773e3..e4e666b86 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItem.java @@ -10,9 +10,9 @@ import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEn import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; @@ -98,27 +98,27 @@ public class ScheduleItem extends Item implements MenuProvider { .get(seatIndex); Couple directions = cc.conductorSeats.get(seatPos); if (directions == null) { - pPlayer.displayClientMessage(Lang.translateDirect("schedule.non_controlling_seat"), true); + pPlayer.displayClientMessage(CreateLang.translateDirect("schedule.non_controlling_seat"), true); AllSoundEvents.DENY.playOnServer(pPlayer.level, pPlayer.blockPosition(), 1, 1); return InteractionResult.SUCCESS; } if (train.runtime.getSchedule() != null) { AllSoundEvents.DENY.playOnServer(pPlayer.level, pPlayer.blockPosition(), 1, 1); - pPlayer.displayClientMessage(Lang.translateDirect("schedule.remove_with_empty_hand"), true); + pPlayer.displayClientMessage(CreateLang.translateDirect("schedule.remove_with_empty_hand"), true); return InteractionResult.SUCCESS; } if (schedule.entries.isEmpty()) { AllSoundEvents.DENY.playOnServer(pPlayer.level, pPlayer.blockPosition(), 1, 1); - pPlayer.displayClientMessage(Lang.translateDirect("schedule.no_stops"), true); + pPlayer.displayClientMessage(CreateLang.translateDirect("schedule.no_stops"), true); return InteractionResult.SUCCESS; } train.runtime.setSchedule(schedule, false); AllAdvancements.CONDUCTOR.awardTo(pPlayer); AllSoundEvents.CONFIRM.playOnServer(pPlayer.level, pPlayer.blockPosition(), 1, 1); - pPlayer.displayClientMessage(Lang.translateDirect("schedule.applied_to_train") + pPlayer.displayClientMessage(CreateLang.translateDirect("schedule.applied_to_train") .withStyle(ChatFormatting.GREEN), true); pStack.shrink(1); pPlayer.setItemInHand(pUsedHand, pStack.isEmpty() ? ItemStack.EMPTY : pStack); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItemRetrieval.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItemRetrieval.java index 3ff2d3395..ca2609e6c 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItemRetrieval.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleItemRetrieval.java @@ -6,9 +6,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Con import com.simibubi.create.content.logistics.trains.entity.CarriageContraption; import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity; import com.simibubi.create.content.logistics.trains.entity.Train; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; @@ -71,7 +71,7 @@ public class ScheduleItemRetrieval { if (train.runtime.paused && !train.runtime.completed) { train.runtime.paused = false; AllSoundEvents.CONFIRM.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.continued"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.continued"), true); event.setCanceled(true); return; } @@ -79,14 +79,14 @@ public class ScheduleItemRetrieval { ItemStack itemInHand = player.getItemInHand(event.getHand()); if (!itemInHand.isEmpty()) { AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1); - player.displayClientMessage(Lang.translateDirect("schedule.remove_with_empty_hand"), true); + player.displayClientMessage(CreateLang.translateDirect("schedule.remove_with_empty_hand"), true); event.setCanceled(true); return; } AllSoundEvents.playItemPickup(player); player.displayClientMessage( - Lang.translateDirect( + CreateLang.translateDirect( train.runtime.isAutoSchedule ? "schedule.auto_removed_from_train" : "schedule.removed_from_train"), true); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleRuntime.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleRuntime.java index 476d65322..f720e2e1a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleRuntime.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleRuntime.java @@ -17,8 +17,8 @@ import com.simibubi.create.content.logistics.trains.management.schedule.destinat import com.simibubi.create.content.logistics.trains.management.schedule.destination.ChangeTitleInstruction; import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction; import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.MutableComponent; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleScreen.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleScreen.java index f1e8a25d3..52c6dfb7b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/ScheduleScreen.java @@ -31,22 +31,22 @@ import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.ModularGuiLine; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.gui.UIRenderHelper; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; import com.simibubi.create.foundation.gui.container.GhostItemSubmitPacket; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Indicator; import com.simibubi.create.foundation.gui.widget.Indicator.State; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; @@ -108,11 +108,11 @@ public class ScheduleScreen extends AbstractSimiContainerScreen minecraft.player.closeContainer()); addRenderableWidget(confirmButton); @@ -127,10 +127,10 @@ public class ScheduleScreen extends AbstractSimiContainerScreen tip = cyclicButton.getToolTip(); - tip.add(Lang.translateDirect("schedule.loop")); - tip.add(Lang.translateDirect("schedule.loop1") + tip.add(CreateLang.translateDirect("schedule.loop")); + tip.add(CreateLang.translateDirect("schedule.loop1") .withStyle(ChatFormatting.GRAY)); - tip.add(Lang.translateDirect("schedule.loop2") + tip.add(CreateLang.translateDirect("schedule.loop2") .withStyle(ChatFormatting.GRAY)); addRenderableWidget(cyclicButton); @@ -141,7 +141,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 0 && !schedule.entries.isEmpty(); - resetProgress.setToolTip(Lang.translateDirect("schedule.reset")); + resetProgress.setToolTip(CreateLang.translateDirect("schedule.reset")); addRenderableWidget(resetProgress); skipProgress = new IconButton(leftPos + 63, topPos + 202, AllIcons.I_PRIORITY_LOW); @@ -151,11 +151,11 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 0; }); skipProgress.active = schedule.entries.size() > 1; - skipProgress.setToolTip(Lang.translateDirect("schedule.skip")); + skipProgress.setToolTip(CreateLang.translateDirect("schedule.skip")); addRenderableWidget(skipProgress); stopEditing(); - extraAreas = ImmutableList.of(new Rect2i(leftPos + bg.width, topPos + bg.height - 56, 48, 48)); + extraAreas = ImmutableList.of(new Rect2i(leftPos + bg.getWidth(), topPos + bg.getHeight() - 56, 48, 48)); horizontalScrolls.clear(); for (int i = 0; i < schedule.entries.size(); i++) horizontalScrolls.add(LerpedFloat.linear() @@ -194,7 +194,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen { ScheduleInstruction newlyCreated = Schedule.INSTRUCTION_TYPES.get(index) @@ -219,7 +219,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen { ScheduleWaitCondition newlyCreated = Schedule.CONDITION_TYPES.get(index) @@ -633,9 +633,9 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 180 && x <= 192) { if (y > 0 && y <= 14) { - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.remove_entry")), Optional.empty(), + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.remove_entry")), Optional.empty(), mx, my); if (click == 0) { entries.remove(entry); @@ -695,7 +695,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen cardHeight - 14) { - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.duplicate")), Optional.empty(), mx, + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.duplicate")), Optional.empty(), mx, my); if (click == 0) { entries.add(entries.indexOf(entry), entry.clone()); @@ -707,7 +707,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 194) { if (y > 7 && y <= 20 && i > 0) { - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.move_up")), Optional.empty(), mx, + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.move_up")), Optional.empty(), mx, my); if (click == 0) { entries.remove(entry); @@ -717,7 +717,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 20 && y <= 33 && i < entries.size() - 1) { - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.move_down")), Optional.empty(), mx, + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.move_down")), Optional.empty(), mx, my); if (click == 0) { entries.remove(entry); @@ -767,7 +767,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen= 0) { boolean canRemove = conditions.size() > 1 || columns.size() > 1; List components = new ArrayList<>(); - components.add(Lang.translateDirect("schedule.condition_type") + components.add(CreateLang.translateDirect("schedule.condition_type") .withStyle(ChatFormatting.GRAY)); ScheduleWaitCondition condition = conditions.get(row); components.addAll(condition.getTitleAs("condition")); @@ -795,7 +795,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 18 * conditions.size() && y <= 18 * conditions.size() + 10 && x >= w / 2 - 5 && x < w / 2 + 5) { - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.add_condition")), Optional.empty(), + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.add_condition")), Optional.empty(), mx, my); if (click == 0) startEditing(new ScheduledDelay(), confirmed -> { @@ -811,7 +811,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 15 || y > 20) return false; - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.alternative_condition")), Optional.empty(), + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.alternative_condition")), Optional.empty(), mx, my); if (click == 0) startEditing(new ScheduledDelay(), confirmed -> { @@ -827,7 +827,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen 33 || y > 14) return false; - renderTooltip(ms, ImmutableList.of(Lang.translateDirect("gui.schedule.add_entry")), Optional.empty(), mx, my); + renderTooltip(ms, ImmutableList.of(CreateLang.translateDirect("gui.schedule.add_entry")), Optional.empty(), mx, my); if (click == 0) startEditing(new DestinationInstruction(), confirmed -> { if (!confirmed) @@ -994,7 +994,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreenat(leftPos + AllGuiTextures.SCHEDULE.width, topPos + AllGuiTextures.SCHEDULE.height - 56, + .GuiRenderBuilder>at(leftPos + AllGuiTextures.SCHEDULE.getWidth(), topPos + AllGuiTextures.SCHEDULE.getHeight() - 56, -200) .scale(3) .render(matrixStack); @@ -1023,7 +1023,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen translatedOptions() { return Arrays.stream(values()) - .map(op -> Lang.translateDirect("schedule.condition.threshold." + Lang.asId(op.name()))) + .map(op -> CreateLang.translateDirect("schedule.condition.threshold." + Lang.asId(op.name()))) .toList(); } } @@ -61,12 +62,12 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio context.putInt("LastChecked", status); return test(level, train, context); } - + protected void requestStatusToUpdate(int amount, CompoundTag context) { context.putInt("CurrentDisplay", amount); super.requestStatusToUpdate(context); }; - + protected int getLastDisplaySnapshot(CompoundTag context) { if (!context.contains("CurrentDisplay")) return -1; @@ -108,8 +109,8 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.place_item"), - Lang.translateDirect("schedule.condition.threshold.place_item_2") + return ImmutableList.of(CreateLang.translateDirect("schedule.condition.threshold.place_item"), + CreateLang.translateDirect("schedule.condition.threshold.place_item_2") .withStyle(ChatFormatting.GRAY)); } @@ -118,11 +119,11 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio public void initConfigurationWidgets(ModularGuiLineBuilder builder) { builder.addSelectionScrollInput(0, 24, (i, l) -> { i.forOptions(Ops.translatedOptions()) - .titled(Lang.translateDirect("schedule.condition.threshold.train_holds")) + .titled(CreateLang.translateDirect("schedule.condition.threshold.train_holds")) .format(state -> new TextComponent(" " + Ops.values()[state].formatted)); }, "Operator"); builder.addIntegerTextInput(29, 41, (e, t) -> { }, "Threshold"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/FluidThresholdCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/FluidThresholdCondition.java index db595a20d..57853e396 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/FluidThresholdCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/FluidThresholdCondition.java @@ -9,8 +9,9 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.content.logistics.trains.entity.Carriage; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; @@ -96,12 +97,12 @@ public class FluidThresholdCondition extends CargoThresholdCondition { @Override public List getTitleAs(String type) { return ImmutableList.of( - Lang.translateDirect("schedule.condition.threshold.train_holds", - Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), - Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), - Lang.translateDirect("schedule.condition.threshold.buckets"), + CreateLang.translateDirect("schedule.condition.threshold.train_holds", + CreateLang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), + CreateLang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), + CreateLang.translateDirect("schedule.condition.threshold.buckets"), compareStack.getItem() instanceof FilterItem - ? Lang.translateDirect("schedule.condition.threshold.matching_content") + ? CreateLang.translateDirect("schedule.condition.threshold.matching_content") : loadFluid().getDisplayName()) .withStyle(ChatFormatting.DARK_AQUA)); } @@ -126,7 +127,7 @@ public class FluidThresholdCondition extends CargoThresholdCondition { public void initConfigurationWidgets(ModularGuiLineBuilder builder) { super.initConfigurationWidgets(builder); builder.addSelectionScrollInput(71, 50, (i, l) -> { - i.forOptions(ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.buckets"))) + i.forOptions(ImmutableList.of(CreateLang.translateDirect("schedule.condition.threshold.buckets"))) .titled(null); }, "Measure"); } @@ -137,8 +138,8 @@ public class FluidThresholdCondition extends CargoThresholdCondition { if (lastDisplaySnapshot == -1) return TextComponent.EMPTY.copy(); int offset = getOperator() == Ops.LESS ? -1 : getOperator() == Ops.GREATER ? 1 : 0; - return Lang.translateDirect("schedule.condition.threshold.status", lastDisplaySnapshot, - Math.max(0, getThreshold() + offset), Lang.translateDirect("schedule.condition.threshold.buckets")); + return CreateLang.translateDirect("schedule.condition.threshold.status", lastDisplaySnapshot, + Math.max(0, getThreshold() + offset), CreateLang.translateDirect("schedule.condition.threshold.buckets")); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/IdleCargoCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/IdleCargoCondition.java index d4801c0ca..e661b1db9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/IdleCargoCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/IdleCargoCondition.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.trains.management.schedule.conditi import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Carriage; import com.simibubi.create.content.logistics.trains.entity.Train; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -13,25 +13,25 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; public class IdleCargoCondition extends TimedWaitCondition { - + @Override public Pair getSummary() { - return Pair.of(ItemStack.EMPTY, Lang.translateDirect("schedule.condition.idle_short", formatTime(true))); + return Pair.of(ItemStack.EMPTY, CreateLang.translateDirect("schedule.condition.idle_short", formatTime(true))); } @Override public ResourceLocation getId() { return Create.asResource("idle"); } - + @Override public boolean tickCompletion(Level level, Train train, CompoundTag context) { int idleTime = Integer.MAX_VALUE; - for (Carriage carriage : train.carriages) + for (Carriage carriage : train.carriages) idleTime = Math.min(idleTime, carriage.storage.getTicksSinceLastExchange()); context.putInt("Time", idleTime); requestDisplayIfNecessary(context, idleTime); return idleTime > totalWaitTicks(); } - -} \ No newline at end of file + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ItemThresholdCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ItemThresholdCondition.java index d33b488e2..fcb26a4eb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ItemThresholdCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ItemThresholdCondition.java @@ -8,8 +8,9 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.content.logistics.trains.entity.Carriage; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -93,11 +94,11 @@ public class ItemThresholdCondition extends CargoThresholdCondition { @Override public List getTitleAs(String type) { return ImmutableList.of( - Lang.translateDirect("schedule.condition.threshold.train_holds", - Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), - Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), - Lang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items")), - stack.getItem() instanceof FilterItem ? Lang.translateDirect("schedule.condition.threshold.matching_content") + CreateLang.translateDirect("schedule.condition.threshold.train_holds", + CreateLang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))), + CreateLang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(), + CreateLang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items")), + stack.getItem() instanceof FilterItem ? CreateLang.translateDirect("schedule.condition.threshold.matching_content") : stack.getHoverName()) .withStyle(ChatFormatting.DARK_AQUA)); } @@ -116,9 +117,9 @@ public class ItemThresholdCondition extends CargoThresholdCondition { public void initConfigurationWidgets(ModularGuiLineBuilder builder) { super.initConfigurationWidgets(builder); builder.addSelectionScrollInput(71, 50, (i, l) -> { - i.forOptions(ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.items"), - Lang.translateDirect("schedule.condition.threshold.stacks"))) - .titled(Lang.translateDirect("schedule.condition.threshold.item_measure")); + i.forOptions(ImmutableList.of(CreateLang.translateDirect("schedule.condition.threshold.items"), + CreateLang.translateDirect("schedule.condition.threshold.stacks"))) + .titled(CreateLang.translateDirect("schedule.condition.threshold.item_measure")); }, "Measure"); } @@ -128,8 +129,8 @@ public class ItemThresholdCondition extends CargoThresholdCondition { if (lastDisplaySnapshot == -1) return TextComponent.EMPTY.copy(); int offset = getOperator() == Ops.LESS ? -1 : getOperator() == Ops.GREATER ? 1 : 0; - return Lang.translateDirect("schedule.condition.threshold.status", lastDisplaySnapshot, + return CreateLang.translateDirect("schedule.condition.threshold.status", lastDisplaySnapshot, Math.max(0, getThreshold() + offset), - Lang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items"))); + CreateLang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items"))); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/PlayerPassengerCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/PlayerPassengerCondition.java index bc2a90ee0..4edbbe1d9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/PlayerPassengerCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/PlayerPassengerCondition.java @@ -7,9 +7,9 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -29,7 +29,7 @@ public class PlayerPassengerCondition extends ScheduleWaitCondition { int target = getTarget(); return Pair.of(AllBlocks.SEATS.get(DyeColor.YELLOW) .asStack(), - Lang.translateDirect("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), target)); + CreateLang.translateDirect("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), target)); } @Override @@ -48,8 +48,8 @@ public class PlayerPassengerCondition extends ScheduleWaitCondition { @Override public List getTitleAs(String type) { int target = getTarget(); - return ImmutableList.of(Lang.translateDirect("schedule.condition.player_count.seated", - Lang.translateDirect("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), + return ImmutableList.of(CreateLang.translateDirect("schedule.condition.player_count.seated", + CreateLang.translateDirect("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), new TextComponent("" + target).withStyle(ChatFormatting.DARK_AQUA)))); } @@ -57,14 +57,14 @@ public class PlayerPassengerCondition extends ScheduleWaitCondition { @OnlyIn(Dist.CLIENT) public void initConfigurationWidgets(ModularGuiLineBuilder builder) { builder.addScrollInput(0, 31, (i, l) -> { - i.titled(Lang.translateDirect("schedule.condition.player_count.players")) + i.titled(CreateLang.translateDirect("schedule.condition.player_count.players")) .withShiftStep(5) .withRange(0, 21); }, "Count"); builder.addSelectionScrollInput(36, 85, (i, l) -> { - i.forOptions(Lang.translatedOptions("schedule.condition.player_count", "exactly", "or_above")) - .titled(Lang.translateDirect("schedule.condition.player_count.condition")); + i.forOptions(CreateLang.translatedOptions("schedule.condition.player_count", "exactly", "or_above")) + .titled(CreateLang.translateDirect("schedule.condition.player_count.condition")); }, "Exact"); } @@ -81,7 +81,7 @@ public class PlayerPassengerCondition extends ScheduleWaitCondition { @Override public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { - return Lang.translateDirect("schedule.condition.player_count.status", train.countPlayerPassengers(), getTarget()); + return CreateLang.translateDirect("schedule.condition.player_count.status", train.countPlayerPassengers(), getTarget()); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/RedstoneLinkCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/RedstoneLinkCondition.java index 97e809927..12f2bf890 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/RedstoneLinkCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/RedstoneLinkCondition.java @@ -8,10 +8,10 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler.Frequency; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; @@ -40,20 +40,20 @@ public class RedstoneLinkCondition extends ScheduleWaitCondition { @Override public Pair getSummary() { return Pair.of(AllBlocks.REDSTONE_LINK.asStack(), - lowActivation() ? Lang.translateDirect("schedule.condition.redstone_link_off") - : Lang.translateDirect("schedule.condition.redstone_link_on")); + lowActivation() ? CreateLang.translateDirect("schedule.condition.redstone_link_off") + : CreateLang.translateDirect("schedule.condition.redstone_link_on")); } @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect(slot == 0 ? "logistics.firstFrequency" : "logistics.secondFrequency") + return ImmutableList.of(CreateLang.translateDirect(slot == 0 ? "logistics.firstFrequency" : "logistics.secondFrequency") .withStyle(ChatFormatting.RED)); } @Override public List getTitleAs(String type) { return ImmutableList.of( - Lang.translateDirect("schedule.condition.redstone_link.frequency_" + (lowActivation() ? "unpowered" : "powered")), + CreateLang.translateDirect("schedule.condition.redstone_link.frequency_" + (lowActivation() ? "unpowered" : "powered")), new TextComponent(" #1 ").withStyle(ChatFormatting.GRAY) .append(freq.getFirst() .getStack() @@ -114,14 +114,14 @@ public class RedstoneLinkCondition extends ScheduleWaitCondition { @OnlyIn(Dist.CLIENT) public void initConfigurationWidgets(ModularGuiLineBuilder builder) { builder.addSelectionScrollInput(20, 101, - (i, l) -> i.forOptions(Lang.translatedOptions("schedule.condition.redstone_link", "powered", "unpowered")) - .titled(Lang.translateDirect("schedule.condition.redstone_link.frequency_state")), + (i, l) -> i.forOptions(CreateLang.translatedOptions("schedule.condition.redstone_link", "powered", "unpowered")) + .titled(CreateLang.translateDirect("schedule.condition.redstone_link.frequency_state")), "Inverted"); } - + @Override public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { - return Lang.translateDirect("schedule.condition.redstone_link.status"); + return CreateLang.translateDirect("schedule.condition.redstone_link.status"); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduleWaitCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduleWaitCondition.java index a8e307d6a..4b94496d4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduleWaitCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduleWaitCondition.java @@ -6,8 +6,8 @@ import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.schedule.Schedule; import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleDataEntry; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.MutableComponent; import net.minecraft.resources.ResourceLocation; @@ -16,11 +16,11 @@ import net.minecraft.world.level.Level; public abstract class ScheduleWaitCondition extends ScheduleDataEntry { public abstract boolean tickCompletion(Level level, Train train, CompoundTag context); - + protected void requestStatusToUpdate(CompoundTag context) { context.putInt("StatusVersion", context.getInt("StatusVersion") + 1); } - + public final CompoundTag write() { CompoundTag tag = new CompoundTag(); tag.putString("Id", getId().toString()); @@ -50,4 +50,4 @@ public abstract class ScheduleWaitCondition extends ScheduleDataEntry { public abstract MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag); -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduledDelay.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduledDelay.java index 2b6b9cd15..8dec83f95 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduledDelay.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/ScheduledDelay.java @@ -2,9 +2,9 @@ package com.simibubi.create.content.logistics.trains.management.schedule.conditi import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -15,7 +15,7 @@ public class ScheduledDelay extends TimedWaitCondition { @Override public Pair getSummary() { - return Pair.of(ItemStack.EMPTY, Lang.translateDirect("schedule.condition.delay_short", formatTime(true))); + return Pair.of(ItemStack.EMPTY, CreateLang.translateDirect("schedule.condition.delay_short", formatTime(true))); } @Override @@ -23,7 +23,7 @@ public class ScheduledDelay extends TimedWaitCondition { int time = context.getInt("Time"); if (time >= totalWaitTicks()) return true; - + context.putInt("Time", time + 1); requestDisplayIfNecessary(context, time); return false; @@ -34,4 +34,4 @@ public class ScheduledDelay extends TimedWaitCondition { return Create.asResource("delay"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationPoweredCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationPoweredCondition.java index 7760bc585..558bd4880 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationPoweredCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationPoweredCondition.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.trains.management.schedule.conditi import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -17,9 +17,9 @@ import net.minecraft.world.level.Level; public class StationPoweredCondition extends ScheduleWaitCondition { @Override public Pair getSummary() { - return Pair.of(ItemStack.EMPTY, Lang.translateDirect("schedule.condition.powered")); + return Pair.of(ItemStack.EMPTY, CreateLang.translateDirect("schedule.condition.powered")); } - + @Override public boolean tickCompletion(Level level, Train train, CompoundTag context) { GlobalStation currentStation = train.getCurrentStation(); @@ -44,6 +44,6 @@ public class StationPoweredCondition extends ScheduleWaitCondition { @Override public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { - return Lang.translateDirect("schedule.condition.powered.status"); + return CreateLang.translateDirect("schedule.condition.powered.status"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationUnloadedCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationUnloadedCondition.java index 8f5ccbd92..211ce9aa9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationUnloadedCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/StationUnloadedCondition.java @@ -3,9 +3,9 @@ package com.simibubi.create.content.logistics.trains.management.schedule.conditi import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -17,7 +17,7 @@ import net.minecraft.world.level.Level; public class StationUnloadedCondition extends ScheduleWaitCondition { @Override public Pair getSummary() { - return Pair.of(ItemStack.EMPTY, Lang.translateDirect("schedule.condition.unloaded")); + return Pair.of(ItemStack.EMPTY, CreateLang.translateDirect("schedule.condition.unloaded")); } @Override @@ -25,7 +25,7 @@ public class StationUnloadedCondition extends ScheduleWaitCondition { GlobalStation currentStation = train.getCurrentStation(); if (currentStation == null) return false; - if (level instanceof ServerLevel serverLevel) + if (level instanceof ServerLevel serverLevel) return !serverLevel.isPositionEntityTicking(currentStation.getTilePos()); return false; } @@ -43,6 +43,6 @@ public class StationUnloadedCondition extends ScheduleWaitCondition { @Override public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { - return Lang.translateDirect("schedule.condition.unloaded.status"); + return CreateLang.translateDirect("schedule.condition.unloaded.status"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimeOfDayCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimeOfDayCondition.java index 1664d7f6d..19f8cdcd9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimeOfDayCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimeOfDayCondition.java @@ -12,9 +12,9 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.ScrollInput; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiComponent; import net.minecraft.nbt.CompoundTag; @@ -74,16 +74,16 @@ public class TimeOfDayCondition extends ScheduleWaitCondition { int hour12raw = hour % 12 == 0 ? 12 : hour % 12; String hr12 = doubleDigitHrs ? twoDigits(hour12raw) : ("" + hour12raw); String hr24 = doubleDigitHrs ? twoDigits(hour) : ("" + hour); - return Lang.translateDirect("schedule.condition.time_of_day.digital_format", hr12, hr24, twoDigits(minute), - hour > 11 ? Lang.translateDirect("generic.daytime.pm") : Lang.translateDirect("generic.daytime.am")); + return CreateLang.translateDirect("schedule.condition.time_of_day.digital_format", hr12, hr24, twoDigits(minute), + hour > 11 ? CreateLang.translateDirect("generic.daytime.pm") : CreateLang.translateDirect("generic.daytime.am")); } @Override public List getTitleAs(String type) { - return ImmutableList.of(Lang.translateDirect("schedule.condition.time_of_day.scheduled"), + return ImmutableList.of(CreateLang.translateDirect("schedule.condition.time_of_day.scheduled"), getDigitalDisplay(intData("Hour"), intData("Minute"), false).withStyle(ChatFormatting.DARK_AQUA) .append(new TextComponent(" -> ").withStyle(ChatFormatting.DARK_GRAY)) - .append(Lang + .append(CreateLang .translatedOptions("schedule.condition.time_of_day.rotation", "every_24", "every_12", "every_6", "every_4", "every_3", "every_2", "every_1", "every_0_45", "every_0_30", "every_0_15") .get(intData("Rotation")) @@ -131,13 +131,13 @@ public class TimeOfDayCondition extends ScheduleWaitCondition { }, "Minute"); builder.addSelectionScrollInput(52, 62, (i, l) -> { - i.forOptions(Lang.translatedOptions("schedule.condition.time_of_day.rotation", "every_24", "every_12", + i.forOptions(CreateLang.translatedOptions("schedule.condition.time_of_day.rotation", "every_24", "every_12", "every_6", "every_4", "every_3", "every_2", "every_1", "every_0_45", "every_0_30", "every_0_15")) - .titled(Lang.translateDirect("schedule.condition.time_of_day.rotation")); + .titled(CreateLang.translateDirect("schedule.condition.time_of_day.rotation")); }, "Rotation"); hourInput.getValue() - .titled(Lang.translateDirect("generic.daytime.hour")) + .titled(CreateLang.translateDirect("generic.daytime.hour")) .calling(t -> { data.putInt("Hour", t); timeLabel.getValue().text = getDigitalDisplay(t, minuteInput.getValue() @@ -147,7 +147,7 @@ public class TimeOfDayCondition extends ScheduleWaitCondition { .withShiftStep(6); minuteInput.getValue() - .titled(Lang.translateDirect("generic.daytime.minute")) + .titled(CreateLang.translateDirect("generic.daytime.minute")) .calling(t -> { data.putInt("Minute", t); timeLabel.getValue().text = getDigitalDisplay(hourInput.getValue() @@ -185,7 +185,7 @@ public class TimeOfDayCondition extends ScheduleWaitCondition { int departingHour = (departureTime / 1000 + 6) % 24; int departingMinute = (departureTime % 1000) * 60 / 1000; - return Lang.translateDirect("schedule.condition.time_of_day.status") + return CreateLang.translateDirect("schedule.condition.time_of_day.status") .append(getDigitalDisplay(departingHour, departingMinute, false)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimedWaitCondition.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimedWaitCondition.java index 8ea96afbc..12aac1c6f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimedWaitCondition.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/condition/TimedWaitCondition.java @@ -5,7 +5,7 @@ import java.util.List; import com.google.common.collect.ImmutableList; import com.simibubi.create.content.logistics.trains.entity.Train; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; @@ -37,7 +37,7 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { } public static List translatedOptions() { - return Lang.translatedOptions(null, TICKS.key, SECONDS.key, MINUTES.key); + return CreateLang.translatedOptions(null, TICKS.key, SECONDS.key, MINUTES.key); } } @@ -61,14 +61,14 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { protected Component formatTime(boolean compact) { if (compact) return new TextComponent(getValue() + getUnit().suffix); - return new TextComponent(getValue() + " ").append(Lang.translateDirect(getUnit().key)); + return new TextComponent(getValue() + " ").append(CreateLang.translateDirect(getUnit().key)); } @Override public List getTitleAs(String type) { return ImmutableList.of( new TranslatableComponent(getId().getNamespace() + ".schedule." + type + "." + getId().getPath()), - Lang.translateDirect("schedule.condition.for_x_time", formatTime(false)) + CreateLang.translateDirect("schedule.condition.for_x_time", formatTime(false)) .withStyle(ChatFormatting.DARK_AQUA)); } @@ -79,7 +79,7 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect("generic.duration")); + return ImmutableList.of(CreateLang.translateDirect("generic.duration")); } public int getValue() { @@ -94,7 +94,7 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { @OnlyIn(Dist.CLIENT) public void initConfigurationWidgets(ModularGuiLineBuilder builder) { builder.addScrollInput(0, 31, (i, l) -> { - i.titled(Lang.translateDirect("generic.duration")) + i.titled(CreateLang.translateDirect("generic.duration")) .withShiftStep(15) .withRange(0, 121); i.lockedTooltipX = -15; @@ -103,7 +103,7 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { builder.addSelectionScrollInput(36, 85, (i, l) -> { i.forOptions(TimeUnit.translatedOptions()) - .titled(Lang.translateDirect("generic.timeUnit")); + .titled(CreateLang.translateDirect("generic.timeUnit")); }, "TimeUnit"); } @@ -116,8 +116,8 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { (int) (showInMinutes ? Math.floor(ticksUntilDeparture / (20 * 60f)) : Math.ceil(ticksUntilDeparture / 100f) * 5); String key = "generic." + (showInMinutes ? num == 1 ? "daytime.minute" : "unit.minutes" : num == 1 ? "daytime.second" : "unit.seconds"); - return Lang.translateDirect("schedule.condition." + getId().getPath() + ".status", - new TextComponent(num + " ").append(Lang.translateDirect(key))); + return CreateLang.translateDirect("schedule.condition." + getId().getPath() + ".status", + new TextComponent(num + " ").append(CreateLang.translateDirect(key))); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeThrottleInstruction.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeThrottleInstruction.java index 75fa8801a..5560c1fa9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeThrottleInstruction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeThrottleInstruction.java @@ -6,9 +6,9 @@ import com.google.common.collect.ImmutableList; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -23,7 +23,7 @@ public class ChangeThrottleInstruction extends ScheduleInstruction { super(); data.putInt("Value", 100); } - + @Override public Pair getSummary() { return Pair.of(icon(), formatted()); @@ -50,7 +50,7 @@ public class ChangeThrottleInstruction extends ScheduleInstruction { @Override public List getTitleAs(String type) { - return ImmutableList.of(Lang + return ImmutableList.of(CreateLang .translateDirect("schedule." + type + "." + getId().getPath() + ".summary", formatted().withStyle(ChatFormatting.WHITE)) .withStyle(ChatFormatting.GOLD)); @@ -62,7 +62,7 @@ public class ChangeThrottleInstruction extends ScheduleInstruction { builder.addScrollInput(0, 50, (si, l) -> { si.withRange(5, 101) .withStepFunction(c -> c.shift ? 25 : 5) - .titled(Lang.translateDirect("schedule.instruction.throttle_edit_box")); + .titled(CreateLang.translateDirect("schedule.instruction.throttle_edit_box")); l.withSuffix("%"); }, "Value"); } @@ -77,8 +77,8 @@ public class ChangeThrottleInstruction extends ScheduleInstruction { @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect("schedule.instruction.throttle_edit_box"), - Lang.translateDirect("schedule.instruction.throttle_edit_box_1") + return ImmutableList.of(CreateLang.translateDirect("schedule.instruction.throttle_edit_box"), + CreateLang.translateDirect("schedule.instruction.throttle_edit_box_1") .withStyle(ChatFormatting.GRAY)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeTitleInstruction.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeTitleInstruction.java index 57c1c2f42..a552151f7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeTitleInstruction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ChangeTitleInstruction.java @@ -4,9 +4,9 @@ import java.util.List; import com.google.common.collect.ImmutableList; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -35,7 +35,7 @@ public class ChangeTitleInstruction extends TextScheduleInstruction { public boolean supportsConditions() { return false; } - + public String getScheduleTitle() { return getLabelText(); } @@ -46,10 +46,10 @@ public class ChangeTitleInstruction extends TextScheduleInstruction { @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect("schedule.instruction.name_edit_box"), - Lang.translateDirect("schedule.instruction.name_edit_box_1") + return ImmutableList.of(CreateLang.translateDirect("schedule.instruction.name_edit_box"), + CreateLang.translateDirect("schedule.instruction.name_edit_box_1") .withStyle(ChatFormatting.GRAY), - Lang.translateDirect("schedule.instruction.name_edit_box_2") + CreateLang.translateDirect("schedule.instruction.name_edit_box_2") .withStyle(ChatFormatting.DARK_GRAY)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/DestinationInstruction.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/DestinationInstruction.java index 400852fbd..fe468bd35 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/DestinationInstruction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/DestinationInstruction.java @@ -7,9 +7,9 @@ import org.apache.commons.lang3.StringUtils; import com.google.common.collect.ImmutableList; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; @@ -44,7 +44,7 @@ public class DestinationInstruction extends TextScheduleInstruction { public String getFilter() { return getLabelText(); } - + public String getFilterForRegex() { String filter = getFilter(); if (filter.isBlank()) @@ -54,12 +54,12 @@ public class DestinationInstruction extends TextScheduleInstruction { @Override public List getSecondLineTooltip(int slot) { - return ImmutableList.of(Lang.translateDirect("schedule.instruction.filter_edit_box"), - Lang.translateDirect("schedule.instruction.filter_edit_box_1") + return ImmutableList.of(CreateLang.translateDirect("schedule.instruction.filter_edit_box"), + CreateLang.translateDirect("schedule.instruction.filter_edit_box_1") .withStyle(ChatFormatting.GRAY), - Lang.translateDirect("schedule.instruction.filter_edit_box_2") + CreateLang.translateDirect("schedule.instruction.filter_edit_box_2") .withStyle(ChatFormatting.DARK_GRAY), - Lang.translateDirect("schedule.instruction.filter_edit_box_3") + CreateLang.translateDirect("schedule.instruction.filter_edit_box_3") .withStyle(ChatFormatting.DARK_GRAY)); } @@ -69,4 +69,4 @@ public class DestinationInstruction extends TextScheduleInstruction { box.setFilter(s -> StringUtils.countMatches(s, '*') <= 3); } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ScheduleInstruction.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ScheduleInstruction.java index cc3554094..d140b78a5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ScheduleInstruction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/ScheduleInstruction.java @@ -5,8 +5,8 @@ import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.content.logistics.trains.management.schedule.Schedule; import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleDataEntry; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; @@ -41,4 +41,4 @@ public abstract class ScheduleInstruction extends ScheduleDataEntry { return scheduleDestination; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/TextScheduleInstruction.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/TextScheduleInstruction.java index b93019869..6bb64fe89 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/TextScheduleInstruction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/schedule/destination/TextScheduleInstruction.java @@ -4,7 +4,7 @@ import java.util.List; import com.google.common.collect.ImmutableList; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; @@ -21,8 +21,8 @@ public abstract class TextScheduleInstruction extends ScheduleInstruction { @Override public List getTitleAs(String type) { - return ImmutableList.of(Lang.translateDirect("schedule." + type + "." + getId().getPath() + ".summary") - .withStyle(ChatFormatting.GOLD), Lang.translateDirect("generic.in_quotes", new TextComponent(getLabelText()))); + return ImmutableList.of(CreateLang.translateDirect("schedule." + type + "." + getId().getPath() + ".summary") + .withStyle(ChatFormatting.GOLD), CreateLang.translateDirect("generic.in_quotes", new TextComponent(getLabelText()))); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/CurvedTrackInteraction.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/CurvedTrackInteraction.java index 4194b591e..bdb77bd18 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/CurvedTrackInteraction.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/CurvedTrackInteraction.java @@ -5,9 +5,9 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.trains.management.edgePoint.TrackTargetingBlockItem; import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline.BezierPointSelection; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -118,7 +118,7 @@ public class CurvedTrackInteraction { ItemStack heldItem = player.getMainHandItem(); Item item = heldItem.getItem(); if (AllBlocks.TRACK.isIn(heldItem)) { - player.displayClientMessage(Lang.translateDirect("track.turn_start") + player.displayClientMessage(CreateLang.translateDirect("track.turn_start") .withStyle(ChatFormatting.RED), true); player.swing(InteractionHand.MAIN_HAND); return true; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyBlock.java index 9db10db41..1b7a571ca 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyBlock.java @@ -19,9 +19,9 @@ import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyTileEntity.java index 9a4c8a621..6968fc458 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/StandardBogeyTileEntity.java @@ -2,8 +2,8 @@ package com.simibubi.create.content.logistics.trains.track; import com.simibubi.create.content.logistics.trains.IBogeyBlock; import com.simibubi.create.foundation.tileEntity.CachedRenderBBTileEntity; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -21,13 +21,13 @@ public class StandardBogeyTileEntity extends CachedRenderBBTileEntity { } // Ponder - + LerpedFloat virtualAnimation = LerpedFloat.angular(); - + public float getVirtualAngle(float partialTicks) { return virtualAnimation.getValue(partialTicks); } - + public void animate(float distanceMoved) { BlockState blockState = getBlockState(); if (!(blockState.getBlock() instanceof IBogeyBlock type)) diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlock.java index c4b2acb68..1cee9963b 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlock.java @@ -43,13 +43,13 @@ import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; import com.simibubi.create.foundation.block.render.DestroyProgressRenderingHandler; import com.simibubi.create.foundation.block.render.ReducedDestroyEffects; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.BlockFace; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.BlockFace; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LevelRenderer; @@ -287,11 +287,11 @@ public class TrackBlock extends Block Player player = level.getNearestPlayer(pos.getX(), pos.getY(), pos.getZ(), 10, Predicates.alwaysTrue()); if (player == null) return; - player.displayClientMessage(new TextComponent(" ").append(Lang.translateDirect("portal_track.failed")) + player.displayClientMessage(new TextComponent(" ").append(CreateLang.translateDirect("portal_track.failed")) .withStyle(ChatFormatting.GOLD), false); MutableComponent component = - failPos != null ? Lang.translateDirect("portal_track." + fail, failPos.getX(), failPos.getY(), failPos.getZ()) - : Lang.translateDirect("portal_track." + fail); + failPos != null ? CreateLang.translateDirect("portal_track." + fail, failPos.getX(), failPos.getY(), failPos.getZ()) + : CreateLang.translateDirect("portal_track." + fail); player.displayClientMessage(new TextComponent(" - ").withStyle(ChatFormatting.GRAY) .append(component.withStyle(st -> st.withColor(0xFFD3B4))), false); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockItem.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockItem.java index a8b5929dc..9baf8a728 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockItem.java @@ -5,10 +5,10 @@ import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.logistics.trains.ITrackBlock; import com.simibubi.create.content.logistics.trains.track.TrackPlacement.PlacementInfo; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; @@ -62,7 +62,7 @@ public class TrackBlockItem extends BlockItem { if (state.getBlock()instanceof TrackBlock track && track.getTrackAxes(level, pos, state) .size() > 1) { if (!level.isClientSide) - player.displayClientMessage(Lang.translateDirect("track.junction_start") + player.displayClientMessage(CreateLang.translateDirect("track.junction_start") .withStyle(ChatFormatting.RED), true); return InteractionResult.SUCCESS; } @@ -75,7 +75,7 @@ public class TrackBlockItem extends BlockItem { } else if (player.isSteppingCarefully()) { if (!level.isClientSide) { - player.displayClientMessage(Lang.translateDirect("track.selection_cleared"), true); + player.displayClientMessage(CreateLang.translateDirect("track.selection_cleared"), true); stack.setTag(null); } else level.playSound(player, pos, SoundEvents.ITEM_FRAME_REMOVE_ITEM, SoundSource.BLOCKS, 0.75f, 1); @@ -101,7 +101,7 @@ public class TrackBlockItem extends BlockItem { PlacementInfo info = TrackPlacement.tryConnect(level, player, pos, state, stack, hasGirder, extend); if (info.message != null && !level.isClientSide) - player.displayClientMessage(Lang.translateDirect(info.message), true); + player.displayClientMessage(CreateLang.translateDirect(info.message), true); if (!info.valid) { AllSoundEvents.DENY.playFrom(player, 1, 1); return InteractionResult.FAIL; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockOutline.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockOutline.java index 0417825dd..14baafb25 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockOutline.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackBlockOutline.java @@ -11,13 +11,13 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.content.logistics.trains.BezierConnection; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.RaycastHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.WorldAttached; +import net.createmod.catnip.utility.math.AngleHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.MultiBufferSource; @@ -56,7 +56,7 @@ public class TrackBlockOutline { if (mc.level == null) return; - Vec3 origin = player.getEyePosition(AnimationTickHolder.getPartialTicks(mc.level)); + Vec3 origin = player.getEyePosition(WorldTickHolder.getPartialTicks(mc.level)); double maxRange = mc.hitResult == null ? Double.MAX_VALUE : mc.hitResult.getLocation() diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackInstance.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackInstance.java index 7bb371ede..1cc112a62 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackInstance.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackInstance.java @@ -20,9 +20,9 @@ import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.logistics.trains.BezierConnection; import com.simibubi.create.content.logistics.trains.BezierConnection.GirderAngles; import com.simibubi.create.content.logistics.trains.BezierConnection.SegmentAngles; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.BlockPos; @@ -38,7 +38,7 @@ public class TrackInstance extends BlockEntityInstance { @Override public void update() { - if (blockEntity.connections.isEmpty()) + if (blockEntity.connections.isEmpty()) return; remove(); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPaver.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPaver.java index 9c70d7ca6..ffa274532 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPaver.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPaver.java @@ -10,10 +10,10 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.content.curiosities.girder.GirderBlock; import com.simibubi.create.content.logistics.trains.BezierConnection; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -124,7 +124,7 @@ public class TrackPaver { float[] lut = bc.getStepLUT(); for (int i = 0; i < segCount; i++) { - float t = i == segCount ? 1 : i * lut[i] / segCount; + float t = i * lut[i] / segCount; t += 0.5f / segCount; Vec3 result = VecHelper.bezier(end1, end2, finish1, finish2, t); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java index 246e2fe16..5aae15662 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackPlacement.java @@ -9,21 +9,21 @@ import java.util.Set; import com.jozufozu.flywheel.util.Color; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; import com.simibubi.create.content.logistics.trains.BezierConnection; import com.simibubi.create.content.logistics.trains.ITrackBlock; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; @@ -279,10 +279,10 @@ public class TrackPlacement { if (skipCurve && !Mth.equal(ascend, 0)) { int hDistance = info.end1Extent; if (axis1.y == 0 || !Mth.equal(absAscend + 1, dist / axis1.length())) { - + if (axis1.y != 0 && axis1.y == -axis2.y) return info.withMessage("ascending_s_curve"); - + info.end1Extent = 0; double minHDistance = Math.max(absAscend < 4 ? absAscend * 4 : absAscend * 3, 6) / axis1.length(); if (hDistance < minHDistance) @@ -443,10 +443,10 @@ public class TrackPlacement { BlockItem paveItem = (BlockItem) offhandItem.getItem(); paveTracks(level, info, paveItem, false); } - + if (info.curve != null && info.curve.getLength() > 29) AllAdvancements.LONG_BEND.awardTo(player); - + return placeTracks(level, info, state1, state2, targetPos1, targetPos2, false); } @@ -609,17 +609,17 @@ public class TrackPlacement { BlueprintOverlayRenderer.displayTrackRequirements(info, player.getOffhandItem()); if (info.valid) - player.displayClientMessage(Lang.translateDirect("track.valid_connection") + player.displayClientMessage(CreateLang.translateDirect("track.valid_connection") .withStyle(ChatFormatting.GREEN), true); else if (info.message != null) - player.displayClientMessage(Lang.translateDirect(info.message) + player.displayClientMessage(CreateLang.translateDirect(info.message) .withStyle(info.message.equals("track.second_point") ? ChatFormatting.WHITE : ChatFormatting.RED), true); if (bhr.getDirection() == Direction.UP) { Vec3 lookVec = player.getLookAngle(); int lookAngle = (int) (22.5 + AngleHelper.deg(Mth.atan2(lookVec.z, lookVec.x)) % 360) / 8; - + if (!pos.equals(hintPos) || lookAngle != hintAngle) { hints = Couple.create(ArrayList::new); hintAngle = lookAngle; @@ -636,11 +636,11 @@ public class TrackPlacement { } if (hints != null && !hints.either(Collection::isEmpty)) { - CreateClient.OUTLINER.showCluster("track_valid", hints.getFirst()) + CatnipClient.OUTLINER.showCluster("track_valid", hints.getFirst()) .withFaceTexture(AllSpecialTextures.THIN_CHECKERED) .colored(0x95CD41) .lineWidth(0); - CreateClient.OUTLINER.showCluster("track_invalid", hints.getSecond()) + CatnipClient.OUTLINER.showCluster("track_invalid", hints.getSecond()) .withFaceTexture(AllSpecialTextures.THIN_CHECKERED) .colored(0xEA5C2B) .lineWidth(0); @@ -720,13 +720,13 @@ public class TrackPlacement { .scale(0.5f); Vec3 middle2 = rail2.add(previous2) .scale(0.5f); - CreateClient.OUTLINER + CatnipClient.OUTLINER .showLine(Pair.of(key, i * 2), VecHelper.lerp(s, middle1, previous1), VecHelper.lerp(s, middle1, rail1)) .colored(railcolor) .disableNormals() .lineWidth(lw); - CreateClient.OUTLINER + CatnipClient.OUTLINER .showLine(Pair.of(key, i * 2 + 1), VecHelper.lerp(s, middle2, previous2), VecHelper.lerp(s, middle2, rail2)) .colored(railcolor) @@ -739,8 +739,8 @@ public class TrackPlacement { } for (int i = segCount + 1; i <= lastLineCount; i++) { - CreateClient.OUTLINER.remove(Pair.of(key, i * 2)); - CreateClient.OUTLINER.remove(Pair.of(key, i * 2 + 1)); + CatnipClient.OUTLINER.remove(Pair.of(key, i * 2)); + CatnipClient.OUTLINER.remove(Pair.of(key, i * 2 + 1)); } lastLineCount = segCount; @@ -749,7 +749,7 @@ public class TrackPlacement { @OnlyIn(Dist.CLIENT) private static void line(int id, Vec3 v1, Vec3 o1, Vec3 ex) { int color = Color.mixColors(0xEA5C2B, 0x95CD41, animation.getValue()); - CreateClient.OUTLINER.showLine(Pair.of("start", id), v1.subtract(o1), v1.add(ex)) + CatnipClient.OUTLINER.showLine(Pair.of("start", id), v1.subtract(o1), v1.add(ex)) .lineWidth(1 / 8f) .disableNormals() .colored(color); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackRenderer.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackRenderer.java index 1ee412ea0..bbe999bc5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackRenderer.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackRenderer.java @@ -17,10 +17,10 @@ import com.simibubi.create.content.logistics.trains.BezierConnection.GirderAngle import com.simibubi.create.content.logistics.trains.BezierConnection.SegmentAngles; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackShape.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackShape.java index 0c3e2332b..8567a7d96 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackShape.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackShape.java @@ -5,8 +5,8 @@ import java.util.List; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.core.Direction; import net.minecraft.util.StringRepresentable; import net.minecraft.world.level.block.Mirror; @@ -161,4 +161,4 @@ public enum TrackShape implements StringRepresentable { return shape; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackTileEntity.java index 80cae8969..beb2e7b4e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/TrackTileEntity.java @@ -20,9 +20,9 @@ import com.simibubi.create.foundation.tileEntity.IMergeableTE; import com.simibubi.create.foundation.tileEntity.RemoveTileEntityPacket; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Registry; diff --git a/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java b/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java index c39513849..aeebf7d03 100644 --- a/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java +++ b/src/main/java/com/simibubi/create/content/palettes/AllPaletteStoneTypes.java @@ -8,9 +8,9 @@ import java.util.function.Function; import com.simibubi.create.AllTags; import com.simibubi.create.Create; import com.simibubi.create.foundation.data.CreateRegistrate; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.nullness.NonNullSupplier; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java b/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java index 2a7e7011f..1f5be362a 100644 --- a/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java +++ b/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java @@ -2,8 +2,7 @@ package com.simibubi.create.content.palettes; import java.util.Random; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPartial.java b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPartial.java index 5d917b39e..2190e039c 100644 --- a/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPartial.java +++ b/src/main/java/com/simibubi/create/content/palettes/PaletteBlockPartial.java @@ -7,7 +7,6 @@ import java.util.function.Supplier; import com.simibubi.create.Create; import com.simibubi.create.foundation.data.CreateRegistrate; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.ItemBuilder; import com.tterrag.registrate.providers.DataGenContext; @@ -18,6 +17,7 @@ import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.nullness.NonnullType; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.data.recipes.ShapelessRecipeBuilder; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java b/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java index 5ed770590..d7b8df090 100644 --- a/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java +++ b/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java @@ -18,8 +18,8 @@ import com.simibubi.create.Create; import com.simibubi.create.content.schematics.packet.SchematicUploadPacket; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.FilesHelper; -import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; @@ -86,8 +86,8 @@ public class ClientSchematicLoader { if (size > maxSize * 1000) { LocalPlayer player = Minecraft.getInstance().player; if (player != null) { - player.sendMessage(Lang.translateDirect("schematics.uploadTooLarge").append(" (" + size / 1000 + " KB)."), player.getUUID()); - player.sendMessage(Lang.translateDirect("schematics.maxAllowedSize").append(" " + maxSize + " KB"), player.getUUID()); + player.sendMessage(CreateLang.translateDirect("schematics.uploadTooLarge").append(" (" + size / 1000 + " KB)."), player.getUUID()); + player.sendMessage(CreateLang.translateDirect("schematics.maxAllowedSize").append(" " + maxSize + " KB"), player.getUUID()); } return false; } diff --git a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java index 8c4fd1ec8..94be338d2 100644 --- a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java +++ b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java @@ -7,7 +7,7 @@ import java.util.Locale; import com.google.common.collect.Sets; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; @@ -81,7 +81,7 @@ public class MaterialChecklist { if (blocksNotLoaded) { textComponent = new TextComponent("\n" + ChatFormatting.RED); - textComponent = textComponent.append(Lang.translateDirect("materialChecklist.blocksNotLoaded")); + textComponent = textComponent.append(CreateLang.translateDirect("materialChecklist.blocksNotLoaded")); pages.add(StringTag.valueOf(Component.Serializer.toJson(textComponent))); } @@ -135,7 +135,7 @@ public class MaterialChecklist { tag.put("pages", pages); tag.putString("author", "Schematicannon"); tag.putString("title", ChatFormatting.BLUE + "Material Checklist"); - textComponent = Lang.translateDirect("materialChecklist") + textComponent = CreateLang.translateDirect("materialChecklist") .setStyle(Style.EMPTY.withColor(ChatFormatting.BLUE) .withItalic(Boolean.FALSE)); book.getOrCreateTagElement("display") diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicChunkSource.java b/src/main/java/com/simibubi/create/content/schematics/SchematicChunkSource.java deleted file mode 100644 index 1a51bb12b..000000000 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicChunkSource.java +++ /dev/null @@ -1,251 +0,0 @@ -package com.simibubi.create.content.schematics; - -import java.util.List; -import java.util.function.BooleanSupplier; -import java.util.function.Supplier; - -import javax.annotation.Nullable; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Holder; -import net.minecraft.core.Registry; -import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.ResourceKey; -import net.minecraft.server.level.ChunkHolder; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.crafting.RecipeManager; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.ChunkAccess; -import net.minecraft.world.level.chunk.ChunkSource; -import net.minecraft.world.level.chunk.ChunkStatus; -import net.minecraft.world.level.chunk.LevelChunk; -import net.minecraft.world.level.dimension.DimensionType; -import net.minecraft.world.level.entity.LevelEntityGetter; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.lighting.LevelLightEngine; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.level.saveddata.maps.MapItemSavedData; -import net.minecraft.world.level.storage.WritableLevelData; -import net.minecraft.world.scores.Scoreboard; -import net.minecraft.world.ticks.BlackholeTickAccess; -import net.minecraft.world.ticks.LevelTickAccess; - -public class SchematicChunkSource extends ChunkSource { - private final Level fallbackWorld; - - public SchematicChunkSource(Level world) { - fallbackWorld = world; - } - - @Nullable - @Override - public BlockGetter getChunkForLighting(int x, int z) { - return getChunk(x, z); - } - - @Override - public Level getLevel() { - return fallbackWorld; - } - - @Nullable - @Override - public ChunkAccess getChunk(int x, int z, ChunkStatus status, boolean p_212849_4_) { - return getChunk(x, z); - } - - public ChunkAccess getChunk(int x, int z) { - return new EmptierChunk(fallbackWorld.registryAccess()); - } - - @Override - public String gatherStats() { - return "WrappedChunkProvider"; - } - - @Override - public LevelLightEngine getLightEngine() { - return fallbackWorld.getLightEngine(); - } - - @Override - public void tick(BooleanSupplier p_202162_, boolean p_202163_) {} - - @Override - public int getLoadedChunksCount() { - return 0; - } - - public static class EmptierChunk extends LevelChunk { - - private static final class DummyLevel extends Level { - private RegistryAccess access; - - private DummyLevel(WritableLevelData p_46450_, ResourceKey p_46451_, Holder p_46452_, - Supplier p_46453_, boolean p_46454_, boolean p_46455_, long p_46456_) { - super(p_46450_, p_46451_, p_46452_, p_46453_, p_46454_, p_46455_, p_46456_); - } - - public Level withAccess(RegistryAccess access) { - this.access = access; - return this; - } - - @Override - public ChunkSource getChunkSource() { - return null; - } - - @Override - public void levelEvent(Player pPlayer, int pType, BlockPos pPos, int pData) {} - - @Override - public void gameEvent(Entity pEntity, GameEvent pEvent, BlockPos pPos) {} - - @Override - public RegistryAccess registryAccess() { - return access; - } - - @Override - public List players() { - return null; - } - - @Override - public Holder getUncachedNoiseBiome(int pX, int pY, int pZ) { - return null; - } - - @Override - public float getShade(Direction pDirection, boolean pShade) { - return 0; - } - - @Override - public void sendBlockUpdated(BlockPos pPos, BlockState pOldState, BlockState pNewState, int pFlags) {} - - @Override - public void playSound(Player pPlayer, double pX, double pY, double pZ, SoundEvent pSound, - SoundSource pCategory, float pVolume, float pPitch) {} - - @Override - public void playSound(Player pPlayer, Entity pEntity, SoundEvent pEvent, SoundSource pCategory, - float pVolume, float pPitch) {} - - @Override - public String gatherChunkSourceStats() { - return null; - } - - @Override - public Entity getEntity(int pId) { - return null; - } - - @Override - public MapItemSavedData getMapData(String pMapName) { - return null; - } - - @Override - public void setMapData(String pMapId, MapItemSavedData pData) {} - - @Override - public int getFreeMapId() { - return 0; - } - - @Override - public void destroyBlockProgress(int pBreakerId, BlockPos pPos, int pProgress) {} - - @Override - public Scoreboard getScoreboard() { - return null; - } - - @Override - public RecipeManager getRecipeManager() { - return null; - } - - @Override - protected LevelEntityGetter getEntities() { - return null; - } - - @Override - public LevelTickAccess getBlockTicks() { - return BlackholeTickAccess.emptyLevelList(); - } - - @Override - public LevelTickAccess getFluidTicks() { - return BlackholeTickAccess.emptyLevelList(); - } - } - - private static final DummyLevel DUMMY_LEVEL = new DummyLevel(null, null, RegistryAccess.BUILTIN.get() - .registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY) - .getHolderOrThrow(DimensionType.OVERWORLD_LOCATION), null, false, false, 0); - - public EmptierChunk(RegistryAccess registryAccess) { - super(DUMMY_LEVEL.withAccess(registryAccess), null); - } - - public BlockState getBlockState(BlockPos p_180495_1_) { - return Blocks.VOID_AIR.defaultBlockState(); - } - - @Nullable - public BlockState setBlockState(BlockPos p_177436_1_, BlockState p_177436_2_, boolean p_177436_3_) { - return null; - } - - public FluidState getFluidState(BlockPos p_204610_1_) { - return Fluids.EMPTY.defaultFluidState(); - } - - public int getLightEmission(BlockPos p_217298_1_) { - return 0; - } - - @Nullable - public BlockEntity getBlockEntity(BlockPos p_177424_1_, EntityCreationType p_177424_2_) { - return null; - } - - public void addAndRegisterBlockEntity(BlockEntity p_150813_1_) {} - - public void setBlockEntity(BlockEntity p_177426_2_) {} - - public void removeBlockEntity(BlockPos p_177425_1_) {} - - public void markUnsaved() {} - - public boolean isEmpty() { - return true; - } - - public boolean isYSpaceEmpty(int p_76606_1_, int p_76606_2_) { - return true; - } - - public ChunkHolder.FullChunkStatus getFullStatus() { - return ChunkHolder.FullChunkStatus.BORDER; - } - } -} diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java b/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java index 528e67b2b..c21a34657 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicPrinter.java @@ -9,9 +9,10 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Blo import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.foundation.tileEntity.IMergeableTE; -import com.simibubi.create.foundation.utility.BBHelper; import com.simibubi.create.foundation.utility.BlockHelper; +import net.createmod.catnip.utility.BBHelper; +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -61,7 +62,7 @@ public class SchematicPrinter { schematicLoaded = true; } } - + printingEntityIndex = compound.getInt("EntityProgress"); printStage = PrintStage.valueOf(compound.getString("PrintStage")); compound.getList("DeferredBlocks", 10).stream() @@ -74,7 +75,7 @@ public class SchematicPrinter { compound.put("CurrentPos", NbtUtils.writeBlockPos(currentPos)); if (schematicAnchor != null) compound.put("Anchor", NbtUtils.writeBlockPos(schematicAnchor)); - + compound.putInt("EntityProgress", printingEntityIndex); compound.putString("PrintStage", printStage.name()); ListTag tagDeferredBlocks = new ListTag(); @@ -97,11 +98,11 @@ public class SchematicPrinter { BlockPos extraBounds = StructureTemplate.calculateRelativePosition(settings, new BlockPos(activeTemplate.getSize()) .offset(-1, -1, -1)); - blockReader.bounds = BBHelper.encapsulate(blockReader.bounds, extraBounds); + blockReader.setBounds(BBHelper.encapsulate(blockReader.getBounds(), extraBounds)); StructureTransform transform = new StructureTransform(settings.getRotationPivot(), Direction.Axis.Y, settings.getRotation(), settings.getMirror()); - for (BlockEntity te : blockReader.tileEntities.values()) + for (BlockEntity te : blockReader.getTileEntities().values()) transform.apply(te); printingEntityIndex = -1; @@ -194,7 +195,7 @@ public class SchematicPrinter { BlockState toReplace = world.getBlockState(pos); BlockEntity toReplaceTE = world.getBlockEntity(pos); BlockState toReplaceOther = null; - + if (state.hasProperty(BlockStateProperties.BED_PART) && state.hasProperty(BlockStateProperties.HORIZONTAL_FACING) && state.getValue(BlockStateProperties.BED_PART) == BedPart.FOOT) toReplaceOther = world.getBlockState(pos.relative(state.getValue(BlockStateProperties.HORIZONTAL_FACING))); diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java deleted file mode 100644 index e503b539a..000000000 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java +++ /dev/null @@ -1,250 +0,0 @@ -package com.simibubi.create.content.schematics; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Stream; - -import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.BBHelper; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Holder; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.decoration.ArmorStand; -import net.minecraft.world.entity.decoration.ItemFrame; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LightLayer; -import net.minecraft.world.level.ServerLevelAccessor; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Biomes; -import net.minecraft.world.level.block.AbstractFurnaceBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.ticks.BlackholeTickAccess; -import net.minecraft.world.ticks.LevelTickAccess; -import net.minecraftforge.registries.ForgeRegistries; - -public class SchematicWorld extends WrappedWorld implements ServerLevelAccessor { - - protected Map blocks; - protected Map tileEntities; - protected List renderedTileEntities; - protected List entities; - protected BoundingBox bounds; - - public BlockPos anchor; - public boolean renderMode; - - public SchematicWorld(Level original) { - this(BlockPos.ZERO, original); - } - - public SchematicWorld(BlockPos anchor, Level original) { - super(original); - setChunkSource(new SchematicChunkSource(this)); - this.blocks = new HashMap<>(); - this.tileEntities = new HashMap<>(); - this.bounds = new BoundingBox(BlockPos.ZERO); - this.anchor = anchor; - this.entities = new ArrayList<>(); - this.renderedTileEntities = new ArrayList<>(); - } - - public Set getAllPositions() { - return blocks.keySet(); - } - - @Override - public boolean addFreshEntity(Entity entityIn) { - if (entityIn instanceof ItemFrame) - ((ItemFrame) entityIn).getItem() - .setTag(null); - if (entityIn instanceof ArmorStand) { - ArmorStand armorStandEntity = (ArmorStand) entityIn; - armorStandEntity.getAllSlots() - .forEach(stack -> stack.setTag(null)); - } - - return entities.add(entityIn); - } - - public Stream getEntityStream() { - return entities.stream(); - } - - @Override - public BlockEntity getBlockEntity(BlockPos pos) { - if (isOutsideBuildHeight(pos)) - return null; - if (tileEntities.containsKey(pos)) - return tileEntities.get(pos); - if (!blocks.containsKey(pos.subtract(anchor))) - return null; - - BlockState blockState = getBlockState(pos); - if (blockState.hasBlockEntity()) { - try { - BlockEntity tileEntity = ((EntityBlock) blockState.getBlock()).newBlockEntity(pos, blockState); - if (tileEntity != null) { - onTEadded(tileEntity, pos); - tileEntities.put(pos, tileEntity); - renderedTileEntities.add(tileEntity); - } - return tileEntity; - } catch (Exception e) { - Create.LOGGER.debug("Could not create TE of block " + blockState + ": " + e); - } - } - return null; - } - - protected void onTEadded(BlockEntity tileEntity, BlockPos pos) { - tileEntity.setLevel(this); - } - - @Override - public BlockState getBlockState(BlockPos globalPos) { - BlockPos pos = globalPos.subtract(anchor); - - if (pos.getY() - bounds.minY() == -1 && !renderMode) - return Blocks.GRASS_BLOCK.defaultBlockState(); - if (getBounds().isInside(pos) && blocks.containsKey(pos)) - return processBlockStateForPrinting(blocks.get(pos)); - return Blocks.AIR.defaultBlockState(); - } - - public Map getBlockMap() { - return blocks; - } - - @Override - public FluidState getFluidState(BlockPos pos) { - return getBlockState(pos).getFluidState(); - } - - @Override - public Holder getBiome(BlockPos pos) { - return ForgeRegistries.BIOMES.getHolder(Biomes.PLAINS.location()) - .orElse(null); - } - - @Override - public int getBrightness(LightLayer lightLayer, BlockPos pos) { - return 15; - } - - @Override - public float getShade(Direction face, boolean hasShade) { - return 1f; - } - - @Override - public LevelTickAccess getBlockTicks() { - return BlackholeTickAccess.emptyLevelList(); - } - - @Override - public LevelTickAccess getFluidTicks() { - return BlackholeTickAccess.emptyLevelList(); - } - - @Override - public List getEntities(Entity arg0, AABB arg1, Predicate arg2) { - return Collections.emptyList(); - } - - @Override - public List getEntitiesOfClass(Class arg0, AABB arg1, Predicate arg2) { - return Collections.emptyList(); - } - - @Override - public List players() { - return Collections.emptyList(); - } - - @Override - public int getSkyDarken() { - return 0; - } - - @Override - public boolean isStateAtPosition(BlockPos pos, Predicate predicate) { - return predicate.test(getBlockState(pos)); - } - - @Override - public boolean destroyBlock(BlockPos arg0, boolean arg1) { - return setBlock(arg0, Blocks.AIR.defaultBlockState(), 3); - } - - @Override - public boolean removeBlock(BlockPos arg0, boolean arg1) { - return setBlock(arg0, Blocks.AIR.defaultBlockState(), 3); - } - - @Override - public boolean setBlock(BlockPos pos, BlockState arg1, int arg2) { - pos = pos.immutable() - .subtract(anchor); - bounds = BBHelper.encapsulate(bounds, pos); - blocks.put(pos, arg1); - if (tileEntities.containsKey(pos)) { - BlockEntity tileEntity = tileEntities.get(pos); - if (!tileEntity.getType() - .isValid(arg1)) { - tileEntities.remove(pos); - renderedTileEntities.remove(tileEntity); - } - } - - BlockEntity tileEntity = getBlockEntity(pos); - if (tileEntity != null) - tileEntities.put(pos, tileEntity); - - return true; - } - - @Override - public void sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags) {} - - public BoundingBox getBounds() { - return bounds; - } - - public Iterable getRenderedTileEntities() { - return renderedTileEntities; - } - - protected BlockState processBlockStateForPrinting(BlockState state) { - if (state.getBlock() instanceof AbstractFurnaceBlock && state.hasProperty(BlockStateProperties.LIT)) - state = state.setValue(BlockStateProperties.LIT, false); - return state; - } - - @Override - public ServerLevel getLevel() { - if (this.world instanceof ServerLevel) { - return (ServerLevel) this.world; - } - throw new IllegalStateException("Cannot use IServerWorld#getWorld in a client environment"); - } - -} diff --git a/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java b/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java index 96c1c1479..33074a784 100644 --- a/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java +++ b/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java @@ -21,8 +21,8 @@ import com.simibubi.create.content.schematics.item.SchematicAndQuillItem; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CSchematics; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.FilesHelper; -import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -163,10 +163,10 @@ public class ServerSchematicLoader { protected boolean validateSchematicSizeOnServer(ServerPlayer player, long size) { Integer maxFileSize = getConfig().maxTotalSchematicSize.get(); if (size > maxFileSize * 1000) { - - player.sendMessage(Lang.translateDirect("schematics.uploadTooLarge") + + player.sendMessage(CreateLang.translateDirect("schematics.uploadTooLarge") .append(new TextComponent(" (" + size / 1000 + " KB).")), player.getUUID()); - player.sendMessage(Lang.translateDirect("schematics.maxAllowedSize") + player.sendMessage(CreateLang.translateDirect("schematics.maxAllowedSize") .append(new TextComponent(" " + maxFileSize + " KB")), player.getUUID()); return false; } diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java index 525cc369a..e7f48f9c3 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java @@ -15,13 +15,13 @@ import com.simibubi.create.content.schematics.ClientSchematicLoader; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.Util; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; @@ -32,12 +32,12 @@ import net.minecraft.world.item.ItemStack; public class SchematicTableScreen extends AbstractSimiContainerScreen { - private final Component uploading = Lang.translateDirect("gui.schematicTable.uploading"); - private final Component finished = Lang.translateDirect("gui.schematicTable.finished"); - private final Component refresh = Lang.translateDirect("gui.schematicTable.refresh"); - private final Component folder = Lang.translateDirect("gui.schematicTable.open_folder"); - private final Component noSchematics = Lang.translateDirect("gui.schematicTable.noSchematics"); - private final Component availableSchematicsTitle = Lang.translateDirect("gui.schematicTable.availableSchematics"); + private final Component uploading = CreateLang.translateDirect("gui.schematicTable.uploading"); + private final Component finished = CreateLang.translateDirect("gui.schematicTable.finished"); + private final Component refresh = CreateLang.translateDirect("gui.schematicTable.refresh"); + private final Component folder = CreateLang.translateDirect("gui.schematicTable.open_folder"); + private final Component noSchematics = CreateLang.translateDirect("gui.schematicTable.noSchematics"); + private final Component availableSchematicsTitle = CreateLang.translateDirect("gui.schematicTable.availableSchematics"); protected AllGuiTextures background; @@ -63,7 +63,7 @@ public class SchematicTableScreen extends AbstractSimiContainerScreenat(x + background.width, y + background.height - 40, -200) + .at(x + background.getWidth(), y + background.getHeight() - 40, -200) .scale(3) .render(ms); SCHEMATIC_TABLE_PROGRESS.bind(); - int width = (int) (SCHEMATIC_TABLE_PROGRESS.width + int width = (int) (SCHEMATIC_TABLE_PROGRESS.getWidth() * Mth.lerp(partialTicks, lastChasingProgress, chasingProgress)); - int height = SCHEMATIC_TABLE_PROGRESS.height; - blit(ms, x + 70, y + 57, SCHEMATIC_TABLE_PROGRESS.startX, - SCHEMATIC_TABLE_PROGRESS.startY, width, height); + int height = SCHEMATIC_TABLE_PROGRESS.getHeight(); + blit(ms, x + 70, y + 57, SCHEMATIC_TABLE_PROGRESS.getStartX(), + SCHEMATIC_TABLE_PROGRESS.getStartY(), width, height); } @Override diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableTileEntity.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableTileEntity.java index bcfe54721..6efa518ff 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableTileEntity.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableTileEntity.java @@ -4,8 +4,8 @@ import java.util.List; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.IInteractionChecker; -import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -56,7 +56,7 @@ public class SchematicTableTileEntity extends SmartTileEntity implements MenuPro protected void read(CompoundTag compound, boolean clientPacket) { inventory.deserializeNBT(compound.getCompound("Inventory")); super.read(compound, clientPacket); - + if (!clientPacket) return; if (compound.contains("Uploading")) { @@ -74,14 +74,14 @@ public class SchematicTableTileEntity extends SmartTileEntity implements MenuPro protected void write(CompoundTag compound, boolean clientPacket) { compound.put("Inventory", inventory.serializeNBT()); super.write(compound, clientPacket); - + if (clientPacket && isUploading) { compound.putBoolean("Uploading", true); compound.putString("Schematic", uploadingSchematic); compound.putFloat("Progress", uploadingProgress); } } - + @Override public void tick() { // Update Client Tile @@ -113,7 +113,7 @@ public class SchematicTableTileEntity extends SmartTileEntity implements MenuPro @Override public Component getDisplayName() { - return Lang.translateDirect("gui.schematicTable.title"); + return CreateLang.translateDirect("gui.schematicTable.title"); } @Override diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java index fc68495df..83d29c1d0 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonInstance.java @@ -8,8 +8,8 @@ import com.jozufozu.flywheel.core.materials.model.ModelData; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.core.Direction; public class SchematicannonInstance extends BlockEntityInstance implements DynamicInstance { diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonScreen.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonScreen.java index acb3fdfbc..094cbb8b4 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonScreen.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonScreen.java @@ -17,15 +17,16 @@ import com.simibubi.create.content.schematics.packet.ConfigureSchematicannonPack import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.gui.container.AbstractSimiContainerScreen; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; import com.simibubi.create.foundation.gui.widget.Indicator; import com.simibubi.create.foundation.gui.widget.Indicator.State; import com.simibubi.create.foundation.item.ItemDescription.Palette; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; @@ -38,7 +39,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen replaceLevelIndicators; protected Vector replaceLevelButtons; @@ -83,7 +84,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen(4); List icons = ImmutableList.of(AllIcons.I_DONT_REPLACE, AllIcons.I_REPLACE_SOLID, AllIcons.I_REPLACE_ANY, AllIcons.I_REPLACE_EMPTY); - List toolTips = ImmutableList.of(Lang.translateDirect("gui.schematicannon.option.dontReplaceSolid"), - Lang.translateDirect("gui.schematicannon.option.replaceWithSolid"), - Lang.translateDirect("gui.schematicannon.option.replaceWithAny"), - Lang.translateDirect("gui.schematicannon.option.replaceWithEmpty")); + List toolTips = ImmutableList.of(CreateLang.translateDirect("gui.schematicannon.option.dontReplaceSolid"), + CreateLang.translateDirect("gui.schematicannon.option.replaceWithSolid"), + CreateLang.translateDirect("gui.schematicannon.option.replaceWithAny"), + CreateLang.translateDirect("gui.schematicannon.option.replaceWithEmpty")); for (int i = 0; i < 4; i++) { replaceLevelIndicators.add(new Indicator(x + 33 + i * 18, y + 111, TextComponent.EMPTY)); @@ -169,7 +170,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen { sendOptionUpdate(Option.SKIP_MISSING, !menu.contentHolder.skipMissing); }); - skipMissingButton.setToolTip(Lang.translateDirect("gui.schematicannon.option.skipMissing")); + skipMissingButton.setToolTip(CreateLang.translateDirect("gui.schematicannon.option.skipMissing")); skipMissingIndicator = new Indicator(x + 111, y + 111, TextComponent.EMPTY); Collections.addAll(placementSettingWidgets, skipMissingButton, skipMissingIndicator); @@ -177,7 +178,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen { sendOptionUpdate(Option.SKIP_TILES, !menu.contentHolder.replaceTileEntities); }); - skipTilesButton.setToolTip(Lang.translateDirect("gui.schematicannon.option.skipTileEntities")); + skipTilesButton.setToolTip(CreateLang.translateDirect("gui.schematicannon.option.skipTileEntities")); skipTilesIndicator = new Indicator(x + 129, y + 111, TextComponent.EMPTY); Collections.addAll(placementSettingWidgets, skipTilesButton, skipTilesIndicator); @@ -266,21 +267,21 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen tip = button.getToolTip(); tip.add((enabled ? optionEnabled : optionDisabled).plainCopy() .withStyle(BLUE)); - tip.addAll(TooltipHelper - .cutTextComponent(Lang.translateDirect("gui.schematicannon.option." + tooltipKey + ".description"), GRAY, GRAY)); + tip.addAll(FontHelper + .cutTextComponent(CreateLang.translateDirect("gui.schematicannon.option." + tooltipKey + ".description"), GRAY, GRAY)); } @Override protected void renderBg(PoseStack ms, float partialTicks, int mouseX, int mouseY) { - int invX = getLeftOfCentered(AllGuiTextures.PLAYER_INVENTORY.width); - int invY = topPos + BG_TOP.height + BG_BOTTOM.height + 2; + int invX = getLeftOfCentered(AllGuiTextures.PLAYER_INVENTORY.getWidth()); + int invY = topPos + BG_TOP.getHeight() + BG_BOTTOM.getHeight() + 2; renderPlayerInventory(ms, invX, invY); int x = leftPos; int y = topPos; BG_TOP.render(ms, x, y, this); - BG_BOTTOM.render(ms, x, y + BG_TOP.height, this); + BG_BOTTOM.render(ms, x, y + BG_TOP.getHeight(), this); SchematicannonTileEntity te = menu.contentHolder; renderPrintingProgress(ms, x, y, te.schematicProgress); @@ -292,13 +293,13 @@ public class SchematicannonScreen extends AbstractSimiContainerScreenat(x + BG_TOP.width, y + BG_TOP.height + BG_BOTTOM.height - 48, -200) + .GuiRenderBuilder>at(x + BG_TOP.getWidth(), y + BG_TOP.getHeight() + BG_BOTTOM.getHeight() - 48, -200) .scale(5) .render(ms); - drawCenteredString(ms, font, title, x + (BG_TOP.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (BG_TOP.getWidth() - 8) / 2, y + 3, 0xFFFFFF); - Component msg = Lang.translateDirect("schematicannon.status." + te.statusMsg); + Component msg = CreateLang.translateDirect("schematicannon.status." + te.statusMsg); int stringWidth = font.width(msg); if (te.missingItem != null) { @@ -320,14 +321,14 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen= fuelX && mouseY >= fuelY && mouseX <= fuelX + AllGuiTextures.SCHEMATICANNON_FUEL.width - && mouseY <= fuelY + AllGuiTextures.SCHEMATICANNON_FUEL.height) { + if (mouseX >= fuelX && mouseY >= fuelY && mouseX <= fuelX + AllGuiTextures.SCHEMATICANNON_FUEL.getWidth() + && mouseY <= fuelY + AllGuiTextures.SCHEMATICANNON_FUEL.getHeight()) { List tooltip = getFuelLevelTooltip(te); renderComponentTooltip(matrixStack, tooltip, mouseX, mouseY); } @@ -357,13 +358,13 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen tooltip = new ArrayList<>(); if (te.hasCreativeCrate) { - tooltip.add(Lang.translateDirect(_gunpowderLevel, "" + 100)); + tooltip.add(CreateLang.translateDirect(_gunpowderLevel, "" + 100)); tooltip.add(new TextComponent("(").append(AllBlocks.CREATIVE_CRATE.get() .getName()) .append(")") @@ -398,11 +399,11 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen rotationOptions = - Lang.translatedOptions("schematic.rotation", "none", "cw90", "cw180", "cw270"); + CreateLang.translatedOptions("schematic.rotation", "none", "cw90", "cw180", "cw270"); private final List mirrorOptions = - Lang.translatedOptions("schematic.mirror", "none", "leftRight", "frontBack"); - private final Component rotationLabel = Lang.translateDirect("schematic.rotation"); - private final Component mirrorLabel = Lang.translateDirect("schematic.mirror"); + CreateLang.translatedOptions("schematic.mirror", "none", "leftRight", "frontBack"); + private final Component rotationLabel = CreateLang.translateDirect("schematic.rotation"); + private final Component mirrorLabel = CreateLang.translateDirect("schematic.mirror"); private AllGuiTextures background; @@ -52,7 +52,7 @@ public class SchematicEditScreen extends AbstractSimiScreen { @Override protected void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); setWindowOffset(-6, 0); super.init(); @@ -114,7 +114,7 @@ public class SchematicEditScreen extends AbstractSimiScreen { addRenderableWidgets(labelR, labelM, rotationArea, mirrorArea); confirmButton = - new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM); + new IconButton(x + background.getWidth() - 33, y + background.getHeight() - 24, AllIcons.I_CONFIRM); confirmButton.withCallback(() -> { onClose(); }); @@ -157,10 +157,10 @@ public class SchematicEditScreen extends AbstractSimiScreen { background.render(ms, x, y, this); String title = handler.getCurrentSchematicName(); - drawCenteredString(ms, font, title, x + (background.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (background.getWidth() - 8) / 2, y + 3, 0xFFFFFF); GuiGameElement.of(AllItems.SCHEMATIC.asStack()) - .at(x + background.width + 6, y + background.height - 40, -200) + .at(x + background.getWidth() + 6, y + background.getHeight() - 40, -200) .scale(3) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java index b12481874..477b2851f 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java @@ -9,18 +9,18 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllKeys; import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform; -import com.simibubi.create.content.schematics.SchematicWorld; import com.simibubi.create.content.schematics.client.tools.Tools; import com.simibubi.create.content.schematics.filtering.SchematicInstances; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.content.schematics.packet.SchematicPlacePacket; import com.simibubi.create.content.schematics.packet.SchematicSyncPacket; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.outliner.AABBOutline; +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicPromptScreen.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicPromptScreen.java index ca1a4ac36..e1aa5513c 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicPromptScreen.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicPromptScreen.java @@ -5,13 +5,13 @@ import org.lwjgl.glfw.GLFW; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; import com.simibubi.create.CreateClient; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.widget.IconButton; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.element.GuiGameElement; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TextComponent; @@ -20,9 +20,9 @@ public class SchematicPromptScreen extends AbstractSimiScreen { private AllGuiTextures background; - private final Component convertLabel = Lang.translateDirect("schematicAndQuill.convert"); - private final Component abortLabel = Lang.translateDirect("action.discard"); - private final Component confirmLabel = Lang.translateDirect("action.saveToFile"); + private final Component convertLabel = CreateLang.translateDirect("schematicAndQuill.convert"); + private final Component abortLabel = CreateLang.translateDirect("action.discard"); + private final Component confirmLabel = CreateLang.translateDirect("action.saveToFile"); private EditBox nameField; private IconButton confirm; @@ -30,13 +30,13 @@ public class SchematicPromptScreen extends AbstractSimiScreen { private IconButton convert; public SchematicPromptScreen() { - super(Lang.translateDirect("schematicAndQuill.title")); + super(CreateLang.translateDirect("schematicAndQuill.title")); background = AllGuiTextures.SCHEMATIC_PROMPT; } @Override public void init() { - setWindowSize(background.width, background.height); + setWindowSize(background.getWidth(), background.getHeight()); super.init(); int x = guiLeft; @@ -80,7 +80,7 @@ public class SchematicPromptScreen extends AbstractSimiScreen { int y = guiTop; background.render(ms, x, y, this); - drawCenteredString(ms, font, title, x + (background.width - 8) / 2, y + 3, 0xFFFFFF); + drawCenteredString(ms, font, title, x + (background.getWidth() - 8) / 2, y + 3, 0xFFFFFF); GuiGameElement.of(AllItems.SCHEMATIC.asStack()) .at(x + 22, y + 23, 0) @@ -88,7 +88,7 @@ public class SchematicPromptScreen extends AbstractSimiScreen { GuiGameElement.of(AllItems.SCHEMATIC_AND_QUILL.asStack()) .scale(3) - .at(x + background.width + 6, y + background.height - 40, -200) + .at(x + background.getWidth() + 6, y + background.getHeight() - 40, -200) .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java index 5eea3f169..7c9f49f2a 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java @@ -11,11 +11,11 @@ import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexFormat; -import com.simibubi.create.content.schematics.SchematicWorld; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; import com.simibubi.create.foundation.render.TileEntityRenderHelper; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicTransformation.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicTransformation.java index d9d7628aa..4195cff5b 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicTransformation.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicTransformation.java @@ -4,11 +4,11 @@ import static java.lang.Math.abs; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.Mirror; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/ToolSelectionScreen.java b/src/main/java/com/simibubi/create/content/schematics/client/ToolSelectionScreen.java index 2a567a8e4..5ff5e4b69 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/ToolSelectionScreen.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/ToolSelectionScreen.java @@ -9,7 +9,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllKeys; import com.simibubi.create.content.schematics.client.tools.Tools; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; @@ -18,7 +18,7 @@ import net.minecraft.network.chat.TextComponent; public class ToolSelectionScreen extends Screen { - public final String scrollToCycle = Lang.translateDirect("gui.toolmenu.cycle") + public final String scrollToCycle = CreateLang.translateDirect("gui.toolmenu.cycle") .getString(); public final String holdToFocus = "gui.toolmenu.focusKey"; @@ -75,7 +75,7 @@ public class ToolSelectionScreen extends Screen { RenderSystem.setShaderColor(1, 1, 1, focused ? 7 / 8f : 1 / 2f); RenderSystem.setShaderTexture(0, gray.location); - blit(matrixStack, x - 15, y, gray.startX, gray.startY, w, h, gray.width, gray.height); + blit(matrixStack, x - 15, y, gray.getStartX(), gray.getStartY(), w, h, gray.getWidth(), gray.getHeight()); float toolTipAlpha = yOffset / 10; List toolTip = tools.get(selection) @@ -84,7 +84,7 @@ public class ToolSelectionScreen extends Screen { if (toolTipAlpha > 0.25f) { RenderSystem.setShaderColor(.7f, .7f, .8f, toolTipAlpha); - blit(matrixStack, x - 15, y + 33, gray.startX, gray.startY, w, h + 22, gray.width, gray.height); + blit(matrixStack, x - 15, y + 33, gray.getStartX(), gray.getStartY(), w, h + 22, gray.getWidth(), gray.getHeight()); RenderSystem.setShaderColor(1, 1, 1, 1); if (toolTip.size() > 0) @@ -103,7 +103,7 @@ public class ToolSelectionScreen extends Screen { int width = minecraft.getWindow() .getGuiScaledWidth(); if (!focused) - drawCenteredString(matrixStack, minecraft.font, Lang.translateDirect(holdToFocus, keyName), width / 2, + drawCenteredString(matrixStack, minecraft.font, CreateLang.translateDirect(holdToFocus, keyName), width / 2, y - 10, 0xCCDDFF); else drawCenteredString(matrixStack, minecraft.font, scrollToCycle, width / 2, y - 10, 0xCCDDFF); diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/DeployTool.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/DeployTool.java index e2abd68c1..2a0338242 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/DeployTool.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/DeployTool.java @@ -4,10 +4,10 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllKeys; import com.simibubi.create.content.schematics.client.SchematicTransformation; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.outliner.AABBOutline; import net.minecraft.core.BlockPos; import net.minecraft.nbt.NbtUtils; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/FlipTool.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/FlipTool.java index 10ceb1547..789a9fdcd 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/FlipTool.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/FlipTool.java @@ -2,10 +2,10 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.outliner.AABBOutline; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; @@ -67,7 +67,7 @@ public class FlipTool extends PlacementToolBase { .inflate(1 - directionVec.x, 1 - directionVec.y, 1 - directionVec.z); bounds = bounds.move(directionVec.scale(.5f) .multiply(boundsSize)); - + outline.setBounds(bounds); AllSpecialTextures tex = AllSpecialTextures.CHECKERED; outline.getParams() @@ -76,7 +76,7 @@ public class FlipTool extends PlacementToolBase { .colored(0xdddddd) .withFaceTextures(tex, tex); outline.render(ms, buffer, AnimationTickHolder.getPartialTicks()); - + super.renderOnSchematic(ms, buffer); } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/ISchematicTool.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/ISchematicTool.java index f7a2ecdf7..df8083632 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/ISchematicTool.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/ISchematicTool.java @@ -1,20 +1,20 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; +import net.createmod.catnip.render.SuperRenderTypeBuffer; import net.minecraftforge.client.gui.ForgeIngameGui; public interface ISchematicTool { public void init(); public void updateSelection(); - + public boolean handleRightClick(); public boolean handleMouseWheel(double delta); - + public void renderTool(PoseStack ms, SuperRenderTypeBuffer buffer); public void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height); public void renderOnSchematic(PoseStack ms, SuperRenderTypeBuffer buffer); - + } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/MoveTool.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/MoveTool.java index 9f1bc0bba..9f3022287 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/MoveTool.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/MoveTool.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.schematics.client.tools; import com.simibubi.create.content.schematics.client.SchematicTransformation; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction.Axis; import net.minecraft.world.phys.Vec3; @@ -30,7 +30,7 @@ public class MoveTool extends PlacementToolBase { vec = VecHelper.rotate(vec, transformation.getRotationTarget(), Axis.Y); transformation.move((float) vec.x, 0, (float) vec.z); schematicHandler.markDirty(); - + return true; } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/PlacementToolBase.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/PlacementToolBase.java index ca7b40d21..a51f9626a 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/PlacementToolBase.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/PlacementToolBase.java @@ -1,8 +1,8 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; +import net.createmod.catnip.render.SuperRenderTypeBuffer; import net.minecraftforge.client.gui.ForgeIngameGui; public abstract class PlacementToolBase extends SchematicToolBase { diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/RotateTool.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/RotateTool.java index 55b3e3dcc..ef1a5aaae 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/RotateTool.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/RotateTool.java @@ -1,10 +1,10 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.outliner.LineOutline; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.outliner.LineOutline; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/SchematicToolBase.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/SchematicToolBase.java index b3296d1d0..d4de72cde 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/SchematicToolBase.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/SchematicToolBase.java @@ -9,13 +9,13 @@ import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.CreateClient; import com.simibubi.create.content.schematics.client.SchematicHandler; import com.simibubi.create.content.schematics.client.SchematicTransformation; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.RaycastHelper; import com.simibubi.create.foundation.utility.RaycastHelper.PredicateTraceResult; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.outliner.AABBOutline; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java index 9b6d9ae28..19e707dfc 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java @@ -5,8 +5,9 @@ import java.util.Collections; import java.util.List; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; @@ -32,7 +33,7 @@ public enum Tools { } public TranslatableComponent getDisplayName() { - return Lang.translateDirect("schematic.tool." + Lang.asId(name())); + return CreateLang.translateDirect("schematic.tool." + Lang.asId(name())); } public AllIcons getIcon() { @@ -48,7 +49,7 @@ public enum Tools { } public List getDescription() { - return Lang.translatedOptions("schematic.tool." + Lang.asId(name()) + ".description", "0", "1", "2", "3"); + return CreateLang.translatedOptions("schematic.tool." + Lang.asId(name()) + ".description", "0", "1", "2", "3"); } } diff --git a/src/main/java/com/simibubi/create/content/schematics/filtering/SchematicInstances.java b/src/main/java/com/simibubi/create/content/schematics/filtering/SchematicInstances.java index f9f175a1c..1e6bebd25 100644 --- a/src/main/java/com/simibubi/create/content/schematics/filtering/SchematicInstances.java +++ b/src/main/java/com/simibubi/create/content/schematics/filtering/SchematicInstances.java @@ -6,10 +6,10 @@ import javax.annotation.Nullable; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import com.simibubi.create.content.schematics.SchematicWorld; import com.simibubi.create.content.schematics.item.SchematicItem; -import com.simibubi.create.foundation.utility.WorldAttached; +import net.createmod.catnip.utility.WorldAttached; +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Vec3i; import net.minecraft.nbt.CompoundTag; diff --git a/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java b/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java index e773b1322..a2740022e 100644 --- a/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java +++ b/src/main/java/com/simibubi/create/content/schematics/item/SchematicAndQuillItem.java @@ -4,8 +4,8 @@ import java.util.Iterator; import com.simibubi.create.AllEntityTypes; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.DoubleTag; diff --git a/src/main/java/com/simibubi/create/content/schematics/item/SchematicItem.java b/src/main/java/com/simibubi/create/content/schematics/item/SchematicItem.java index 78c73a66d..57e6e78c6 100644 --- a/src/main/java/com/simibubi/create/content/schematics/item/SchematicItem.java +++ b/src/main/java/com/simibubi/create/content/schematics/item/SchematicItem.java @@ -19,10 +19,10 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.schematics.SchematicProcessor; import com.simibubi.create.content.schematics.client.SchematicEditScreen; import com.simibubi.create.content.schematics.filtering.SchematicInstances; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; @@ -87,7 +87,7 @@ public class SchematicItem extends Item { tooltip.add(new TextComponent(ChatFormatting.GOLD + stack.getTag() .getString("File"))); } else { - tooltip.add(Lang.translateDirect("schematic.invalid").withStyle(ChatFormatting.RED)); + tooltip.add(CreateLang.translateDirect("schematic.invalid").withStyle(ChatFormatting.RED)); } super.appendHoverText(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index 42fe5bf3c..d27a994c2 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -52,20 +52,20 @@ import com.simibubi.create.foundation.item.ItemDescription; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.LeftClickPacket; -import com.simibubi.create.foundation.ponder.PonderTooltipHandler; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; import com.simibubi.create.foundation.sound.SoundScapes; import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueHandler; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueRenderer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.CameraAngleAnimationService; import com.simibubi.create.foundation.utility.ServerSpeedProvider; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedClientWorld; +import net.createmod.catnip.render.DefaultSuperRenderTypeBufferImpl; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.placement.PlacementHelpers; +import net.createmod.catnip.utility.worldWrappers.WrappedClientWorld; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -88,7 +88,6 @@ import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; import net.minecraftforge.client.event.RenderLevelLastEvent; -import net.minecraftforge.client.event.RenderTooltipEvent; import net.minecraftforge.event.TickEvent.ClientTickEvent; import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.event.TickEvent.RenderTickEvent; @@ -138,7 +137,6 @@ public class ClientEvents { CapabilityMinecartController.tick(world); CouplingPhysics.tick(world); - PonderTooltipHandler.tick(); // ScreenOpener.tick(); ServerSpeedProvider.clientTick(); BeltConnectorHandler.tick(); @@ -158,8 +156,7 @@ public class ClientEvents { ArmInteractionPointHandler.tick(); EjectorTargetHandler.tick(); PlacementHelpers.tick(); - CreateClient.OUTLINER.tickOutlines(); - CreateClient.GHOST_BLOCKS.tickGhosts(); + //CreateClient.OUTLINER.tickOutlines(); ContraptionRenderDispatcher.tick(world); BlueprintOverlayRenderer.tick(); ToolboxHandlerClient.clientTick(); @@ -208,23 +205,21 @@ public class ClientEvents { @SubscribeEvent public static void onRenderWorld(RenderLevelLastEvent event) { - Vec3 cameraPos = Minecraft.getInstance().gameRenderer.getMainCamera() - .getPosition(); + Vec3 cameraPos = Minecraft.getInstance().gameRenderer.getMainCamera().getPosition(); float pt = AnimationTickHolder.getPartialTicks(); PoseStack ms = event.getPoseStack(); ms.pushPose(); ms.translate(-cameraPos.x(), -cameraPos.y(), -cameraPos.z()); - SuperRenderTypeBuffer buffer = SuperRenderTypeBuffer.getInstance(); + SuperRenderTypeBuffer buffer = DefaultSuperRenderTypeBufferImpl.getInstance(); TrackBlockOutline.drawCurveSelection(ms, buffer); TrackTargetingClient.render(ms, buffer); CouplingRenderer.renderAll(ms, buffer); CarriageCouplingRenderer.renderAll(ms, buffer); CreateClient.SCHEMATIC_HANDLER.render(ms, buffer); - CreateClient.GHOST_BLOCKS.renderAll(ms, buffer); - CreateClient.OUTLINER.renderOutlines(ms, buffer, pt); + //CreateClient.OUTLINER.renderOutlines(ms, buffer, pt); buffer.draw(); RenderSystem.enableCull(); @@ -242,11 +237,6 @@ public class ClientEvents { event.setPitch(CameraAngleAnimationService.getPitch(partialTicks)); } - @SubscribeEvent - public static void getItemTooltipColor(RenderTooltipEvent.Color event) { - PonderTooltipHandler.handleTooltipColor(event); - } - @SubscribeEvent public static void addToItemTooltip(ItemTooltipEvent event) { if (!AllConfigs.CLIENT.tooltips.get()) @@ -281,7 +271,6 @@ public class ClientEvents { } } - PonderTooltipHandler.addToTooltip(event.getToolTip(), stack); SequencedAssemblyRecipe.addToTooltip(event.getToolTip(), stack); } diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index 57582f7a0..feb9dc386 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -15,12 +15,12 @@ import com.simibubi.create.content.logistics.item.LinkedControllerServerHandler; import com.simibubi.create.content.logistics.trains.entity.CarriageEntityHandler; import com.simibubi.create.foundation.command.AllCommands; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.ServerSpeedProvider; -import com.simibubi.create.foundation.utility.WorldAttached; import com.simibubi.create.foundation.utility.recipe.RecipeFinder; import com.simibubi.create.foundation.worldgen.AllWorldFeatures; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.WorldAttached; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerPlayer; @@ -81,7 +81,7 @@ public class CommonEvents { ToolboxHandler.playerLogin(player); Create.RAILWAYS.playerLogin(player); } - + @SubscribeEvent public static void playerLoggedOut(PlayerLoggedOutEvent event) { Player player = event.getPlayer(); @@ -155,7 +155,7 @@ public class CommonEvents { public static void onEntityEnterSection(EntityEvent.EnteringSection event) { CarriageEntityHandler.onEntityEnterSection(event); } - + @SubscribeEvent public static void addReloadListeners(AddReloadListenerEvent event) { event.addListener(RecipeFinder.LISTENER); diff --git a/src/main/java/com/simibubi/create/foundation/ClientResourceReloadListener.java b/src/main/java/com/simibubi/create/foundation/ClientResourceReloadListener.java index c0e81e199..9fb46a8fc 100644 --- a/src/main/java/com/simibubi/create/foundation/ClientResourceReloadListener.java +++ b/src/main/java/com/simibubi/create/foundation/ClientResourceReloadListener.java @@ -2,7 +2,6 @@ package com.simibubi.create.foundation; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.sound.SoundScapes; -import com.simibubi.create.foundation.utility.LangNumberFormat; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceManagerReloadListener; @@ -13,7 +12,6 @@ public class ClientResourceReloadListener implements ResourceManagerReloadListen public void onResourceManagerReload(ResourceManager resourceManager) { CreateClient.invalidateRenderers(); SoundScapes.invalidateAll(); - LangNumberFormat.numberFormat.update(); } } diff --git a/src/main/java/com/simibubi/create/foundation/block/BigOutlines.java b/src/main/java/com/simibubi/create/foundation/block/BigOutlines.java index c5414b80c..e10d4b671 100644 --- a/src/main/java/com/simibubi/create/foundation/block/BigOutlines.java +++ b/src/main/java/com/simibubi/create/foundation/block/BigOutlines.java @@ -2,10 +2,10 @@ package com.simibubi.create.foundation.block; import com.simibubi.create.content.curiosities.deco.SlidingDoorBlock; import com.simibubi.create.content.logistics.trains.track.TrackBlock; -import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.RaycastHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.ponder.utility.WorldTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; @@ -30,7 +30,7 @@ public class BigOutlines { result = null; - Vec3 origin = player.getEyePosition(AnimationTickHolder.getPartialTicks(mc.level)); + Vec3 origin = player.getEyePosition(WorldTickHolder.getPartialTicks(mc.level)); double maxRange = mc.hitResult == null ? Double.MAX_VALUE : mc.hitResult.getLocation() diff --git a/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java b/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java index 1ea374b1b..a816ac8a9 100644 --- a/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java +++ b/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java @@ -4,10 +4,10 @@ import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; -import com.simibubi.create.foundation.utility.Couple; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; +import net.createmod.catnip.utility.Couple; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java b/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java index 6d2e5f4ff..7e8198b94 100644 --- a/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java +++ b/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java @@ -5,8 +5,7 @@ import java.util.Map; import javax.annotation.Nullable; -import com.simibubi.create.foundation.utility.Couple; - +import net.createmod.catnip.utility.Couple; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; @@ -76,7 +75,7 @@ public class BlockStressValues { public interface IStressValueProvider { /** * Gets the stress impact of a block. - * + * * @param block The block. * @return the stress impact value of the block, or 0 if it does not have one. */ @@ -84,7 +83,7 @@ public class BlockStressValues { /** * Gets the stress capacity of a block. - * + * * @param block The block. * @return the stress capacity value of the block, or 0 if it does not have one. */ @@ -95,7 +94,7 @@ public class BlockStressValues { boolean hasCapacity(Block block); /** - * + * * @param block * @return min, max generated RPM; null if block does not have a stress capacity */ diff --git a/src/main/java/com/simibubi/create/foundation/block/CopperBlockSet.java b/src/main/java/com/simibubi/create/foundation/block/CopperBlockSet.java index b266d1bd0..5a94e0122 100644 --- a/src/main/java/com/simibubi/create/foundation/block/CopperBlockSet.java +++ b/src/main/java/com/simibubi/create/foundation/block/CopperBlockSet.java @@ -10,8 +10,8 @@ import java.util.function.Supplier; import org.apache.commons.lang3.ArrayUtils; import com.simibubi.create.AllTags; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.Iterate; + import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.providers.DataGenContext; @@ -23,6 +23,7 @@ import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.nullness.NonNullBiConsumer; import com.tterrag.registrate.util.nullness.NonNullFunction; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.data.recipes.ShapelessRecipeBuilder; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; diff --git a/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java b/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java index ac6040874..858c12fe0 100644 --- a/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java +++ b/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java @@ -4,8 +4,8 @@ import java.util.HashSet; import java.util.Set; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.InteractionResult; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/foundation/block/WrenchableDirectionalBlock.java b/src/main/java/com/simibubi/create/foundation/block/WrenchableDirectionalBlock.java index 2714f87dd..c33816410 100644 --- a/src/main/java/com/simibubi/create/foundation/block/WrenchableDirectionalBlock.java +++ b/src/main/java/com/simibubi/create/foundation/block/WrenchableDirectionalBlock.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.block; import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.foundation.utility.DirectionHelper; +import net.createmod.catnip.utility.DirectionHelper; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/AllCTTypes.java b/src/main/java/com/simibubi/create/foundation/block/connected/AllCTTypes.java index c0bec9a52..bfd8eb96b 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/AllCTTypes.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/AllCTTypes.java @@ -3,8 +3,8 @@ package com.simibubi.create.foundation.block.connected; import com.simibubi.create.Create; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour.CTContext; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour.ContextRequirement; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.resources.ResourceLocation; public enum AllCTTypes implements CTType { diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java index 4dd338b18..f9aac1822 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java @@ -7,8 +7,8 @@ import java.util.Random; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour.CTContext; import com.simibubi.create.foundation.block.render.QuadHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java b/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java index acb60d295..1ba9ade40 100644 --- a/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java @@ -12,7 +12,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingHandler; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.MinecartController; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; diff --git a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java index 7ecc08380..992034214 100644 --- a/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/HighlightPacket.java @@ -3,9 +3,9 @@ package com.simibubi.create.foundation.command; import java.util.function.Supplier; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.networking.SimplePacketBase; +import net.createmod.catnip.CatnipClient; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; @@ -48,7 +48,7 @@ public class HighlightPacket extends SimplePacketBase { if (Minecraft.getInstance().level == null || !Minecraft.getInstance().level.isLoaded(pos)) return; - CreateClient.OUTLINER.showAABB("highlightCommand", Shapes.block() + CatnipClient.OUTLINER.showAABB("highlightCommand", Shapes.block() .bounds() .move(pos), 200) .lineWidth(1 / 32f) diff --git a/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java b/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java index 171a5a6ba..dd7f24fce 100644 --- a/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java @@ -3,7 +3,7 @@ package com.simibubi.create.foundation.command; import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.builder.ArgumentBuilder; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; @@ -16,14 +16,14 @@ public class KillTPSCommand { .executes(ctx -> { // killtps no arguments ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.slowed_by.0", + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.slowed_by.0", Create.LAGGER.isLagging() ? Create.LAGGER.getTickTime() : 0), true); if (Create.LAGGER.isLagging()) ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.usage.0"), true); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.usage.0"), true); else ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.usage.1"), true); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.usage.1"), true); return 1; }) @@ -34,31 +34,31 @@ public class KillTPSCommand { if (tickTime > 0) { Create.LAGGER.setLagging(true); ctx.getSource() - .sendSuccess((Lang.translateDirect("command.killTPSCommand.status.slowed_by.1", tickTime)), + .sendSuccess((CreateLang.translateDirect("command.killTPSCommand.status.slowed_by.1", tickTime)), true); ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.usage.0"), true); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.usage.0"), true); } else { ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.usage.1"), true); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.usage.1"), true); } return 1; }) - .then(Commands.argument(Lang.translateDirect("command.killTPSCommand.argument.tickTime") + .then(Commands.argument(CreateLang.translateDirect("command.killTPSCommand.argument.tickTime") .getContents(), IntegerArgumentType.integer(1)) .executes(ctx -> { // killtps start tickTime int tickTime = IntegerArgumentType.getInteger(ctx, - Lang.translateDirect("command.killTPSCommand.argument.tickTime") + CreateLang.translateDirect("command.killTPSCommand.argument.tickTime") .getContents()); Create.LAGGER.setTickTime(tickTime); Create.LAGGER.setLagging(true); ctx.getSource() - .sendSuccess((Lang.translateDirect("command.killTPSCommand.status.slowed_by.1", tickTime)), + .sendSuccess((CreateLang.translateDirect("command.killTPSCommand.status.slowed_by.1", tickTime)), true); ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.usage.0"), true); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.usage.0"), true); return 1; }))) @@ -67,7 +67,7 @@ public class KillTPSCommand { // killtps stop Create.LAGGER.setLagging(false); ctx.getSource() - .sendSuccess(Lang.translateDirect("command.killTPSCommand.status.slowed_by.2"), false); + .sendSuccess(CreateLang.translateDirect("command.killTPSCommand.status.slowed_by.2"), false); return 1; })); diff --git a/src/main/java/com/simibubi/create/foundation/command/PonderCommand.java b/src/main/java/com/simibubi/create/foundation/command/PonderCommand.java index 94ae2bc4c..1da2c9a27 100644 --- a/src/main/java/com/simibubi/create/foundation/command/PonderCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/PonderCommand.java @@ -7,8 +7,8 @@ import com.mojang.brigadier.Command; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.simibubi.create.foundation.networking.AllPackets; -import com.simibubi.create.foundation.ponder.PonderRegistry; +import net.createmod.ponder.foundation.PonderRegistry; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.commands.SharedSuggestionProvider; diff --git a/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java b/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java index 63036edda..113173e77 100644 --- a/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java @@ -12,13 +12,13 @@ import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.ui.BaseConfigScreen; import com.simibubi.create.foundation.config.ui.ConfigHelper; import com.simibubi.create.foundation.config.ui.SubMenuConfigScreen; -import com.simibubi.create.foundation.gui.ScreenOpener; import com.simibubi.create.foundation.networking.SimplePacketBase; -import com.simibubi.create.foundation.ponder.PonderRegistry; -import com.simibubi.create.foundation.ponder.ui.PonderIndexScreen; -import com.simibubi.create.foundation.ponder.ui.PonderUI; import com.simibubi.create.foundation.utility.CameraAngleAnimationService; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.ponder.foundation.PonderRegistry; +import net.createmod.ponder.foundation.ui.PonderIndexScreen; +import net.createmod.ponder.foundation.ui.PonderUI; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; diff --git a/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java b/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java index 756383840..5091f2dc2 100644 --- a/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java +++ b/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java @@ -9,6 +9,7 @@ import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.foundation.block.BlockStressValues; +import net.createmod.catnip.config.ConfigBase; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModLoadingContext; diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index 01f374a13..ab899ae44 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -1,7 +1,11 @@ package com.simibubi.create.foundation.config; +import javax.annotation.Nonnull; + import com.simibubi.create.foundation.config.ui.ConfigAnnotations; +import net.createmod.catnip.config.ConfigBase; + public class CClient extends ConfigBase { public final ConfigGroup client = group(0, "client", @@ -49,22 +53,6 @@ public class CClient extends ConfigBase { public final ConfigInt overlayBorderColorBot = i(0x50_28007f, Integer.MIN_VALUE, Integer.MAX_VALUE, "customBorderBotOverlay", Comments.overlayBorderColorBot); - //placement assist group - public final ConfigGroup placementAssist = group(1, "placementAssist", - Comments.placementAssist); - public final ConfigEnum placementIndicator = e(PlacementIndicatorSetting.TEXTURE, "indicatorType", - Comments.placementIndicator); - public final ConfigFloat indicatorScale = f(1.0f, 0f, "indicatorScale", - Comments.indicatorScale); - - //ponder group - public final ConfigGroup ponder = group(1, "ponder", - Comments.ponder); - public final ConfigBool comfyReading = b(false, "comfyReading", - Comments.comfyReading); - public final ConfigBool editingMode = b(false, "editingMode", - Comments.editingMode); - //sound group public final ConfigGroup sound = group(1, "sound", Comments.sound); @@ -78,14 +66,11 @@ public class CClient extends ConfigBase { public final ConfigFloat mountedZoomMultiplier = f(3, 0, "mountedZoomMultiplier", Comments.mountedZoomMultiplier); @Override + @Nonnull public String getName() { return "client"; } - public enum PlacementIndicatorSetting { - TEXTURE, TRIANGLE, NONE - } - private static class Comments { static String client = "Client-only settings - If you're looking for general settings, look inside your worlds serverconfig folder!"; static String tooltips = "Show item descriptions on Shift and controls on Ctrl."; @@ -130,15 +115,6 @@ public class CClient extends ConfigBase { "The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled", "[in Hex: #AaRrGgBb]", ConfigAnnotations.IntDisplay.HEX.asComment() }; - static String placementAssist = "Settings for the Placement Assist"; - static String[] placementIndicator = new String[]{ - "What indicator should be used when showing where the assisted placement ends up relative to your crosshair", - "Choose 'NONE' to disable the Indicator altogether" - }; - static String indicatorScale = "Change the size of the Indicator by this multiplier"; - static String ponder = "Ponder settings"; - static String comfyReading = "Slow down a ponder scene whenever there is text on screen."; - static String editingMode = "Show additional info in the ponder view and reload scene scripts more frequently."; static String sound = "Sound settings"; static String enableAmbientSounds = "Make cogs rumble and machines clatter."; static String ambientVolumeCap = "Maximum volume modifier of Ambient noise"; diff --git a/src/main/java/com/simibubi/create/foundation/config/CCommon.java b/src/main/java/com/simibubi/create/foundation/config/CCommon.java index 13847bc11..f285008aa 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CCommon.java +++ b/src/main/java/com/simibubi/create/foundation/config/CCommon.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CCommon extends ConfigBase { public final CWorldGen worldGen = nested(0, CWorldGen::new, Comments.worldGen); diff --git a/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java b/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java index 14ddacd56..9c8d663f4 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java +++ b/src/main/java/com/simibubi/create/foundation/config/CCuriosities.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CCuriosities extends ConfigBase { public final ConfigInt maxSymmetryWandRange = i(50, 10, "maxSymmetryWandRange", Comments.symmetryRange); diff --git a/src/main/java/com/simibubi/create/foundation/config/CFluids.java b/src/main/java/com/simibubi/create/foundation/config/CFluids.java index 7f7d65f61..4831b7125 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CFluids.java +++ b/src/main/java/com/simibubi/create/foundation/config/CFluids.java @@ -2,6 +2,8 @@ package com.simibubi.create.foundation.config; import com.simibubi.create.content.contraptions.fluids.actors.FluidManipulationBehaviour.BottomlessFluidMode; +import net.createmod.catnip.config.ConfigBase; + public class CFluids extends ConfigBase { public final ConfigInt fluidTankCapacity = i(8, 1, "fluidTankCapacity", Comments.buckets, Comments.fluidTankCapacity); diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index 1b4129644..66c66ae1c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -2,6 +2,8 @@ package com.simibubi.create.foundation.config; import com.simibubi.create.foundation.config.ui.ConfigAnnotations; +import net.createmod.catnip.config.ConfigBase; + public class CKinetics extends ConfigBase { public final ConfigBool disableStress = b(false, "disableStress", Comments.disableStress); diff --git a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java index cde5fe2d3..90e813ef4 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CLogistics extends ConfigBase { public final ConfigInt defaultExtractionLimit = diff --git a/src/main/java/com/simibubi/create/foundation/config/CRecipes.java b/src/main/java/com/simibubi/create/foundation/config/CRecipes.java index ec35f974f..54308361f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CRecipes.java +++ b/src/main/java/com/simibubi/create/foundation/config/CRecipes.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CRecipes extends ConfigBase { public final ConfigBool bulkPressing = b(false, "bulkPressing", Comments.bulkPressing); diff --git a/src/main/java/com/simibubi/create/foundation/config/CSchematics.java b/src/main/java/com/simibubi/create/foundation/config/CSchematics.java index 3409a41fc..83dfe74e0 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CSchematics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CSchematics.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CSchematics extends ConfigBase { public final ConfigBool creativePrintIncludesAir = b(false, "creativePrintIncludesAir", Comments.creativePrintIncludesAir); diff --git a/src/main/java/com/simibubi/create/foundation/config/CServer.java b/src/main/java/com/simibubi/create/foundation/config/CServer.java index af9212651..caa18c49d 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CServer.java +++ b/src/main/java/com/simibubi/create/foundation/config/CServer.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CServer extends ConfigBase { public final ConfigGroup infrastructure = group(0, "infrastructure", Comments.infrastructure); diff --git a/src/main/java/com/simibubi/create/foundation/config/CStress.java b/src/main/java/com/simibubi/create/foundation/config/CStress.java index 5ab9d0bc2..2659248ef 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CStress.java +++ b/src/main/java/com/simibubi/create/foundation/config/CStress.java @@ -4,11 +4,14 @@ import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; +import javax.annotation.Nonnull; + import com.simibubi.create.Create; import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.block.BlockStressValues.IStressValueProvider; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.config.ConfigBase; +import net.createmod.catnip.utility.Couple; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; import net.minecraftforge.common.ForgeConfigSpec.Builder; @@ -20,7 +23,7 @@ public class CStress extends ConfigBase implements IStressValueProvider { private final Map> impacts = new HashMap<>(); @Override - protected void registerAll(Builder builder) { + public void registerAll(@Nonnull Builder builder) { builder.comment("", Comments.su, Comments.impact) .push("impact"); BlockStressDefaults.DEFAULT_IMPACTS.forEach((r, i) -> { diff --git a/src/main/java/com/simibubi/create/foundation/config/CTrains.java b/src/main/java/com/simibubi/create/foundation/config/CTrains.java index e76b70cb5..68cd7302c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CTrains.java +++ b/src/main/java/com/simibubi/create/foundation/config/CTrains.java @@ -1,22 +1,24 @@ package com.simibubi.create.foundation.config; +import net.createmod.catnip.config.ConfigBase; + public class CTrains extends ConfigBase { public final ConfigBool trainsCauseDamage = b(true, "trainsCauseDamage", Comments.trainsCauseDamage); public final ConfigInt maxAssemblyLength = i(128, 5, "maxAssemblyLength", Comments.maxAssemblyLength); public final ConfigInt maxBogeyCount = i(20, 1, "maxBogeyCount", Comments.maxBogeyCount); public final ConfigFloat manualTrainSpeedModifier = f(.75f, 0, "manualTrainSpeedModifier", Comments.manualTrainSpeedModifier); - + public final ConfigGroup trainStats = group(1, "trainStats", "Standard Trains"); public final ConfigFloat trainTopSpeed = f(28, 0, "trainTopSpeed", Comments.mps, Comments.trainTopSpeed); public final ConfigFloat trainTurningTopSpeed = f(14, 0, "trainTurningTopSpeed", Comments.mps, Comments.trainTurningTopSpeed); public final ConfigFloat trainAcceleration = f(3, 0, "trainAcceleration", Comments.acc, Comments.trainAcceleration); - + public final ConfigGroup poweredTrainStats = group(1, "poweredTrainStats", "Powered Trains"); public final ConfigFloat poweredTrainTopSpeed = f(40, 0, "poweredTrainTopSpeed", Comments.mps, Comments.poweredTrainTopSpeed); public final ConfigFloat poweredTrainTurningTopSpeed = f(20, 0, "poweredTrainTurningTopSpeed", Comments.mps, Comments.poweredTrainTurningTopSpeed); public final ConfigFloat poweredTrainAcceleration = f(3, 0, "poweredTrainAcceleration", Comments.acc, Comments.poweredTrainAcceleration); - + @Override public String getName() { diff --git a/src/main/java/com/simibubi/create/foundation/config/CWorldGen.java b/src/main/java/com/simibubi/create/foundation/config/CWorldGen.java index 8220e50df..43ba43cc9 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CWorldGen.java +++ b/src/main/java/com/simibubi/create/foundation/config/CWorldGen.java @@ -1,7 +1,10 @@ package com.simibubi.create.foundation.config; +import javax.annotation.Nonnull; + import com.simibubi.create.foundation.worldgen.AllWorldFeatures; +import net.createmod.catnip.config.ConfigBase; import net.minecraftforge.common.ForgeConfigSpec.Builder; public class CWorldGen extends ConfigBase { @@ -9,7 +12,7 @@ public class CWorldGen extends ConfigBase { public final ConfigBool disable = b(false, "disableWorldGen", Comments.disable); @Override - protected void registerAll(Builder builder) { + public void registerAll(@Nonnull Builder builder) { super.registerAll(builder); AllWorldFeatures.fillConfig(builder); } diff --git a/src/main/java/com/simibubi/create/foundation/config/ConfigBase.java b/src/main/java/com/simibubi/create/foundation/config/ConfigBase.java deleted file mode 100644 index 5b8565da3..000000000 --- a/src/main/java/com/simibubi/create/foundation/config/ConfigBase.java +++ /dev/null @@ -1,192 +0,0 @@ -package com.simibubi.create.foundation.config; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; -import java.util.function.Supplier; - -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; -import net.minecraftforge.common.ForgeConfigSpec.Builder; -import net.minecraftforge.common.ForgeConfigSpec.ConfigValue; -import net.minecraftforge.common.ForgeConfigSpec.DoubleValue; -import net.minecraftforge.common.ForgeConfigSpec.EnumValue; -import net.minecraftforge.common.ForgeConfigSpec.IntValue; - -public abstract class ConfigBase { - - public ForgeConfigSpec specification; - - protected int depth; - protected List> allValues; - protected List children; - - protected void registerAll(final ForgeConfigSpec.Builder builder) { - for (CValue cValue : allValues) - cValue.register(builder); - } - - public void onLoad() { - if (children != null) - children.forEach(ConfigBase::onLoad); - } - - public void onReload() { - if (children != null) - children.forEach(ConfigBase::onReload); - } - - public abstract String getName(); - - @FunctionalInterface - protected static interface IValueProvider> - extends Function { - } - - protected ConfigBool b(boolean current, String name, String... comment) { - return new ConfigBool(name, current, comment); - } - - protected ConfigFloat f(float current, float min, float max, String name, String... comment) { - return new ConfigFloat(name, current, min, max, comment); - } - - protected ConfigFloat f(float current, float min, String name, String... comment) { - return f(current, min, Float.MAX_VALUE, name, comment); - } - - protected ConfigInt i(int current, int min, int max, String name, String... comment) { - return new ConfigInt(name, current, min, max, comment); - } - - protected ConfigInt i(int current, int min, String name, String... comment) { - return i(current, min, Integer.MAX_VALUE, name, comment); - } - - protected > ConfigEnum e(T defaultValue, String name, String... comment) { - return new ConfigEnum<>(name, defaultValue, comment); - } - - protected ConfigGroup group(int depth, String name, String... comment) { - return new ConfigGroup(name, depth, comment); - } - - protected T nested(int depth, Supplier constructor, String... comment) { - T config = constructor.get(); - new ConfigGroup(config.getName(), depth, comment); - new CValue(config.getName(), builder -> { - config.depth = depth; - config.registerAll(builder); - if (config.depth > depth) - builder.pop(config.depth - depth); - return null; - }); - if (children == null) - children = new ArrayList<>(); - children.add(config); - return config; - } - - public class CValue> { - protected ConfigValue value; - protected String name; - private IValueProvider provider; - - public CValue(String name, IValueProvider provider, String... comment) { - this.name = name; - this.provider = builder -> { - addComments(builder, comment); - return provider.apply(builder); - }; - if (allValues == null) - allValues = new ArrayList<>(); - allValues.add(this); - } - - public void addComments(Builder builder, String... comment) { - if (comment.length > 0) { - String[] comments = new String[comment.length + 1]; - comments[0] = " "; - System.arraycopy(comment, 0, comments, 1, comment.length); - builder.comment(comments); - } else - builder.comment(" "); - } - - public void register(ForgeConfigSpec.Builder builder) { - value = provider.apply(builder); - } - - public V get() { - return value.get(); - } - - public void set(V value) { - this.value.set(value); - } - - public String getName() { - return name; - } - } - - /** - * Marker for config subgroups - */ - public class ConfigGroup extends CValue { - - private int groupDepth; - private String[] comment; - - public ConfigGroup(String name, int depth, String... comment) { - super(name, builder -> null, comment); - groupDepth = depth; - this.comment = comment; - } - - @Override - public void register(Builder builder) { - if (depth > groupDepth) - builder.pop(depth - groupDepth); - depth = groupDepth; - addComments(builder, comment); - builder.push(getName()); - depth++; - } - - } - - public class ConfigBool extends CValue { - - public ConfigBool(String name, boolean def, String... comment) { - super(name, builder -> builder.define(name, def), comment); - } - } - - public class ConfigEnum> extends CValue> { - - public ConfigEnum(String name, T defaultValue, String[] comment) { - super(name, builder -> builder.defineEnum(name, defaultValue), comment); - } - - } - - public class ConfigFloat extends CValue { - - public ConfigFloat(String name, float current, float min, float max, String... comment) { - super(name, builder -> builder.defineInRange(name, current, min, max), comment); - } - - public float getF() { - return get().floatValue(); - } - } - - public class ConfigInt extends CValue { - - public ConfigInt(String name, int current, int min, int max, String... comment) { - super(name, builder -> builder.defineInRange(name, current, min, max), comment); - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java index cf5fb411f..e3f3d488b 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/BaseConfigScreen.java @@ -14,13 +14,14 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.element.TextStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; -import com.simibubi.create.foundation.item.TooltipHelper; +import net.createmod.catnip.gui.ScreenOpener; + +import net.createmod.catnip.gui.element.FadableScreenElement; +import net.createmod.catnip.utility.FontHelper; +import net.createmod.catnip.utility.theme.Theme; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.TextStencilElement; +import net.createmod.catnip.gui.widget.BoxWidget; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; @@ -30,7 +31,7 @@ import net.minecraftforge.fml.config.ModConfig; public class BaseConfigScreen extends ConfigScreen { - public static final DelegatedStencilElement.ElementRenderer DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_DISABLE)); + public static final FadableScreenElement DISABLED_RENDERER = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.Key.BUTTON_DISABLE.p()); private static final Map> DEFAULTS = new HashMap<>(); static { @@ -182,7 +183,7 @@ public class BaseConfigScreen extends ConfigScreen { serverConfigWidget.getToolTip() .add(new TextComponent("Stored individually per World")); serverConfigWidget.getToolTip() - .addAll(TooltipHelper.cutTextComponent( + .addAll(FontHelper.cutTextComponent( new TextComponent( "Gameplay settings can only be accessed from the in-game menu after joining a World or Server."), ChatFormatting.GRAY, ChatFormatting.GRAY)); @@ -194,15 +195,15 @@ public class BaseConfigScreen extends ConfigScreen { TextStencilElement titleText = new TextStencilElement(font, modID.toUpperCase(Locale.ROOT)) .centered(true, true) .withElementRenderer((ms, w, h, alpha) -> { - UIRenderHelper.angledGradient(ms, 0, 0, h / 2, h, w / 2, Theme.p(Theme.Key.CONFIG_TITLE_A)); - UIRenderHelper.angledGradient(ms, 0, w / 2, h / 2, h, w / 2, Theme.p(Theme.Key.CONFIG_TITLE_B)); + UIRenderHelper.angledGradient(ms, 0, 0, h / 2, h, w / 2, Theme.Key.CONFIG_TITLE_A.p()); + UIRenderHelper.angledGradient(ms, 0, w / 2, h / 2, h, w / 2, Theme.Key.CONFIG_TITLE_B.p()); }); int boxWidth = width + 10; int boxHeight = 39; int boxPadding = 4; title = new BoxWidget(-5, height / 2 - 110, boxWidth, boxHeight) //.withCustomBackground(new Color(0x20_000000, true)) - .withBorderColors(Theme.p(Theme.Key.BUTTON_IDLE)) + .withBorderColors(Theme.Key.BUTTON_IDLE.p()) .withPadding(0, boxPadding) .rescaleElement(boxWidth / 2f, (boxHeight - 2 * boxPadding) / 2f)//double the text size by telling it the element is only half as big as the available space .showingElement(titleText.at(0, 7)); @@ -230,7 +231,7 @@ public class BaseConfigScreen extends ConfigScreen { @Override protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - drawCenteredString(ms, font, "Access Configs for Mod:", width / 2, height / 2 - 105, Theme.i(Theme.Key.TEXT_ACCENT_STRONG)); + drawCenteredString(ms, font, "Access Configs for Mod:", width / 2, height / 2 - 105, Theme.Key.TEXT_ACCENT_STRONG.i()); } private void linkTo(Screen screen) { diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java index af0e38450..912240d12 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigHelper.java @@ -20,8 +20,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java index 51231e588..71f05047f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigModListScreen.java @@ -8,12 +8,12 @@ import org.lwjgl.glfw.GLFW; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; -import com.simibubi.create.foundation.item.TooltipHelper; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.widget.BoxWidget; +import net.createmod.catnip.utility.FontHelper; +import net.createmod.catnip.utility.theme.Theme; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.TextComponent; @@ -87,9 +87,9 @@ public class ConfigModListScreen extends ConfigScreen { list.setScrollAmount(list.getScrollAmount()); if (list.children().size() > 0) { - this.search.setTextColor(Theme.i(Theme.Key.TEXT)); + this.search.setTextColor(Theme.Key.TEXT.i()); } else { - this.search.setTextColor(Theme.i(Theme.Key.BUTTON_FAIL)); + this.search.setTextColor(Theme.Key.BUTTON_FAIL.i()); } } @@ -113,7 +113,7 @@ public class ConfigModListScreen extends ConfigScreen { button.updateColorsFromState(); button.modifyElement(e -> ((DelegatedStencilElement) e).withElementRenderer(BaseConfigScreen.DISABLED_RENDERER)); labelTooltip.add(new TextComponent(toHumanReadable(id))); - labelTooltip.addAll(TooltipHelper.cutTextComponent(new TextComponent("This Mod does not have any configs registered or is not using Forge's config system"), ChatFormatting.GRAY, ChatFormatting.GRAY)); + labelTooltip.addAll(FontHelper.cutTextComponent(new TextComponent("This Mod does not have any configs registered or is not using Forge's config system"), ChatFormatting.GRAY, ChatFormatting.GRAY)); } listeners.add(button); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java index bd86c151d..3bf80618e 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreen.java @@ -16,14 +16,14 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; import com.simibubi.create.foundation.gui.CreateMainMenuScreen; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.gui.element.StencilElement; -import com.simibubi.create.foundation.utility.animation.Force; -import com.simibubi.create.foundation.utility.animation.PhysicalFloat; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.animation.Force; +import net.createmod.catnip.utility.animation.PhysicalFloat; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.Direction; @@ -75,7 +75,7 @@ public abstract class ConfigScreen extends AbstractSimiScreen { renderMenuBackground(ms, partialTicks); } - new StencilElement() { + /*new StencilElement() { @Override protected void renderStencil(PoseStack ms) { renderCog(ms, partialTicks); @@ -85,7 +85,12 @@ public abstract class ConfigScreen extends AbstractSimiScreen { protected void renderElement(PoseStack ms) { fill(ms, -200, -200, 200, 200, 0x60_000000); } - }.at(width * 0.5f, height * 0.5f, 0).render(ms); + }*/ + + new DelegatedStencilElement( + (ps, x, y, alpha) -> renderCog(ps, partialTicks), + (ps, x, y, alpha) -> fill(ms, -200, -200, 200, 200, 0x60_000000) + ).at(width * 0.5f, height * 0.5f, 0).render(ms); super.renderWindowBackground(ms, mouseX, mouseY, partialTicks); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java index f014b5424..e229be96f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/ConfigScreenList.java @@ -13,13 +13,13 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.config.ui.entries.NumberEntry; import com.simibubi.create.foundation.gui.RemovedGuiUtils; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.TickableGuiEventListener; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.TextStencilElement; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.createmod.catnip.gui.TickableGuiEventListener; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.TextStencilElement; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.catnip.utility.theme.Theme; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.EditBox; @@ -177,7 +177,7 @@ public class ConfigScreenList extends ObjectSelectionList UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.TEXT_ACCENT_STRONG))); + this.label.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.Key.TEXT_ACCENT_STRONG.p())); labelTooltip = new ArrayList<>(); } @@ -216,8 +216,8 @@ public class ConfigScreenList extends ObjectSelectionList getLabelWidth(width) - 10) { @@ -225,7 +225,7 @@ public class ConfigScreenList extends ObjectSelectionList red = Theme.p(Theme.Key.BUTTON_FAIL); - Couple green = Theme.p(Theme.Key.BUTTON_SUCCESS); + Couple red = Theme.Key.BUTTON_FAIL.p(); + Couple green = Theme.Key.BUTTON_SUCCESS.p(); DelegatedStencilElement stencil = new DelegatedStencilElement(); @@ -332,13 +332,13 @@ public class SubMenuConfigScreen extends ConfigScreen { stencil.withElementRenderer((ms, w, h, alpha) -> UIRenderHelper.angledGradient(ms, 90, 8, 0, 16, 16, red)); serverLocked.withBorderColors(red); serverLocked.getToolTip().add(new TextComponent("Locked").withStyle(ChatFormatting.BOLD)); - serverLocked.getToolTip().addAll(TooltipHelper.cutStringTextComponent("You do not have enough permissions to edit the server config. You can still look at the current values here though.", ChatFormatting.GRAY, ChatFormatting.GRAY)); + serverLocked.getToolTip().addAll(FontHelper.cutStringTextComponent("You do not have enough permissions to edit the server config. You can still look at the current values here though.", ChatFormatting.GRAY, ChatFormatting.GRAY)); } else { stencil.withStencilRenderer((ms, w, h, alpha) -> AllIcons.I_CONFIG_UNLOCKED.render(ms, 0, 0)); stencil.withElementRenderer((ms, w, h, alpha) -> UIRenderHelper.angledGradient(ms, 90, 8, 0, 16, 16, green)); serverLocked.withBorderColors(green); serverLocked.getToolTip().add(new TextComponent("Unlocked").withStyle(ChatFormatting.BOLD)); - serverLocked.getToolTip().addAll(TooltipHelper.cutStringTextComponent("You have enough permissions to edit the server config. Changes you make here will be synced with the server when you save them.", ChatFormatting.GRAY, ChatFormatting.GRAY)); + serverLocked.getToolTip().addAll(FontHelper.cutStringTextComponent("You have enough permissions to edit the server config. Changes you make here will be synced with the server when you save them.", ChatFormatting.GRAY, ChatFormatting.GRAY)); } addRenderableWidget(serverLocked); @@ -349,7 +349,7 @@ public class SubMenuConfigScreen extends ConfigScreen { super.renderWindow(ms, mouseX, mouseY, partialTicks); int x = width / 2; - drawCenteredString(ms, minecraft.font, ConfigScreen.modID + " > " + type.toString().toLowerCase(Locale.ROOT) + " > " + title, x, 15, Theme.i(Theme.Key.TEXT)); + drawCenteredString(ms, minecraft.font, ConfigScreen.modID + " > " + type.toString().toLowerCase(Locale.ROOT) + " > " + title, x, 15, Theme.Key.TEXT.i()); } @Override @@ -393,9 +393,9 @@ public class SubMenuConfigScreen extends ConfigScreen { private void updateFilter(String search) { if (list.search(search)) { - this.search.setTextColor(Theme.i(Theme.Key.TEXT)); + this.search.setTextColor(Theme.Key.TEXT.i()); } else { - this.search.setTextColor(Theme.i(Theme.Key.BUTTON_FAIL)); + this.search.setTextColor(Theme.Key.BUTTON_FAIL.i()); } } diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/BooleanEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/BooleanEntry.java index 371100441..1d617ea24 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/BooleanEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/BooleanEntry.java @@ -2,11 +2,11 @@ package com.simibubi.create.foundation.config.ui.entries; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.RenderElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.RenderElement; +import net.createmod.catnip.gui.widget.BoxWidget; +import net.createmod.catnip.utility.theme.Theme; import net.minecraftforge.common.ForgeConfigSpec; public class BooleanEntry extends ValueEntry { @@ -19,11 +19,11 @@ public class BooleanEntry extends ValueEntry { super(label, value, spec); enabled = AllIcons.I_CONFIRM.asStencil() - .withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_SUCCESS))) + .withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.Key.BUTTON_SUCCESS.p())) .at(10, 0); disabled = AllIcons.I_DISABLE.asStencil() - .withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.p(Theme.Key.BUTTON_FAIL))) + .withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, height, width, Theme.Key.BUTTON_FAIL.p())) .at(10, 0); button = new BoxWidget().showingElement(enabled) diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java index cc70e436f..d57f94942 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/EnumEntry.java @@ -5,13 +5,13 @@ import java.util.Locale; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.config.ui.ConfigScreen; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.element.TextStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.BoxElement; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.element.TextStencilElement; +import net.createmod.catnip.gui.widget.BoxWidget; +import net.createmod.catnip.utility.theme.Theme; import net.minecraft.client.Minecraft; import net.minecraftforge.common.ForgeConfigSpec; @@ -28,18 +28,18 @@ public class EnumEntry extends ValueEntry> { valueText = new TextStencilElement(Minecraft.getInstance().font, "YEP").centered(true, true); valueText.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, 0, height / 2, - height, width, Theme.p(Theme.Key.TEXT))); + height, width, Theme.Key.TEXT.p())); DelegatedStencilElement l = AllIcons.I_CONFIG_PREV.asStencil(); cycleLeft = new BoxWidget(0, 0, cycleWidth + 8, 16) - .withCustomBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) + .withCustomBackground(Theme.Key.PONDER_BACKGROUND_FLAT.c()) .showingElement(l) .withCallback(() -> cycleValue(-1)); l.withElementRenderer(BoxWidget.gradientFactory.apply(cycleLeft)); DelegatedStencilElement r = AllIcons.I_CONFIG_NEXT.asStencil(); cycleRight = new BoxWidget(0, 0, cycleWidth + 8, 16) - .withCustomBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) + .withCustomBackground(Theme.Key.PONDER_BACKGROUND_FLAT.c()) .showingElement(r) .withCallback(() -> cycleValue(1)); r.at(cycleWidth - 8, 0); @@ -94,7 +94,7 @@ public class EnumEntry extends ValueEntry> { cycleRight.render(ms, mouseX, mouseY, partialTicks); new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) + .withBackground(Theme.Key.PONDER_BACKGROUND_FLAT.c()) .flatBorder(0x01_000000) .withBounds(48, 6) .at(cycleLeft.x + 22, cycleLeft.y + 5) diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java index e90668608..656e5846a 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/NumberEntry.java @@ -8,9 +8,10 @@ import javax.annotation.Nullable; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.config.ui.ConfigTextField; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.TextStencilElement; + +import net.createmod.catnip.utility.theme.Theme; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.TextStencilElement; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; @@ -61,7 +62,7 @@ public abstract class NumberEntry extends ValueEntry { } else { textField.setValue(String.valueOf(getValue())); } - textField.setTextColor(Theme.i(Theme.Key.TEXT)); + textField.setTextColor(Theme.Key.TEXT.i()); Object range = spec.getRange(); try { @@ -76,13 +77,13 @@ public abstract class NumberEntry extends ValueEntry { if (min.doubleValue() > getTypeMin().doubleValue()) { TextComponent t = new TextComponent(formatBound(min) + " < "); minText = new TextStencilElement(font, t).centered(true, false); - minText.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0 ,0, height/2, height, width, Theme.p(Theme.Key.TEXT_DARKER))); + minText.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0 ,0, height/2, height, width, Theme.Key.TEXT_DARKER.p())); minOffset = font.width(t); } if (max.doubleValue() < getTypeMax().doubleValue()) { TextComponent t = new TextComponent(" < " + formatBound(max)); maxText = new TextStencilElement(font, t).centered(true, false); - maxText.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0 ,0, height/2, height, width, Theme.p(Theme.Key.TEXT_DARKER))); + maxText.withElementRenderer((ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0 ,0, height/2, height, width, Theme.Key.TEXT_DARKER.p())); maxOffset = font.width(t); } } catch (NoSuchFieldException | IllegalAccessException | ClassCastException | NullPointerException ignored) { @@ -95,11 +96,11 @@ public abstract class NumberEntry extends ValueEntry { if (!spec.test(number)) throw new IllegalArgumentException(); - textField.setTextColor(Theme.i(Theme.Key.TEXT)); + textField.setTextColor(Theme.Key.TEXT.i()); setValue(number); } catch (IllegalArgumentException ignored) { - textField.setTextColor(Theme.i(Theme.Key.BUTTON_FAIL)); + textField.setTextColor(Theme.Key.BUTTON_FAIL.i()); } }); diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/SubMenuEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/SubMenuEntry.java index d86f98aaa..c9a6c9a4c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/SubMenuEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/SubMenuEntry.java @@ -5,10 +5,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.config.ui.ConfigScreenList; import com.simibubi.create.foundation.config.ui.SubMenuConfigScreen; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.widget.BoxWidget; import net.minecraftforge.common.ForgeConfigSpec; public class SubMenuEntry extends ConfigScreenList.LabeledEntry { diff --git a/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java b/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java index 1d3d89d3b..1e1ce7418 100644 --- a/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java +++ b/src/main/java/com/simibubi/create/foundation/config/ui/entries/ValueEntry.java @@ -15,11 +15,11 @@ import com.simibubi.create.foundation.config.ui.ConfigHelper; import com.simibubi.create.foundation.config.ui.ConfigScreen; import com.simibubi.create.foundation.config.ui.ConfigScreenList; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; -import com.simibubi.create.foundation.item.TooltipHelper; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.widget.BoxWidget; +import net.createmod.catnip.utility.FontHelper; +import net.createmod.catnip.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.TextComponent; import net.minecraftforge.common.ForgeConfigSpec; @@ -69,15 +69,15 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { labelTooltip.addAll(commentLines.stream() .filter(Predicates.not(s -> s.startsWith("Range"))) .map(TextComponent::new) - .flatMap(stc -> TooltipHelper.cutTextComponent(stc, ChatFormatting.GRAY, ChatFormatting.GRAY) + .flatMap(stc -> FontHelper.cutTextComponent(stc, ChatFormatting.GRAY, ChatFormatting.GRAY) .stream()) .collect(Collectors.toList())); if (annotations.containsKey(ConfigAnnotations.RequiresRelog.TRUE.getName())) - labelTooltip.addAll(TooltipHelper.cutTextComponent(new TextComponent("Changing this value will require a _relog_ to take full effect"), ChatFormatting.GRAY, ChatFormatting.GOLD)); + labelTooltip.addAll(FontHelper.cutTextComponent(new TextComponent("Changing this value will require a _relog_ to take full effect"), ChatFormatting.GRAY, ChatFormatting.GOLD)); if (annotations.containsKey(ConfigAnnotations.RequiresRestart.CLIENT.getName())) - labelTooltip.addAll(TooltipHelper.cutTextComponent(new TextComponent("Changing this value will require a _restart_ to take full effect"), ChatFormatting.GRAY, ChatFormatting.RED)); + labelTooltip.addAll(FontHelper.cutTextComponent(new TextComponent("Changing this value will require a _restart_ to take full effect"), ChatFormatting.GRAY, ChatFormatting.RED)); labelTooltip.add(new TextComponent(ConfigScreen.modID + ":" + path.get(path.size() - 1)).withStyle(ChatFormatting.DARK_GRAY)); } diff --git a/src/main/java/com/simibubi/create/foundation/data/AllLangPartials.java b/src/main/java/com/simibubi/create/foundation/data/AllLangPartials.java index 436839f30..8ed068b2e 100644 --- a/src/main/java/com/simibubi/create/foundation/data/AllLangPartials.java +++ b/src/main/java/com/simibubi/create/foundation/data/AllLangPartials.java @@ -5,9 +5,10 @@ import com.google.gson.JsonElement; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.Create; import com.simibubi.create.foundation.advancement.AllAdvancements; -import com.simibubi.create.foundation.ponder.PonderLocalization; import com.simibubi.create.foundation.utility.FilesHelper; -import com.simibubi.create.foundation.utility.Lang; + +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.ponder.foundation.PonderLocalization; public enum AllLangPartials { @@ -15,7 +16,7 @@ public enum AllLangPartials { INTERFACE("UI & Messages"), SUBTITLES("Subtitles", AllSoundEvents::provideLangEntries), TOOLTIPS("Item Descriptions"), - PONDER("Ponder Content", PonderLocalization::provideLangEntries), + PONDER("Ponder Content", () -> PonderLocalization.provideLangEntries(Create.ID)), ; diff --git a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java index 8b2619a02..8b14483f4 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java @@ -25,12 +25,12 @@ import com.simibubi.create.content.contraptions.components.structureMovement.mou import com.simibubi.create.content.contraptions.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; import com.tterrag.registrate.providers.DataGenContext; import com.tterrag.registrate.providers.RegistrateBlockstateProvider; import com.tterrag.registrate.util.nullness.NonNullBiConsumer; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; @@ -76,7 +76,7 @@ public class BlockStateGen { boolean customItem) { return (c, p) -> horizontalAxisBlock(c, p, getBlockModel(customItem, c, p)); } - + public static NonNullBiConsumer, RegistrateBlockstateProvider> simpleCubeAll( String path) { return (c, p) -> p.simpleBlock(c.get(), p.models() diff --git a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java index ddbb9529d..b6c759e0b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java +++ b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java @@ -23,9 +23,9 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.PonderScene; import com.simibubi.create.foundation.utility.FilesHelper; +import net.createmod.ponder.foundation.PonderScene; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; import net.minecraft.data.HashCache; @@ -60,7 +60,7 @@ public class LangMerger implements DataProvider { private void populateLangIgnore() { // Key prefixes added here will NOT be transferred to lang templates langIgnore.add("create.ponder.debug_"); // Ponder debug scene text - langIgnore.add("create.gui.chromatic_projector"); + langIgnore.add("create.gui.chromatic_projector"); } private boolean shouldIgnore(String key) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CompatMetals.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CompatMetals.java index dd275be0b..ec2343397 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CompatMetals.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CompatMetals.java @@ -4,7 +4,7 @@ import static com.simibubi.create.foundation.data.recipe.Mods.IE; import static com.simibubi.create.foundation.data.recipe.Mods.MEK; import static com.simibubi.create.foundation.data.recipe.Mods.TH; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; public enum CompatMetals { ALUMINUM(IE), diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java index 1b4b9d894..486695089 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CrushingRecipeGen.java @@ -20,8 +20,8 @@ import com.simibubi.create.AllTags; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; import com.simibubi.create.content.palettes.AllPaletteStoneTypes; -import com.simibubi.create.foundation.utility.Lang; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.data.DataGenerator; import net.minecraft.tags.ItemTags; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/LogStrippingFakeRecipes.java b/src/main/java/com/simibubi/create/foundation/data/recipe/LogStrippingFakeRecipes.java index 3cf72b753..a5b2b49f6 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/LogStrippingFakeRecipes.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/LogStrippingFakeRecipes.java @@ -6,7 +6,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.components.deployer.ManualApplicationRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; @@ -33,7 +33,7 @@ public class LogStrippingFakeRecipes { ItemStack axe = new ItemStack(Items.IRON_AXE); axe.hideTooltipPart(TooltipPart.MODIFIERS); - axe.setHoverName(Lang.translateDirect("recipe.item_application.any_axe") + axe.setHoverName(CreateLang.translateDirect("recipe.item_application.any_axe") .withStyle(style -> style.withItalic(false))); ITagManager tags = ForgeRegistries.ITEMS.tags(); tags.getTag(ItemTags.LOGS) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index fdb315cfd..fdaf19f14 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -27,11 +27,11 @@ import com.simibubi.create.Create; import com.simibubi.create.content.AllSections; import com.simibubi.create.content.palettes.AllPaletteBlocks; import com.simibubi.create.content.palettes.AllPaletteStoneTypes; -import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.entry.BlockEntry; import com.tterrag.registrate.util.entry.ItemEntry; import com.tterrag.registrate.util.entry.ItemProviderEntry; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.data.DataGenerator; import net.minecraft.data.recipes.FinishedRecipe; diff --git a/src/main/java/com/simibubi/create/foundation/fluid/CombinedTankWrapper.java b/src/main/java/com/simibubi/create/foundation/fluid/CombinedTankWrapper.java index a04d73531..e58910917 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/CombinedTankWrapper.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/CombinedTankWrapper.java @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.fluid; -import com.simibubi.create.foundation.utility.Iterate; - +import net.createmod.catnip.utility.Iterate; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.wrapper.EmptyHandler; diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java index ce8dec8de..e12980842 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidHelper.java @@ -11,8 +11,8 @@ import com.simibubi.create.content.contraptions.fluids.actors.GenericItemFilling import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTileEntity; import com.simibubi.create.content.contraptions.processing.EmptyingByBasin; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.nbt.TagParser; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; @@ -48,15 +48,15 @@ public class FluidHelper { public static boolean isLava(Fluid fluid) { return convertToStill(fluid) == Fluids.LAVA; } - + public static boolean isTag(Fluid fluid, TagKey pTag) { return fluid.is(pTag); } - + public static boolean isTag(FluidState fluid, TagKey pTag) { return isTag(fluid.getType(), pTag); } - + public static boolean isTag(FluidStack fluid, TagKey pTag) { return isTag(fluid.getFluid(), pTag); } diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java index 3cd201912..2946f12f2 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java @@ -4,36 +4,25 @@ import java.util.function.Function; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.PoseStack.Pose; import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.foundation.render.RenderTypes; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.BasicFluidRenderer; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.core.Vec3i; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @OnlyIn(Dist.CLIENT) -public class FluidRenderer { - - public static VertexConsumer getFluidBuilder(MultiBufferSource buffer) { - return buffer.getBuffer(RenderTypes.getFluid()); - } +public class FluidRenderer extends BasicFluidRenderer { public static void renderFluidStream(FluidStack fluidStack, Direction direction, float radius, float progress, boolean inbound, MultiBufferSource buffer, PoseStack ms, int light) { @@ -87,149 +76,9 @@ public class FluidRenderer { ms.popPose(); } - public static void renderFluidBox(FluidStack fluidStack, float xMin, float yMin, float zMin, float xMax, - float yMax, float zMax, MultiBufferSource buffer, PoseStack ms, int light, boolean renderBottom) { - renderFluidBox(fluidStack, xMin, yMin, zMin, xMax, yMax, zMax, getFluidBuilder(buffer), ms, light, renderBottom); - } - - public static void renderFluidBox(FluidStack fluidStack, float xMin, float yMin, float zMin, float xMax, - float yMax, float zMax, VertexConsumer builder, PoseStack ms, int light, boolean renderBottom) { - Fluid fluid = fluidStack.getFluid(); - FluidAttributes fluidAttributes = fluid.getAttributes(); - TextureAtlasSprite fluidTexture = Minecraft.getInstance() - .getTextureAtlas(InventoryMenu.BLOCK_ATLAS) - .apply(fluidAttributes.getStillTexture(fluidStack)); - - int color = fluidAttributes.getColor(fluidStack); - int blockLightIn = (light >> 4) & 0xF; - int luminosity = Math.max(blockLightIn, fluidAttributes.getLuminosity(fluidStack)); - light = (light & 0xF00000) | luminosity << 4; - - Vec3 center = new Vec3(xMin + (xMax - xMin) / 2, yMin + (yMax - yMin) / 2, zMin + (zMax - zMin) / 2); - ms.pushPose(); - if (fluidStack.getFluid() - .getAttributes() - .isLighterThanAir()) - TransformStack.cast(ms) - .translate(center) - .rotateX(180) - .translateBack(center); - - for (Direction side : Iterate.directions) { - if (side == Direction.DOWN && !renderBottom) - continue; - - boolean positive = side.getAxisDirection() == AxisDirection.POSITIVE; - if (side.getAxis() - .isHorizontal()) { - if (side.getAxis() == Axis.X) { - renderStillTiledFace(side, zMin, yMin, zMax, yMax, positive ? xMax : xMin, - builder, ms, light, color, fluidTexture); - } else { - renderStillTiledFace(side, xMin, yMin, xMax, yMax, positive ? zMax : zMin, - builder, ms, light, color, fluidTexture); - } - } else { - renderStillTiledFace(side, xMin, zMin, xMax, zMax, positive ? yMax : yMin, - builder, ms, light, color, fluidTexture); - } - } - - ms.popPose(); - } - - public static void renderStillTiledFace(Direction dir, float left, float down, float right, float up, - float depth, VertexConsumer builder, PoseStack ms, int light, int color, TextureAtlasSprite texture) { - FluidRenderer.renderTiledFace(dir, left, down, right, up, depth, builder, ms, light, color, texture, 1); - } - public static void renderFlowingTiledFace(Direction dir, float left, float down, float right, float up, float depth, VertexConsumer builder, PoseStack ms, int light, int color, TextureAtlasSprite texture) { - FluidRenderer.renderTiledFace(dir, left, down, right, up, depth, builder, ms, light, color, texture, 0.5f); - } - - public static void renderTiledFace(Direction dir, float left, float down, float right, float up, - float depth, VertexConsumer builder, PoseStack ms, int light, int color, TextureAtlasSprite texture, - float textureScale) { - boolean positive = dir.getAxisDirection() == Direction.AxisDirection.POSITIVE; - boolean horizontal = dir.getAxis().isHorizontal(); - boolean x = dir.getAxis() == Axis.X; - - float shrink = texture.uvShrinkRatio() * 0.25f * textureScale; - float centerU = texture.getU0() + (texture.getU1() - texture.getU0()) * 0.5f * textureScale; - float centerV = texture.getV0() + (texture.getV1() - texture.getV0()) * 0.5f * textureScale; - - float f; - float x2 = 0; - float y2 = 0; - float u1, u2; - float v1, v2; - for (float x1 = left; x1 < right; x1 = x2) { - f = Mth.floor(x1); - x2 = Math.min(f + 1, right); - if (dir == Direction.NORTH || dir == Direction.EAST) { - f = Mth.ceil(x2); - u1 = texture.getU((f - x2) * 16 * textureScale); - u2 = texture.getU((f - x1) * 16 * textureScale); - } else { - u1 = texture.getU((x1 - f) * 16 * textureScale); - u2 = texture.getU((x2 - f) * 16 * textureScale); - } - u1 = Mth.lerp(shrink, u1, centerU); - u2 = Mth.lerp(shrink, u2, centerU); - for (float y1 = down; y1 < up; y1 = y2) { - f = Mth.floor(y1); - y2 = Math.min(f + 1, up); - if (dir == Direction.UP) { - v1 = texture.getV((y1 - f) * 16 * textureScale); - v2 = texture.getV((y2 - f) * 16 * textureScale); - } else { - f = Mth.ceil(y2); - v1 = texture.getV((f - y2) * 16 * textureScale); - v2 = texture.getV((f - y1) * 16 * textureScale); - } - v1 = Mth.lerp(shrink, v1, centerV); - v2 = Mth.lerp(shrink, v2, centerV); - - if (horizontal) { - if (x) { - putVertex(builder, ms, depth, y2, positive ? x2 : x1, color, u1, v1, dir, light); - putVertex(builder, ms, depth, y1, positive ? x2 : x1, color, u1, v2, dir, light); - putVertex(builder, ms, depth, y1, positive ? x1 : x2, color, u2, v2, dir, light); - putVertex(builder, ms, depth, y2, positive ? x1 : x2, color, u2, v1, dir, light); - } else { - putVertex(builder, ms, positive ? x1 : x2, y2, depth, color, u1, v1, dir, light); - putVertex(builder, ms, positive ? x1 : x2, y1, depth, color, u1, v2, dir, light); - putVertex(builder, ms, positive ? x2 : x1, y1, depth, color, u2, v2, dir, light); - putVertex(builder, ms, positive ? x2 : x1, y2, depth, color, u2, v1, dir, light); - } - } else { - putVertex(builder, ms, x1, depth, positive ? y1 : y2, color, u1, v1, dir, light); - putVertex(builder, ms, x1, depth, positive ? y2 : y1, color, u1, v2, dir, light); - putVertex(builder, ms, x2, depth, positive ? y2 : y1, color, u2, v2, dir, light); - putVertex(builder, ms, x2, depth, positive ? y1 : y2, color, u2, v1, dir, light); - } - } - } - } - - private static void putVertex(VertexConsumer builder, PoseStack ms, float x, float y, float z, int color, float u, - float v, Direction face, int light) { - - Vec3i normal = face.getNormal(); - Pose peek = ms.last(); - int a = color >> 24 & 0xff; - int r = color >> 16 & 0xff; - int g = color >> 8 & 0xff; - int b = color & 0xff; - - builder.vertex(peek.pose(), x, y, z) - .color(r, g, b, a) - .uv(u, v) - .overlayCoords(OverlayTexture.NO_OVERLAY) - .uv2(light) - .normal(peek.normal(), normal.getX(), normal.getY(), normal.getZ()) - .endVertex(); + renderTiledFace(dir, left, down, right, up, depth, builder, ms, light, color, texture, 0.5f); } } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java deleted file mode 100644 index f0388bc00..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import java.util.Collection; -import java.util.List; - -import com.mojang.blaze3d.platform.InputConstants; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget; - -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.components.Widget; -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.client.gui.narration.NarratableEntry; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -public abstract class AbstractSimiScreen extends Screen { - - protected int windowWidth, windowHeight; - protected int windowXOffset, windowYOffset; - protected int guiLeft, guiTop; - - protected AbstractSimiScreen(Component title) { - super(title); - } - - protected AbstractSimiScreen() { - this(TextComponent.EMPTY); - } - - /** - * This method must be called before {@code super.init()}! - */ - protected void setWindowSize(int width, int height) { - windowWidth = width; - windowHeight = height; - } - - /** - * This method must be called before {@code super.init()}! - */ - protected void setWindowOffset(int xOffset, int yOffset) { - windowXOffset = xOffset; - windowYOffset = yOffset; - } - - @Override - protected void init() { - guiLeft = (width - windowWidth) / 2; - guiTop = (height - windowHeight) / 2; - guiLeft += windowXOffset; - guiTop += windowYOffset; - } - - @Override - public void tick() { - for (GuiEventListener listener : children()) { - if (listener instanceof TickableGuiEventListener tickable) { - tickable.tick(); - } - } - } - - @Override - public boolean isPauseScreen() { - return false; - } - - @SuppressWarnings("unchecked") - protected void addRenderableWidgets(W... widgets) { - for (W widget : widgets) { - addRenderableWidget(widget); - } - } - - protected void addRenderableWidgets(Collection widgets) { - for (W widget : widgets) { - addRenderableWidget(widget); - } - } - - protected void removeWidgets(GuiEventListener... widgets) { - for (GuiEventListener widget : widgets) { - removeWidget(widget); - } - } - - protected void removeWidgets(Collection widgets) { - for (GuiEventListener widget : widgets) { - removeWidget(widget); - } - } - - @Override - public void render(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - partialTicks = minecraft.getFrameTime(); - - ms.pushPose(); - - prepareFrame(); - - renderWindowBackground(ms, mouseX, mouseY, partialTicks); - renderWindow(ms, mouseX, mouseY, partialTicks); - super.render(ms, mouseX, mouseY, partialTicks); - renderWindowForeground(ms, mouseX, mouseY, partialTicks); - - endFrame(); - - ms.popPose(); - } - - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - boolean keyPressed = super.keyPressed(keyCode, scanCode, modifiers); - if (keyPressed || getFocused() != null) - return keyPressed; - - InputConstants.Key mouseKey = InputConstants.getKey(keyCode, scanCode); - if (this.minecraft.options.keyInventory.isActiveAndMatches(mouseKey)) { - this.onClose(); - return true; - } - - return false; - } - - protected void prepareFrame() {} - - protected void renderWindowBackground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - renderBackground(ms); - } - - protected abstract void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks); - - protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - for (Widget widget : renderables) { - if (widget instanceof AbstractSimiWidget simiWidget && simiWidget.isHoveredOrFocused() - && simiWidget.visible) { - List tooltip = simiWidget.getToolTip(); - if (tooltip.isEmpty()) - continue; - int ttx = simiWidget.lockedTooltipX == -1 ? mouseX : simiWidget.lockedTooltipX + simiWidget.x; - int tty = simiWidget.lockedTooltipY == -1 ? mouseY : simiWidget.lockedTooltipY + simiWidget.y; - renderComponentTooltip(ms, tooltip, ttx, tty); - } - } - } - - protected void endFrame() {} - - @Deprecated - protected void debugWindowArea(PoseStack matrixStack) { - fill(matrixStack, guiLeft + windowWidth, guiTop + windowHeight, guiLeft, guiTop, 0xD3D3D3D3); - } - - @Override - public GuiEventListener getFocused() { - GuiEventListener focused = super.getFocused(); - if (focused instanceof AbstractWidget && !((AbstractWidget) focused).isFocused()) - focused = null; - setFocused(focused); - return focused; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index 53f9571e8..78c1cbae3 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -1,17 +1,18 @@ package com.simibubi.create.foundation.gui; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.Create; -import com.simibubi.create.foundation.gui.element.ScreenElement; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.gui.TextureSheetSegment; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.gui.element.ScreenElement; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.gui.GuiComponent; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -public enum AllGuiTextures implements ScreenElement { +public enum AllGuiTextures implements ScreenElement, TextureSheetSegment { // Inventories PLAYER_INVENTORY("player_inventory", 176, 108), @@ -163,7 +164,7 @@ public enum AllGuiTextures implements ScreenElement { SPEECH_TOOLTIP_BACKGROUND("widgets", 0, 24, 8, 8), SPEECH_TOOLTIP_COLOR("widgets", 8, 24, 8, 8), - + TRAIN_HUD_SPEED_BG("widgets", 0, 190, 182, 5), TRAIN_HUD_SPEED("widgets", 0, 185, 182, 5), TRAIN_HUD_THROTTLE("widgets", 0, 195, 182, 5), @@ -174,30 +175,24 @@ public enum AllGuiTextures implements ScreenElement { TRAIN_PROMPT_R("widgets", 11, 209, 3, 16), TRAIN_PROMPT("widgets", 0, 230, 256, 16), - // PlacementIndicator - PLACEMENT_INDICATOR_SHEET("placement_indicator", 0, 0, 16, 256); - ; public static final int FONT_COLOR = 0x575F7A; public final ResourceLocation location; - public int width, height; - public int startX, startY; + private final int width; + private final int height; + private final int startX; + private final int startY; - private AllGuiTextures(String location, int width, int height) { + AllGuiTextures(String location, int width, int height) { this(location, 0, 0, width, height); } - - private AllGuiTextures(int startX, int startY) { - this("icons", startX * 16, startY * 16, 16, 16); - } - - private AllGuiTextures(String location, int startX, int startY, int width, int height) { + AllGuiTextures(String location, int startX, int startY, int width, int height) { this(Create.ID, location, startX, startY, width, height); } - private AllGuiTextures(String namespace, String location, int startX, int startY, int width, int height) { + AllGuiTextures(String namespace, String location, int startX, int startY, int width, int height) { this.location = new ResourceLocation(namespace, "textures/gui/" + location + ".png"); this.width = width; this.height = height; @@ -205,9 +200,9 @@ public enum AllGuiTextures implements ScreenElement { this.startY = startY; } - @OnlyIn(Dist.CLIENT) - public void bind() { - RenderSystem.setShaderTexture(0, location); + @Override + public ResourceLocation getLocation() { + return location; } @OnlyIn(Dist.CLIENT) @@ -229,4 +224,23 @@ public enum AllGuiTextures implements ScreenElement { UIRenderHelper.drawColoredTexture(ms, c, x, y, startX, startY, width, height); } + @Override + public int getStartX() { + return startX; + } + + @Override + public int getStartY() { + return startY; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public int getHeight() { + return height; + } } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java index 0051e041e..310956648 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java @@ -5,10 +5,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Matrix4f; import com.simibubi.create.Create; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.gui.element.ScreenElement; -import com.simibubi.create.foundation.utility.Color; +import net.createmod.catnip.gui.element.DelegatedStencilElement; +import net.createmod.catnip.gui.element.ScreenElement; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/com/simibubi/create/foundation/gui/ConfirmationScreen.java b/src/main/java/com/simibubi/create/foundation/gui/ConfirmationScreen.java deleted file mode 100644 index 211539583..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/ConfirmationScreen.java +++ /dev/null @@ -1,230 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - -import javax.annotation.Nonnull; - -import org.lwjgl.opengl.GL30; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.TextStencilElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.Style; - -public class ConfirmationScreen extends AbstractSimiScreen { - - private Screen source; - private Consumer action = _success -> { - }; - private List text = new ArrayList<>(); - private boolean centered = false; - private int x; - private int y; - private int textWidth; - private int textHeight; - private boolean tristate; - - private BoxWidget confirm; - private BoxWidget confirmDontSave; - private BoxWidget cancel; - private BoxElement textBackground; - - public enum Response { - Confirm, ConfirmDontSave, Cancel - } - - /* - * Removes text lines from the back of the list - * */ - public ConfirmationScreen removeTextLines(int amount) { - if (amount > text.size()) - return clearText(); - - text.subList(text.size() - amount, text.size()).clear(); - return this; - } - - public ConfirmationScreen clearText() { - this.text.clear(); - return this; - } - - public ConfirmationScreen addText(FormattedText text) { - this.text.add(text); - return this; - } - - public ConfirmationScreen withText(FormattedText text) { - return clearText().addText(text); - } - - public ConfirmationScreen at(int x, int y) { - this.x = Math.max(x, 0); - this.y = Math.max(y, 0); - this.centered = false; - return this; - } - - public ConfirmationScreen centered() { - this.centered = true; - return this; - } - - public ConfirmationScreen withAction(Consumer action) { - this.action = r -> action.accept(r == Response.Confirm); - return this; - } - - public ConfirmationScreen withThreeActions(Consumer action) { - this.action = action; - this.tristate = true; - return this; - } - - public void open(@Nonnull Screen source) { - this.source = source; - Minecraft client = source.getMinecraft(); - this.init(client, client.getWindow().getGuiScaledWidth(), client.getWindow().getGuiScaledHeight()); - this.minecraft.screen = this; - } - - @Override - public void tick() { - super.tick(); - source.tick(); - } - - @Override - protected void init() { - super.init(); - - ArrayList copy = new ArrayList<>(text); - text.clear(); - copy.forEach(t -> text.addAll(font.getSplitter().splitLines(t, 300, Style.EMPTY))); - - textHeight = text.size() * (font.lineHeight + 1) + 4; - textWidth = 300; - - if (centered) { - x = width/2 - textWidth/2 - 2; - y = height/2 - textHeight/2 - 16; - } else { - x = Math.max(0, x - textWidth / 2); - y = Math.max(0, y -= textHeight); - } - - if (x + textWidth > width) { - x = width - textWidth; - } - - if (y + textHeight + 30 > height) { - y = height - textHeight - 30; - } - - int buttonX = x + textWidth / 2 - 6 - (int) (70 * (tristate ? 1.5f : 1)); - - TextStencilElement confirmText = - new TextStencilElement(font, tristate ? "Save" : "Confirm").centered(true, true); - confirm = new BoxWidget(buttonX, y + textHeight + 6, 70, 16).withCallback(() -> accept(Response.Confirm)); - confirm.showingElement(confirmText.withElementRenderer(BoxWidget.gradientFactory.apply(confirm))); - addRenderableWidget(confirm); - - buttonX += 12 + 70; - - if (tristate) { - TextStencilElement confirmDontSaveText = - new TextStencilElement(font, "Don't Save").centered(true, true); - confirmDontSave = - new BoxWidget(buttonX, y + textHeight + 6, 70, 16).withCallback(() -> accept(Response.ConfirmDontSave)); - confirmDontSave.showingElement( - confirmDontSaveText.withElementRenderer(BoxWidget.gradientFactory.apply(confirmDontSave))); - addRenderableWidget(confirmDontSave); - buttonX += 12 + 70; - } - - TextStencilElement cancelText = new TextStencilElement(font, "Cancel").centered(true, true); - cancel = new BoxWidget(buttonX, y + textHeight + 6, 70, 16) - .withCallback(() -> accept(Response.Cancel)); - cancel.showingElement(cancelText.withElementRenderer(BoxWidget.gradientFactory.apply(cancel))); - addRenderableWidget(cancel); - - textBackground = new BoxElement() - .gradientBorder(Theme.p(Theme.Key.BUTTON_DISABLE)) - .withBounds(width + 10, textHeight + 35) - .at(-5, y - 5); - - if (text.size() == 1) - x = (width - font.width(text.get(0))) / 2; - } - - @Override - public void onClose() { - accept(Response.Cancel); - } - - private void accept(Response success) { - minecraft.screen = source; - action.accept(success); - } - - @Override - protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - textBackground.render(ms); - int offset = font.lineHeight + 1; - int lineY = y - offset; - - ms.pushPose(); - ms.translate(0, 0, 200); - - for (FormattedText line : text) { - lineY += offset; - if (line == null) - continue; - font.draw(ms, line.getString(), x, lineY, 0xeaeaea); - } - - ms.popPose(); - } - - @Override - protected void renderWindowBackground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - endFrame(); - - source.render(ms, 0, 0, 10); // zero mouse coords to prevent further tooltips - - prepareFrame(); - - this.fillGradient(ms, 0, 0, this.width, this.height, 0x70101010, 0x80101010); - } - - - @Override - protected void prepareFrame() { - UIRenderHelper.swapAndBlitColor(minecraft.getMainRenderTarget(), UIRenderHelper.framebuffer); - RenderSystem.clear(GL30.GL_STENCIL_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT, Minecraft.ON_OSX); - } - - @Override - protected void endFrame() { - UIRenderHelper.swapAndBlitColor(UIRenderHelper.framebuffer, minecraft.getMainRenderTarget()); - } - - @Override - public void resize(@Nonnull Minecraft client, int width, int height) { - super.resize(client, width, height); - source.resize(client, width, height); - } - - @Override - public boolean isPauseScreen() { - return true; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java b/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java index 51889c28f..0b18b11ea 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java @@ -7,14 +7,16 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.ui.BaseConfigScreen; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.item.TooltipHelper; -import com.simibubi.create.foundation.ponder.ui.PonderTagIndexScreen; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.AbstractSimiScreen; +import net.createmod.catnip.gui.ScreenOpener; +import net.createmod.catnip.gui.element.BoxElement; +import net.createmod.catnip.gui.element.GuiGameElement; +import net.createmod.catnip.utility.FontHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.theme.Color; +import net.createmod.ponder.foundation.ui.PonderTagIndexScreen; import net.minecraft.ChatFormatting; import net.minecraft.Util; import net.minecraft.client.Minecraft; @@ -143,12 +145,12 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { int bLongWidth = 200; addRenderableWidget( - new Button(center - 100, yStart + 92, bLongWidth, bHeight, Lang.translateDirect("menu.return"), $ -> linkTo(parent))); - addRenderableWidget(new Button(center - 100, yStart + 24 + -16, bLongWidth, bHeight, Lang.translateDirect("menu.configure"), + new Button(center - 100, yStart + 92, bLongWidth, bHeight, CreateLang.translateDirect("menu.return"), $ -> linkTo(parent))); + addRenderableWidget(new Button(center - 100, yStart + 24 + -16, bLongWidth, bHeight, CreateLang.translateDirect("menu.configure"), $ -> linkTo(BaseConfigScreen.forCreate(this)))); gettingStarted = new Button(center + 2, yStart + 48 + -16, bShortWidth, bHeight, - Lang.translateDirect("menu.ponder_index"), $ -> linkTo(new PonderTagIndexScreen())); + CreateLang.translateDirect("menu.ponder_index"), $ -> linkTo(new PonderTagIndexScreen())); gettingStarted.active = !(parent instanceof TitleScreen); addRenderableWidget(gettingStarted); @@ -162,10 +164,10 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { (b, ps, mx, my) -> renderTooltip(ps, MODRINTH_TOOLTIP, mx, my))); addRenderableWidget(new Button(center + 2, yStart + 68, bShortWidth, bHeight, - Lang.translateDirect("menu.report_bugs"), + CreateLang.translateDirect("menu.report_bugs"), $ -> linkTo(ISSUE_TRACKER_LINK))); addRenderableWidget(new Button(center - 100, yStart + 68, bShortWidth, bHeight, - Lang.translateDirect("menu.support"), + CreateLang.translateDirect("menu.support"), $ -> linkTo(SUPPORT_LINK))); } @@ -179,7 +181,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { return; if (mouseY < gettingStarted.y || mouseY > gettingStarted.y + 20) return; - renderComponentTooltip(ms, TooltipHelper.cutTextComponent(Lang.translateDirect("menu.only_ingame"), ChatFormatting.GRAY, + renderComponentTooltip(ms, FontHelper.cutTextComponent(CreateLang.translateDirect("menu.only_ingame"), ChatFormatting.GRAY, ChatFormatting.GRAY), mouseX, mouseY); } } @@ -217,7 +219,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { @Override protected void renderBg(PoseStack pPoseStack, Minecraft pMinecraft, int pMouseX, int pMouseY) { pPoseStack.pushPose(); - pPoseStack.translate(x + width / 2 - (icon.width * scale) / 2, y + height / 2 - (icon.height * scale) / 2, 0); + pPoseStack.translate(x + width / 2 - (icon.getWidth() * scale) / 2, y + height / 2 - (icon.getHeight() * scale) / 2, 0); pPoseStack.scale(scale, scale, 1); icon.render(pPoseStack, 0, 0); pPoseStack.popPose(); diff --git a/src/main/java/com/simibubi/create/foundation/gui/CustomLightingSettings.java b/src/main/java/com/simibubi/create/foundation/gui/CustomLightingSettings.java index 9abc3159c..b29f19422 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/CustomLightingSettings.java +++ b/src/main/java/com/simibubi/create/foundation/gui/CustomLightingSettings.java @@ -4,6 +4,8 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.math.Matrix4f; import com.mojang.math.Vector3f; +import net.createmod.catnip.gui.ILightingSettings; + public class CustomLightingSettings implements ILightingSettings { private Vector3f light1; diff --git a/src/main/java/com/simibubi/create/foundation/gui/ILightingSettings.java b/src/main/java/com/simibubi/create/foundation/gui/ILightingSettings.java deleted file mode 100644 index 045d6c97e..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/ILightingSettings.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import com.mojang.blaze3d.platform.Lighting; - -public interface ILightingSettings { - - void applyLighting(); - - static final ILightingSettings DEFAULT_3D = () -> Lighting.setupFor3DItems(); - static final ILightingSettings DEFAULT_FLAT = () -> Lighting.setupForFlatItems(); - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLine.java b/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLine.java index b098bf142..913396d4e 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLine.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLine.java @@ -7,9 +7,10 @@ import java.util.function.Consumer; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.TooltipArea; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.gui.UIRenderHelper; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Widget; diff --git a/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java b/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java index 4a2a56e6e..7f0a701b5 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java @@ -6,9 +6,9 @@ import com.simibubi.create.foundation.gui.widget.Label; import com.simibubi.create.foundation.gui.widget.ScrollInput; import com.simibubi.create.foundation.gui.widget.SelectionScrollInput; import com.simibubi.create.foundation.gui.widget.TooltipArea; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pair; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.TextComponent; @@ -40,12 +40,12 @@ public class ModularGuiLineBuilder { addScrollInput(input, inputTransform, dataKey); return this; } - + public ModularGuiLineBuilder customArea(int x, int width) { target.customBoxes.add(Couple.create(x, width)); return this; } - + public ModularGuiLineBuilder speechBubble() { target.speechBubble = true; return this; @@ -88,4 +88,4 @@ public class ModularGuiLineBuilder { return this; } -} \ No newline at end of file +} diff --git a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java b/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java deleted file mode 100644 index 3d1b6f05f..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Deque; -import java.util.List; -import java.util.Optional; - -import javax.annotation.Nullable; - -import com.simibubi.create.foundation.ponder.ui.NavigatableSimiScreen; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; - -public class ScreenOpener { - - private static final Deque backStack = new ArrayDeque<>(); - private static Screen backSteppedFrom = null; - - public static void open(Screen screen) { - open(Minecraft.getInstance().screen, screen); - } - - public static void open(@Nullable Screen current, Screen toOpen) { - backSteppedFrom = null; - if (current != null) { - if (backStack.size() >= 15) // don't go deeper than 15 steps - backStack.pollLast(); - - backStack.push(current); - } else - backStack.clear(); - - openScreen(toOpen); - } - - public static void openPreviousScreen(Screen current, Optional screenWithContext) { - if (backStack.isEmpty()) - return; - backSteppedFrom = current; - Screen previousScreen = backStack.pop(); - if (previousScreen instanceof NavigatableSimiScreen) { - NavigatableSimiScreen previousAbstractSimiScreen = (NavigatableSimiScreen) previousScreen; - screenWithContext.ifPresent(s -> s.shareContextWith(previousAbstractSimiScreen)); - previousAbstractSimiScreen.transition.startWithValue(-0.1) - .chase(-1, .4f, LerpedFloat.Chaser.EXP); - } - openScreen(previousScreen); - } - - // transitions are only supported in simiScreens atm. they take care of all the - // rendering for it - public static void transitionTo(NavigatableSimiScreen screen) { - if (tryBackTracking(screen)) - return; - screen.transition.startWithValue(0.1) - .chase(1, .4f, LerpedFloat.Chaser.EXP); - open(screen); - } - - private static boolean tryBackTracking(NavigatableSimiScreen screen) { - List screenHistory = getScreenHistory(); - if (screenHistory.isEmpty()) - return false; - Screen previouslyRenderedScreen = screenHistory.get(0); - if (!(previouslyRenderedScreen instanceof NavigatableSimiScreen)) - return false; - if (!screen.isEquivalentTo((NavigatableSimiScreen) previouslyRenderedScreen)) - return false; - - openPreviousScreen(Minecraft.getInstance().screen, Optional.of(screen)); - return true; - } - - public static void clearStack() { - backStack.clear(); - } - - public static List getScreenHistory() { - return new ArrayList<>(backStack); - } - - @Nullable - public static Screen getPreviouslyRenderedScreen() { - return backSteppedFrom != null ? backSteppedFrom : backStack.peek(); - } - - private static void openScreen(Screen screen) { - Minecraft.getInstance() - .tell(() -> { - Minecraft.getInstance() - .setScreen(screen); - Screen previouslyRenderedScreen = getPreviouslyRenderedScreen(); - if (previouslyRenderedScreen != null && screen instanceof NavigatableSimiScreen) - previouslyRenderedScreen.init(Minecraft.getInstance(), screen.width, screen.height); - }); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/Theme.java b/src/main/java/com/simibubi/create/foundation/gui/Theme.java deleted file mode 100644 index ad21e7223..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/Theme.java +++ /dev/null @@ -1,235 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; - -public class Theme { - - private static final List THEMES = new ArrayList<>(); - public static final Theme BASE = addTheme(new Theme()); - - public static Theme addTheme(@Nonnull Theme theme) { - THEMES.add(theme); - THEMES.sort(Comparator.comparingInt(Theme::getPriority).reversed()); - return theme; - } - - public static void removeTheme(Theme theme) { - THEMES.remove(theme); - } - - public static void reload() { - THEMES.forEach(Theme::init); - } - - private static ColorHolder resolve(String key) { - return THEMES - .stream() - .map(theme -> theme.get(key)) - .filter(Objects::nonNull) - .findFirst() - .map(holder -> holder.lookupKey == null ? holder : resolve(holder.lookupKey)) - .orElse(ColorHolder.MISSING); - } - - @Nonnull public static Couple p(@Nonnull Key key) {return p(key.get());} - @Nonnull public static Couple p(String key) {return resolve(key).asPair();} - - @Nonnull public static Color c(@Nonnull Key key, boolean first) {return c(key.get(), first);} - @Nonnull public static Color c(String key, boolean first) {return p(key).get(first);} - - public static int i(@Nonnull Key key, boolean first) {return i(key.get(), first);} - public static int i(String key, boolean first) {return p(key).get(first).getRGB();} - - @Nonnull public static Color c(@Nonnull Key key) {return c(key.get());} - @Nonnull public static Color c(String key) {return resolve(key).get();} - - public static int i(@Nonnull Key key) {return i(key.get());} - public static int i(String key) {return resolve(key).get().getRGB();} - - //-----------// - - protected final Map colors; - private int priority = 0; - - protected Theme() { - colors = new HashMap<>(); - init(); - } - - /* - * Small note to addons: if you also want to make use of Theme, - * and add new Keys, please do not use mixins. Instead make a Theme - * subclass, override init and apply it via the static #addTheme - * - **/ - - protected void init() { - put(Key.BUTTON_IDLE, new Color(0xdd_8ab6d6, true), new Color(0x90_8ab6d6, true)); - put(Key.BUTTON_HOVER, new Color(0xff_9ABBD3, true), new Color(0xd0_9ABBD3, true)); - put(Key.BUTTON_CLICK, new Color(0xff_ffffff), new Color(0xee_ffffff)); - put(Key.BUTTON_DISABLE, new Color(0x80_909090, true), new Color(0x60_909090, true)); - put(Key.BUTTON_SUCCESS, new Color(0xcc_88f788, true), new Color(0xcc_20cc20, true)); - put(Key.BUTTON_FAIL, new Color(0xcc_f78888, true), new Color(0xcc_cc2020, true)); - put(Key.TEXT, new Color(0xff_eeeeee), new Color(0xff_a3a3a3)); - put(Key.TEXT_DARKER, new Color(0xff_a3a3a3), new Color(0xff_808080)); - put(Key.TEXT_ACCENT_STRONG, new Color(0xff_8ab6d6), new Color(0xff_8ab6d6)); - put(Key.TEXT_ACCENT_SLIGHT, new Color(0xff_ddeeff), new Color(0xff_a0b0c0)); - put(Key.STREAK, new Color(0x101010, false)); - put(Key.VANILLA_TOOLTIP_BORDER, new Color(0x50_5000ff, true), new Color(0x50_28007f, true)); - put(Key.VANILLA_TOOLTIP_BACKGROUND, new Color(0xf0_100010, true)); - - put(Key.PONDER_BUTTON_IDLE, new Color(0x60_c0c0ff, true), new Color(0x30_c0c0ff, true)); - put(Key.PONDER_BUTTON_HOVER, new Color(0xf0_c0c0ff, true), new Color(0xa0_c0c0ff, true)); - put(Key.PONDER_BUTTON_CLICK, new Color(0xff_ffffff), new Color(0xdd_ffffff)); - put(Key.PONDER_BUTTON_DISABLE, new Color(0x80_909090, true), new Color(0x20_909090, true)); - put(Key.PONDER_BACKGROUND_TRANSPARENT, new Color(0xdd_000000, true)); - put(Key.PONDER_BACKGROUND_FLAT, new Color(0xff_000000, false)); - put(Key.PONDER_BACKGROUND_IMPORTANT, new Color(0xdd_0e0e20, true)); - put(Key.PONDER_IDLE, new Color(0x40ffeedd, true), new Color(0x20ffeedd, true)); - put(Key.PONDER_HOVER, new Color(0x70ffffff, true), new Color(0x30ffffff, true)); - put(Key.PONDER_HIGHLIGHT, new Color(0xf0ffeedd, true), new Color(0x60ffeedd, true)); - put(Key.TEXT_WINDOW_BORDER, new Color(0x607a6000, true), new Color(0x207a6000, true)); - put(Key.PONDER_BACK_ARROW, new Color(0xf0aa9999, true), new Color(0x30aa9999, true)); - put(Key.PONDER_PROGRESSBAR, new Color(0x80ffeedd, true), new Color(0x50ffeedd, true)); - put(Key.PONDER_MISSING_CREATE, new Color(0x70_984500, true), new Color(0x70_692400, true)); - //put(Key.PONDER_MISSING_VANILLA, new Color(0x50_5000ff, true), new Color(0x50_300077, true)); - lookup(Key.PONDER_MISSING_VANILLA, Key.VANILLA_TOOLTIP_BORDER); - put(Key.CONFIG_TITLE_A, new Color(0xffc69fbc, true), new Color(0xfff6b8bb, true)); - put(Key.CONFIG_TITLE_B, new Color(0xfff6b8bb, true), new Color(0xfffbf994, true)); - //put(Key., new Color(0x, true), new Color(0x, true)); - } - - protected void put(String key, Color c) { - colors.put(key, ColorHolder.single(c)); - } - - protected void put(Key key, Color c) { - put(key.get(), c); - } - - protected void put(String key, Color c1, Color c2) { - colors.put(key, ColorHolder.pair(c1, c2)); - } - - protected void put(Key key, Color c1, Color c2) { - put(key.get(), c1, c2); - } - - protected void lookup(Key key, Key source) { - colors.put(key.get(), ColorHolder.lookup(source.get())); - } - - @Nullable protected ColorHolder get(String key) { - return colors.get(key); - } - - public int getPriority() { - return priority; - } - - public Theme setPriority(int priority) { - this.priority = priority; - return this; - } - - public static class Key { - - public static final Key BUTTON_IDLE = new Key(); - public static final Key BUTTON_HOVER = new Key(); - public static final Key BUTTON_CLICK = new Key(); - public static final Key BUTTON_DISABLE = new Key(); - public static final Key BUTTON_SUCCESS = new Key(); - public static final Key BUTTON_FAIL = new Key(); - - public static final Key TEXT = new Key(); - public static final Key TEXT_DARKER = new Key(); - public static final Key TEXT_ACCENT_STRONG = new Key(); - public static final Key TEXT_ACCENT_SLIGHT = new Key(); - - public static final Key STREAK = new Key(); - public static final Key VANILLA_TOOLTIP_BORDER = new Key(); - public static final Key VANILLA_TOOLTIP_BACKGROUND = new Key(); - - public static final Key PONDER_BACKGROUND_TRANSPARENT = new Key(); - public static final Key PONDER_BACKGROUND_FLAT = new Key(); - public static final Key PONDER_BACKGROUND_IMPORTANT = new Key(); - public static final Key PONDER_IDLE = new Key(); - public static final Key PONDER_HOVER = new Key(); - public static final Key PONDER_HIGHLIGHT = new Key(); - public static final Key TEXT_WINDOW_BORDER = new Key(); - public static final Key PONDER_BACK_ARROW = new Key(); - public static final Key PONDER_PROGRESSBAR = new Key(); - public static final Key PONDER_MISSING_CREATE = new Key(); - public static final Key PONDER_MISSING_VANILLA = new Key(); - - public static final Key PONDER_BUTTON_IDLE = new Key(); - public static final Key PONDER_BUTTON_HOVER = new Key(); - public static final Key PONDER_BUTTON_CLICK = new Key(); - public static final Key PONDER_BUTTON_DISABLE = new Key(); - - public static final Key CONFIG_TITLE_A = new Key(); - public static final Key CONFIG_TITLE_B = new Key(); - - private static int index = 0; - - private final String s; - - protected Key() { - this.s = "_" + index++; - } - - protected Key(String s) { - this.s = s; - } - - public String get() { - return s; - } - } - - private static class ColorHolder { - - private static final ColorHolder MISSING = ColorHolder.single(Color.BLACK); - - private Couple colors; - private String lookupKey; - - private static ColorHolder single(Color c) { - ColorHolder h = new ColorHolder(); - h.colors = Couple.create(c.setImmutable(), c.setImmutable()); - return h; - } - - private static ColorHolder pair(Color first, Color second) { - ColorHolder h = new ColorHolder(); - h.colors = Couple.create(first.setImmutable(), second.setImmutable()); - return h; - } - - private static ColorHolder lookup(String key) { - ColorHolder h = new ColorHolder(); - h.lookupKey = key; - return h; - } - - private Color get() { - return colors.getFirst(); - } - - private Couple asPair() { - return colors; - } - - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/TickableGuiEventListener.java b/src/main/java/com/simibubi/create/foundation/gui/TickableGuiEventListener.java deleted file mode 100644 index 898760fb2..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/TickableGuiEventListener.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import net.minecraft.client.gui.components.events.GuiEventListener; - -public interface TickableGuiEventListener extends GuiEventListener { - void tick(); -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java deleted file mode 100644 index b59168cd0..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java +++ /dev/null @@ -1,322 +0,0 @@ -package com.simibubi.create.foundation.gui; - -import javax.annotation.Nonnull; - -import org.lwjgl.opengl.GL20; -import org.lwjgl.opengl.GL30; - -import com.mojang.blaze3d.pipeline.RenderTarget; -import com.mojang.blaze3d.platform.GlConst; -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.math.Matrix4f; -import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraftforge.client.gui.GuiUtils; - -public class UIRenderHelper { - - /** - * An FBO that has a stencil buffer for use wherever stencil are necessary. Forcing the main FBO to have a stencil - * buffer will cause GL error spam when using fabulous graphics. - */ - public static CustomRenderTarget framebuffer; - - public static void init() { - RenderSystem.recordRenderCall(() -> { - Window mainWindow = Minecraft.getInstance().getWindow(); - framebuffer = CustomRenderTarget.create(mainWindow); - }); - } - - public static void updateWindowSize(Window mainWindow) { - if (framebuffer != null) - framebuffer.resize(mainWindow.getWidth(), mainWindow.getHeight(), Minecraft.ON_OSX); - } - - public static void drawFramebuffer(float alpha) { - framebuffer.renderWithAlpha(alpha); - } - - /** - * Switch from src to dst, after copying the contents of src to dst. - */ - public static void swapAndBlitColor(RenderTarget src, RenderTarget dst) { - GlStateManager._glBindFramebuffer(GL30.GL_READ_FRAMEBUFFER, src.frameBufferId); - GlStateManager._glBindFramebuffer(GL30.GL_DRAW_FRAMEBUFFER, dst.frameBufferId); - GlStateManager._glBlitFrameBuffer(0, 0, src.viewWidth, src.viewHeight, 0, 0, dst.viewWidth, dst.viewHeight, GL30.GL_COLOR_BUFFER_BIT, GL20.GL_LINEAR); - - GlStateManager._glBindFramebuffer(GlConst.GL_FRAMEBUFFER, dst.frameBufferId); - } - - public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length) { - streak(ms, angle, x, y, breadth, length, Theme.i(Theme.Key.STREAK)); - } - // angle in degrees; 0° -> fading to the right - // x and y specify the middle point of the starting edge - // breadth is the total width of the streak - - public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length, int color) { - int a1 = 0xa0 << 24; - int a2 = 0x80 << 24; - int a3 = 0x10 << 24; - int a4 = 0x00 << 24; - - color &= 0x00FFFFFF; - int c1 = a1 | color; - int c2 = a2 | color; - int c3 = a3 | color; - int c4 = a4 | color; - - ms.pushPose(); - ms.translate(x, y, 0); - ms.mulPose(Vector3f.ZP.rotationDegrees(angle - 90)); - - streak(ms, breadth / 2, length, c1, c2, c3, c4); - - ms.popPose(); - } - - public static void streak(PoseStack ms, float angle, int x, int y, int breadth, int length, Color c) { - Color color = c.copy().setImmutable(); - int c1 = color.scaleAlpha(0.625f).getRGB(); - int c2 = color.scaleAlpha(0.5f).getRGB(); - int c3 = color.scaleAlpha(0.0625f).getRGB(); - int c4 = color.scaleAlpha(0f).getRGB(); - - ms.pushPose(); - ms.translate(x, y, 0); - ms.mulPose(Vector3f.ZP.rotationDegrees(angle - 90)); - - streak(ms, breadth / 2, length, c1, c2, c3, c4); - - ms.popPose(); - } - - private static void streak(PoseStack ms, int width, int height, int c1, int c2, int c3, int c4) { - double split1 = .5; - double split2 = .75; - Matrix4f model = ms.last().pose(); - GuiUtils.drawGradientRect(model, 0, -width, 0, width, (int) (split1 * height), c1, c2); - GuiUtils.drawGradientRect(model, 0, -width, (int) (split1 * height), width, (int) (split2 * height), c2, c3); - GuiUtils.drawGradientRect(model, 0, -width, (int) (split2 * height), width, height, c3, c4); - } - - /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) - */ - public static void angledGradient(@Nonnull PoseStack ms, float angle, int x, int y, int breadth, int length, Couple c) { - angledGradient(ms, angle, x, y, 0, breadth, length, c); - } - - /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) - */ - public static void angledGradient(@Nonnull PoseStack ms, float angle, int x, int y, int z, int breadth, int length, Couple c) { - angledGradient(ms, angle, x, y, z, breadth, length, c.getFirst(), c.getSecond()); - } - - /** - * @see #angledGradient(MatrixStack, float, int, int, int, int, int, Color, Color) - */ - public static void angledGradient(@Nonnull PoseStack ms, float angle, int x, int y, int breadth, int length, Color color1, Color color2) { - angledGradient(ms, angle, x, y, 0, breadth, length, color1, color2); - } - - /** - * x and y specify the middle point of the starting edge - * - * @param angle the angle of the gradient in degrees; 0° means from left to right - * @param color1 the color at the starting edge - * @param color2 the color at the ending edge - * @param breadth the total width of the gradient - */ - public static void angledGradient(@Nonnull PoseStack ms, float angle, int x, int y, int z, int breadth, int length, Color color1, Color color2) { - ms.pushPose(); - ms.translate(x, y, z); - ms.mulPose(Vector3f.ZP.rotationDegrees(angle - 90)); - - Matrix4f model = ms.last().pose(); - int w = breadth / 2; - GuiUtils.drawGradientRect(model, 0, -w, 0, w, length, color1.getRGB(), color2.getRGB()); - - ms.popPose(); - } - - public static void breadcrumbArrow(PoseStack matrixStack, int x, int y, int z, int width, int height, int indent, Couple colors) {breadcrumbArrow(matrixStack, x, y, z, width, height, indent, colors.getFirst(), colors.getSecond());} - - // draws a wide chevron-style breadcrumb arrow pointing left - public static void breadcrumbArrow(PoseStack matrixStack, int x, int y, int z, int width, int height, int indent, Color startColor, Color endColor) { - matrixStack.pushPose(); - matrixStack.translate(x - indent, y, z); - - breadcrumbArrow(matrixStack, width, height, indent, startColor, endColor); - - matrixStack.popPose(); - } - - private static void breadcrumbArrow(PoseStack ms, int width, int height, int indent, Color c1, Color c2) { - - /* - * 0,0 x1,y1 ********************* x4,y4 ***** x7,y7 - * **** **** - * **** **** - * x0,y0 x2,y2 x5,y5 - * **** **** - * **** **** - * x3,y3 ********************* x6,y6 ***** x8,y8 - * - */ - - float x0 = 0, y0 = height / 2f; - float x1 = indent, y1 = 0; - float x2 = indent, y2 = height / 2f; - float x3 = indent, y3 = height; - float x4 = width, y4 = 0; - float x5 = width, y5 = height / 2f; - float x6 = width, y6 = height; - float x7 = indent + width, y7 = 0; - float x8 = indent + width, y8 = height; - - indent = Math.abs(indent); - width = Math.abs(width); - Color fc1 = Color.mixColors(c1, c2, 0); - Color fc2 = Color.mixColors(c1, c2, (indent) / (width + 2f * indent)); - Color fc3 = Color.mixColors(c1, c2, (indent + width) / (width + 2f * indent)); - Color fc4 = Color.mixColors(c1, c2, 1); - - RenderSystem.disableTexture(); - RenderSystem.enableBlend(); - RenderSystem.disableCull(); - RenderSystem.defaultBlendFunc(); - RenderSystem.setShader(GameRenderer::getPositionColorShader); - - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder bufferbuilder = tessellator.getBuilder(); - Matrix4f model = ms.last().pose(); - bufferbuilder.begin(VertexFormat.Mode.TRIANGLES, DefaultVertexFormat.POSITION_COLOR); - - bufferbuilder.vertex(model, x0, y0, 0).color(fc1.getRed(), fc1.getGreen(), fc1.getBlue(), fc1.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x1, y1, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x2, y2, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - - bufferbuilder.vertex(model, x0, y0, 0).color(fc1.getRed(), fc1.getGreen(), fc1.getBlue(), fc1.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x2, y2, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - - bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x1, y1, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - - bufferbuilder.vertex(model, x3, y3, 0).color(fc2.getRed(), fc2.getGreen(), fc2.getBlue(), fc2.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x6, y6, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - - bufferbuilder.vertex(model, x5, y5, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x4, y4, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x7, y7, 0).color(fc4.getRed(), fc4.getGreen(), fc4.getBlue(), fc4.getAlpha()).endVertex(); - - bufferbuilder.vertex(model, x6, y6, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x5, y5, 0).color(fc3.getRed(), fc3.getGreen(), fc3.getBlue(), fc3.getAlpha()).endVertex(); - bufferbuilder.vertex(model, x8, y8, 0).color(fc4.getRed(), fc4.getGreen(), fc4.getBlue(), fc4.getAlpha()).endVertex(); - - tessellator.end(); - RenderSystem.enableCull(); - RenderSystem.disableBlend(); - RenderSystem.enableTexture(); - } - - //just like AbstractGui#drawTexture, but with a color at every vertex - public static void drawColoredTexture(PoseStack ms, Color c, int x, int y, int tex_left, int tex_top, int width, int height) { - drawColoredTexture(ms, c, x, y, 0, (float) tex_left, (float) tex_top, width, height, 256, 256); - } - - public static void drawColoredTexture(PoseStack ms, Color c, int x, int y, int z, float tex_left, float tex_top, int width, int height, int sheet_width, int sheet_height) { - drawColoredTexture(ms, c, x, x + width, y, y + height, z, width, height, tex_left, tex_top, sheet_width, sheet_height); - } - - public static void drawStretched(PoseStack ms, int left, int top, int w, int h, int z, AllGuiTextures tex) { - tex.bind(); - drawTexturedQuad(ms.last() - .pose(), Color.WHITE, left, left + w, top, top + h, z, tex.startX / 256f, (tex.startX + tex.width) / 256f, - tex.startY / 256f, (tex.startY + tex.height) / 256f); - } - - private static void drawColoredTexture(PoseStack ms, Color c, int left, int right, int top, int bot, int z, int tex_width, int tex_height, float tex_left, float tex_top, int sheet_width, int sheet_height) { - drawTexturedQuad(ms.last().pose(), c, left, right, top, bot, z, (tex_left + 0.0F) / (float) sheet_width, (tex_left + (float) tex_width) / (float) sheet_width, (tex_top + 0.0F) / (float) sheet_height, (tex_top + (float) tex_height) / (float) sheet_height); - } - - private static void drawTexturedQuad(Matrix4f m, Color c, int left, int right, int top, int bot, int z, float u1, float u2, float v1, float v2) { - Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder bufferbuilder = tesselator.getBuilder(); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - RenderSystem.setShader(GameRenderer::getPositionColorTexShader); - bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX); - bufferbuilder.vertex(m, (float) left , (float) bot, (float) z).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).uv(u1, v2).endVertex(); - bufferbuilder.vertex(m, (float) right, (float) bot, (float) z).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).uv(u2, v2).endVertex(); - bufferbuilder.vertex(m, (float) right, (float) top, (float) z).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).uv(u2, v1).endVertex(); - bufferbuilder.vertex(m, (float) left , (float) top, (float) z).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).uv(u1, v1).endVertex(); - tesselator.end(); - RenderSystem.disableBlend(); - } - - public static void flipForGuiRender(PoseStack poseStack) { - poseStack.mulPoseMatrix(Matrix4f.createScaleMatrix(1, -1, 1)); - } - - public static class CustomRenderTarget extends RenderTarget { - - public CustomRenderTarget(boolean useDepth) { - super(useDepth); - } - - public static CustomRenderTarget create(Window mainWindow) { - CustomRenderTarget framebuffer = new CustomRenderTarget(true); - framebuffer.resize(mainWindow.getWidth(), mainWindow.getHeight(), Minecraft.ON_OSX); - framebuffer.setClearColor(0, 0, 0, 0); - framebuffer.enableStencil(); - return framebuffer; - } - - public void renderWithAlpha(float alpha) { - Window window = Minecraft.getInstance().getWindow(); - - float vx = (float) window.getGuiScaledWidth(); - float vy = (float) window.getGuiScaledHeight(); - float tx = (float) viewWidth / (float) width; - float ty = (float) viewHeight / (float) height; - - RenderSystem.enableTexture(); - RenderSystem.enableDepthTest(); - RenderSystem.setShader(() -> Minecraft.getInstance().gameRenderer.blitShader); - RenderSystem.getShader().setSampler("DiffuseSampler", colorTextureId); - - bindRead(); - - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder bufferbuilder = tessellator.getBuilder(); - bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX); - - bufferbuilder.vertex(0, vy, 0).color(1, 1, 1, alpha).uv(0, 0).endVertex(); - bufferbuilder.vertex(vx, vy, 0).color(1, 1, 1, alpha).uv(tx, 0).endVertex(); - bufferbuilder.vertex(vx, 0, 0).color(1, 1, 1, alpha).uv(tx, ty).endVertex(); - bufferbuilder.vertex(0, 0, 0).color(1, 1, 1, alpha).uv(0, ty).endVertex(); - - tessellator.end(); - unbindRead(); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/container/AbstractSimiContainerScreen.java b/src/main/java/com/simibubi/create/foundation/gui/container/AbstractSimiContainerScreen.java index f18e1a023..9d8732ccc 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/container/AbstractSimiContainerScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/container/AbstractSimiContainerScreen.java @@ -9,9 +9,9 @@ import javax.annotation.ParametersAreNonnullByDefault; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.TickableGuiEventListener; -import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget; +import net.createmod.catnip.gui.TickableGuiEventListener; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.Widget; import net.minecraft.client.gui.components.events.GuiEventListener; @@ -141,7 +141,7 @@ public abstract class AbstractSimiContainerScreen T withBackground(Color color) { - this.background = color; - //noinspection unchecked - return (T) this; - } - - public T withBackground(int color) { - return withBackground(new Color(color, true)); - } - - public T flatBorder(Color color) { - this.borderTop = color; - this.borderBot = color; - //noinspection unchecked - return (T) this; - } - - public T flatBorder(int color) { - return flatBorder(new Color(color, true)); - } - - public T gradientBorder(Couple colors) { - this.borderTop = colors.getFirst(); - this.borderBot = colors.getSecond(); - //noinspection unchecked - return (T) this; - } - - public T gradientBorder(Color top, Color bot) { - this.borderTop = top; - this.borderBot = bot; - //noinspection unchecked - return (T) this; - } - - public T gradientBorder(int top, int bot) { - return gradientBorder(new Color(top, true), new Color(bot, true)); - } - - public T withBorderOffset(int offset) { - this.borderOffset = offset; - //noinspection unchecked - return (T) this; - } - - @Override - public void render(PoseStack ms) { - renderBox(ms); - } - - //total box width = 1 * 2 (outer border) + 1 * 2 (inner color border) + 2 * borderOffset + width - //defaults to 2 + 2 + 4 + 16 = 24px - //batch everything together to save a bunch of gl calls over GuiUtils - protected void renderBox(PoseStack ms) { - /* - * _____________ - * _|_____________|_ - * | | ___________ | | - * | | | | | | | - * | | | | | | | - * | | |--* | | | | - * | | | h | | | - * | | | --w-+ | | | - * | | | | | | - * | | |_________| | | - * |_|_____________|_| - * |_____________| - * - * */ - RenderSystem.disableTexture(); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - RenderSystem.setShader(GameRenderer::getPositionColorShader); - - Matrix4f model = ms.last().pose(); - int f = borderOffset; - Color c1 = background.copy().scaleAlpha(alpha); - Color c2 = borderTop.copy().scaleAlpha(alpha); - Color c3 = borderBot.copy().scaleAlpha(alpha); - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder b = tessellator.getBuilder(); - - b.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); - //outer top - b.vertex(model, x - f - 1 , y - f - 2 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f - 2 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - //outer left - b.vertex(model, x - f - 2 , y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 2 , y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - //outer bottom - b.vertex(model, x - f - 1 , y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y + f + 2 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + 2 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - //outer right - b.vertex(model, x + f + 1 + width, y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 2 + width, y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 2 + width, y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - //inner background - also render behind the inner edges - b.vertex(model, x - f - 1 , y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + 1 + height, z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f - 1 , z).color(c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha()).endVertex(); - tessellator.end(); - b.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); - //inner top - includes corners - b.vertex(model, x - f - 1 , y - f - 1 , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f - 1 , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - //inner left - excludes corners - b.vertex(model, x - f - 1 , y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x - f , y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x - f , y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - //inner bottom - includes corners - b.vertex(model, x - f - 1 , y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x - f - 1 , y + f + 1 + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + 1 + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - //inner right - excludes corners - b.vertex(model, x + f + width, y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - b.vertex(model, x + f + width, y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y + f + height, z).color(c3.getRed(), c3.getGreen(), c3.getBlue(), c3.getAlpha()).endVertex(); - b.vertex(model, x + f + 1 + width, y - f , z).color(c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha()).endVertex(); - - tessellator.end(); - - RenderSystem.disableBlend(); - RenderSystem.enableTexture(); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/CombinedStencilElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/CombinedStencilElement.java deleted file mode 100644 index 6096f8427..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/CombinedStencilElement.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; - -public class CombinedStencilElement extends StencilElement { - - private StencilElement element1; - private StencilElement element2; - private ElementMode mode; - - private CombinedStencilElement() {} - - public static CombinedStencilElement of(@Nonnull StencilElement element1, @Nonnull StencilElement element2) { - return of(element1, element2, ElementMode.FIRST); - } - - public static CombinedStencilElement of(@Nonnull StencilElement element1, @Nonnull StencilElement element2, ElementMode mode) { - CombinedStencilElement e = new CombinedStencilElement(); - e.element1 = element1; - e.element2 = element2; - e.mode = mode; - return e; - } - - public T withFirst(StencilElement element) { - this.element1 = element; - //noinspection unchecked - return (T) this; - } - - public T withSecond(StencilElement element) { - this.element2 = element; - //noinspection unchecked - return (T) this; - } - - public T withMode(ElementMode mode) { - this.mode = mode; - //noinspection unchecked - return (T) this; - } - - @Override - protected void renderStencil(PoseStack ms) { - ms.pushPose(); - element1.transform(ms); - element1.withBounds(width, height); - element1.renderStencil(ms); - ms.popPose(); - ms.pushPose(); - element2.transform(ms); - element2.withBounds(width, height); - element2.renderStencil(ms); - ms.popPose(); - } - - @Override - protected void renderElement(PoseStack ms) { - if (mode.rendersFirst()) - element1.withBounds(width, height).renderElement(ms); - - if (mode.rendersSecond()) - element2.withBounds(width, height).renderElement(ms); - } - - public enum ElementMode { - FIRST, SECOND, BOTH; - - boolean rendersFirst() { - return this == FIRST || this == BOTH; - } - - boolean rendersSecond() { - return this == SECOND || this == BOTH; - } - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/DelegatedStencilElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/DelegatedStencilElement.java deleted file mode 100644 index 4ca427a4d..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/DelegatedStencilElement.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.utility.Color; - -public class DelegatedStencilElement extends StencilElement { - - protected static final ElementRenderer EMPTY_RENDERER = (ms, width, height, alpha) -> {}; - protected static final ElementRenderer DEFAULT_ELEMENT = (ms, width, height, alpha) -> UIRenderHelper.angledGradient(ms, 0, -3, 5, height+4, width+6, new Color(0xff_10dd10).scaleAlpha(alpha), new Color(0xff_1010dd).scaleAlpha(alpha)); - - protected ElementRenderer stencil; - protected ElementRenderer element; - - public DelegatedStencilElement() { - stencil = EMPTY_RENDERER; - element = DEFAULT_ELEMENT; - } - - public DelegatedStencilElement(ElementRenderer stencil, ElementRenderer element) { - this.stencil = stencil; - this.element = element; - } - - public T withStencilRenderer(ElementRenderer renderer) { - stencil = renderer; - //noinspection unchecked - return (T) this; - } - - public T withElementRenderer(ElementRenderer renderer) { - element = renderer; - //noinspection unchecked - return (T) this; - } - - @Override - protected void renderStencil(PoseStack ms) { - stencil.render(ms, width, height, 1); - } - - @Override - protected void renderElement(PoseStack ms) { - element.render(ms, width, height, alpha); - } - - @FunctionalInterface - public interface ElementRenderer { - void render(PoseStack ms, int width, int height, float alpha); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java deleted file mode 100644 index 0309b9532..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java +++ /dev/null @@ -1,291 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import javax.annotation.Nullable; - -import com.jozufozu.flywheel.core.PartialModel; -import com.jozufozu.flywheel.core.virtual.VirtualEmptyModelData; -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.platform.GlStateManager.DestFactor; -import com.mojang.blaze3d.platform.GlStateManager.SourceFactor; -import com.mojang.blaze3d.platform.Lighting; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.fluid.FluidRenderer; -import com.simibubi.create.foundation.gui.ILightingSettings; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.Sheets; -import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.block.model.ItemTransforms; -import net.minecraft.client.renderer.entity.ItemRenderer; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.world.inventory.InventoryMenu; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.ItemLike; -import net.minecraft.world.level.block.BaseFireBlock; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.LiquidBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.fluids.FluidStack; - -public class GuiGameElement { - - public static GuiRenderBuilder of(ItemStack stack) { - return new GuiItemRenderBuilder(stack); - } - - public static GuiRenderBuilder of(ItemLike itemProvider) { - return new GuiItemRenderBuilder(itemProvider); - } - - public static GuiRenderBuilder of(BlockState state) { - return new GuiBlockStateRenderBuilder(state); - } - - public static GuiRenderBuilder of(PartialModel partial) { - return new GuiBlockPartialRenderBuilder(partial); - } - - public static GuiRenderBuilder of(Fluid fluid) { - return new GuiBlockStateRenderBuilder(fluid.defaultFluidState() - .createLegacyBlock() - .setValue(LiquidBlock.LEVEL, 0)); - } - - public static abstract class GuiRenderBuilder extends RenderElement { - protected double xLocal, yLocal, zLocal; - protected double xRot, yRot, zRot; - protected double scale = 1; - protected int color = 0xFFFFFF; - protected Vec3 rotationOffset = Vec3.ZERO; - protected ILightingSettings customLighting = null; - - public GuiRenderBuilder atLocal(double x, double y, double z) { - this.xLocal = x; - this.yLocal = y; - this.zLocal = z; - return this; - } - - public GuiRenderBuilder rotate(double xRot, double yRot, double zRot) { - this.xRot = xRot; - this.yRot = yRot; - this.zRot = zRot; - return this; - } - - public GuiRenderBuilder rotateBlock(double xRot, double yRot, double zRot) { - return this.rotate(xRot, yRot, zRot) - .withRotationOffset(VecHelper.getCenterOf(BlockPos.ZERO)); - } - - public GuiRenderBuilder scale(double scale) { - this.scale = scale; - return this; - } - - public GuiRenderBuilder color(int color) { - this.color = color; - return this; - } - - public GuiRenderBuilder withRotationOffset(Vec3 offset) { - this.rotationOffset = offset; - return this; - } - - public GuiRenderBuilder lighting(ILightingSettings lighting) { - customLighting = lighting; - return this; - } - - protected void prepareMatrix(PoseStack matrixStack) { - matrixStack.pushPose(); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - RenderSystem.enableDepthTest(); - RenderSystem.enableBlend(); - RenderSystem.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); - prepareLighting(matrixStack); - } - - protected void transformMatrix(PoseStack matrixStack) { - matrixStack.translate(x, y, z); - matrixStack.scale((float) scale, (float) scale, (float) scale); - matrixStack.translate(xLocal, yLocal, zLocal); - UIRenderHelper.flipForGuiRender(matrixStack); - matrixStack.translate(rotationOffset.x, rotationOffset.y, rotationOffset.z); - matrixStack.mulPose(Vector3f.ZP.rotationDegrees((float) zRot)); - matrixStack.mulPose(Vector3f.XP.rotationDegrees((float) xRot)); - matrixStack.mulPose(Vector3f.YP.rotationDegrees((float) yRot)); - matrixStack.translate(-rotationOffset.x, -rotationOffset.y, -rotationOffset.z); - } - - protected void cleanUpMatrix(PoseStack matrixStack) { - matrixStack.popPose(); - cleanUpLighting(matrixStack); - } - - protected void prepareLighting(PoseStack matrixStack) { - if (customLighting != null) { - customLighting.applyLighting(); - } else { - Lighting.setupFor3DItems(); - } - } - - protected void cleanUpLighting(PoseStack matrixStack) { - if (customLighting != null) { - Lighting.setupFor3DItems(); - } - } - } - - private static class GuiBlockModelRenderBuilder extends GuiRenderBuilder { - - protected BakedModel blockModel; - protected BlockState blockState; - - public GuiBlockModelRenderBuilder(BakedModel blockmodel, @Nullable BlockState blockState) { - this.blockState = blockState == null ? Blocks.AIR.defaultBlockState() : blockState; - this.blockModel = blockmodel; - } - - @Override - public void render(PoseStack matrixStack) { - prepareMatrix(matrixStack); - - Minecraft mc = Minecraft.getInstance(); - BlockRenderDispatcher blockRenderer = mc.getBlockRenderer(); - MultiBufferSource.BufferSource buffer = mc.renderBuffers() - .bufferSource(); - RenderType renderType = blockState.getBlock() == Blocks.AIR ? Sheets.translucentCullBlockSheet() - : ItemBlockRenderTypes.getRenderType(blockState, true); - VertexConsumer vb = buffer.getBuffer(renderType); - - transformMatrix(matrixStack); - - RenderSystem.setShaderTexture(0, InventoryMenu.BLOCK_ATLAS); - renderModel(blockRenderer, buffer, renderType, vb, matrixStack); - - cleanUpMatrix(matrixStack); - } - - protected void renderModel(BlockRenderDispatcher blockRenderer, MultiBufferSource.BufferSource buffer, - RenderType renderType, VertexConsumer vb, PoseStack ms) { - int color = Minecraft.getInstance() - .getBlockColors() - .getColor(blockState, null, null, 0); - Color rgb = new Color(color == -1 ? this.color : color); - blockRenderer.getModelRenderer() - .renderModel(ms.last(), vb, blockState, blockModel, rgb.getRedAsFloat(), rgb.getGreenAsFloat(), rgb.getBlueAsFloat(), - LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, VirtualEmptyModelData.INSTANCE); - buffer.endBatch(); - } - - } - - public static class GuiBlockStateRenderBuilder extends GuiBlockModelRenderBuilder { - - public GuiBlockStateRenderBuilder(BlockState blockstate) { - super(Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(blockstate), blockstate); - } - - @Override - protected void renderModel(BlockRenderDispatcher blockRenderer, MultiBufferSource.BufferSource buffer, - RenderType renderType, VertexConsumer vb, PoseStack ms) { - if (blockState.getBlock() instanceof BaseFireBlock) { - Lighting.setupForFlatItems(); - blockRenderer.renderSingleBlock(blockState, ms, buffer, LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, - VirtualEmptyModelData.INSTANCE); - buffer.endBatch(); - Lighting.setupFor3DItems(); - return; - } - - super.renderModel(blockRenderer, buffer, renderType, vb, ms); - - if (blockState.getFluidState() - .isEmpty()) - return; - - FluidRenderer.renderFluidBox(new FluidStack(blockState.getFluidState() - .getType(), 1000), 0, 0, 0, 1, 1, 1, buffer, ms, LightTexture.FULL_BRIGHT, false); - buffer.endBatch(); - } - } - - public static class GuiBlockPartialRenderBuilder extends GuiBlockModelRenderBuilder { - - public GuiBlockPartialRenderBuilder(PartialModel partial) { - super(partial.get(), null); - } - - } - - public static class GuiItemRenderBuilder extends GuiRenderBuilder { - - private final ItemStack stack; - - public GuiItemRenderBuilder(ItemStack stack) { - this.stack = stack; - } - - public GuiItemRenderBuilder(ItemLike provider) { - this(new ItemStack(provider)); - } - - @Override - public void render(PoseStack matrixStack) { - prepareMatrix(matrixStack); - transformMatrix(matrixStack); - renderItemIntoGUI(matrixStack, stack, customLighting == null); - cleanUpMatrix(matrixStack); - } - - public static void renderItemIntoGUI(PoseStack matrixStack, ItemStack stack, boolean useDefaultLighting) { - ItemRenderer renderer = Minecraft.getInstance().getItemRenderer(); - BakedModel bakedModel = renderer.getModel(stack, null, null, 0); - - renderer.textureManager.getTexture(InventoryMenu.BLOCK_ATLAS).setFilter(false, false); - RenderSystem.setShaderTexture(0, InventoryMenu.BLOCK_ATLAS); - RenderSystem.enableBlend(); - RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - matrixStack.pushPose(); - matrixStack.translate(0, 0, 100.0F + renderer.blitOffset); - matrixStack.translate(8.0F, -8.0F, 0.0F); - matrixStack.scale(16.0F, 16.0F, 16.0F); - MultiBufferSource.BufferSource buffer = Minecraft.getInstance().renderBuffers().bufferSource(); - boolean flatLighting = !bakedModel.usesBlockLight(); - if (useDefaultLighting && flatLighting) { - Lighting.setupForFlatItems(); - } - - renderer.render(stack, ItemTransforms.TransformType.GUI, false, matrixStack, buffer, LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, bakedModel); - buffer.endBatch(); - RenderSystem.enableDepthTest(); - if (useDefaultLighting && flatLighting) { - Lighting.setupFor3DItems(); - } - - matrixStack.popPose(); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/PartialModelGuiElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/PartialModelGuiElement.java new file mode 100644 index 000000000..03164f67c --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/gui/element/PartialModelGuiElement.java @@ -0,0 +1,22 @@ +package com.simibubi.create.foundation.gui.element; + +import com.jozufozu.flywheel.core.PartialModel; + +import net.createmod.catnip.gui.element.GuiGameElement; + + +public class PartialModelGuiElement extends GuiGameElement { + + public static GuiRenderBuilder of(PartialModel partial) { + return new GuiBlockPartialRenderBuilder(partial); + } + + public static class GuiBlockPartialRenderBuilder extends GuiBlockModelRenderBuilder { + + public GuiBlockPartialRenderBuilder(PartialModel partial) { + super(partial.get(), null); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/RenderElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/RenderElement.java deleted file mode 100644 index 444c03b5d..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/RenderElement.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import com.mojang.blaze3d.vertex.PoseStack; - -public abstract class RenderElement implements ScreenElement { - - public static final RenderElement EMPTY = new RenderElement() { - @Override - public void render(PoseStack ms) { - } - }; - - public static RenderElement of(ScreenElement renderable) { - return new SimpleRenderElement(renderable); - } - - protected int width = 16, height = 16; - protected float x = 0, y = 0, z = 0; - protected float alpha = 1f; - - public T at(float x, float y) { - this.x = x; - this.y = y; - //noinspection unchecked - return (T) this; - } - - public T at(float x, float y, float z) { - this.x = x; - this.y = y; - this.z = z; - //noinspection unchecked - return (T) this; - } - - public T withBounds(int width, int height) { - this.width = width; - this.height = height; - //noinspection unchecked - return (T) this; - } - - public T withAlpha(float alpha) { - this.alpha = alpha; - //noinspection unchecked - return (T) this; - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - public float getX() { - return x; - } - - public float getY() { - return y; - } - - public float getZ() { - return z; - } - - public abstract void render(PoseStack ms); - - @Override - public void render(PoseStack ms, int x, int y) { - this.at(x, y).render(ms); - } - - public static class SimpleRenderElement extends RenderElement { - - private ScreenElement renderable; - - public SimpleRenderElement(ScreenElement renderable) { - this.renderable = renderable; - } - - @Override - public void render(PoseStack ms) { - renderable.render(ms, (int) x, (int) y); - } - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/ScreenElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/ScreenElement.java deleted file mode 100644 index 9fa0f28c9..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/ScreenElement.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import com.mojang.blaze3d.vertex.PoseStack; - -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -public interface ScreenElement { - - @OnlyIn(Dist.CLIENT) - void render(PoseStack ms, int x, int y); - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/StencilElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/StencilElement.java deleted file mode 100644 index dbe8fce56..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/StencilElement.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import org.lwjgl.opengl.GL11; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; - -import net.minecraft.client.Minecraft; - -public abstract class StencilElement extends RenderElement { - - @Override - public void render(PoseStack ms) { - ms.pushPose(); - transform(ms); - prepareStencil(ms); - renderStencil(ms); - prepareElement(ms); - renderElement(ms); - cleanUp(ms); - ms.popPose(); - } - - protected abstract void renderStencil(PoseStack ms); - - protected abstract void renderElement(PoseStack ms); - - protected void transform(PoseStack ms) { - ms.translate(x, y, z); - } - - protected void prepareStencil(PoseStack ms) { - GL11.glDisable(GL11.GL_STENCIL_TEST); - RenderSystem.stencilMask(~0); - RenderSystem.clear(GL11.GL_STENCIL_BUFFER_BIT, Minecraft.ON_OSX); - GL11.glEnable(GL11.GL_STENCIL_TEST); - RenderSystem.stencilOp(GL11.GL_REPLACE, GL11.GL_KEEP, GL11.GL_KEEP); - RenderSystem.stencilMask(0xFF); - RenderSystem.stencilFunc(GL11.GL_NEVER, 1, 0xFF); - } - - protected void prepareElement(PoseStack ms) { - GL11.glEnable(GL11.GL_STENCIL_TEST); - RenderSystem.stencilOp(GL11.GL_KEEP, GL11.GL_KEEP, GL11.GL_KEEP); - RenderSystem.stencilFunc(GL11.GL_EQUAL, 1, 0xFF); - } - - protected void cleanUp(PoseStack ms) { - GL11.glDisable(GL11.GL_STENCIL_TEST); - - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java deleted file mode 100644 index d735a33aa..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.simibubi.create.foundation.gui.element; - -import com.mojang.blaze3d.vertex.PoseStack; - -import net.minecraft.client.gui.Font; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; - -public class TextStencilElement extends DelegatedStencilElement { - - protected Font font; - protected MutableComponent component; - protected boolean centerVertically = false; - protected boolean centerHorizontally = false; - - public TextStencilElement(Font font) { - super(); - this.font = font; - height = 10; - } - - public TextStencilElement(Font font, String text) { - this(font); - component = new TextComponent(text); - } - - public TextStencilElement(Font font, MutableComponent component) { - this(font); - this.component = component; - } - - public TextStencilElement withText(String text) { - component = new TextComponent(text); - return this; - } - - public TextStencilElement withText(MutableComponent component) { - this.component = component; - return this; - } - - public TextStencilElement centered(boolean vertical, boolean horizontal) { - this.centerVertically = vertical; - this.centerHorizontally = horizontal; - return this; - } - - @Override - protected void renderStencil(PoseStack ms) { - - float x = 0, y = 0; - if (centerHorizontally) - x = width / 2f - font.width(component) / 2f; - - if (centerVertically) - y = height / 2f - (font.lineHeight - 1) / 2f; - - font.draw(ms, component, x, y, 0xff_000000); - } - - @Override - protected void renderElement(PoseStack ms) { - float x = 0, y = 0; - if (centerHorizontally) - x = width / 2f - font.width(component) / 2f; - - if (centerVertically) - y = height / 2f - (font.lineHeight - 1) / 2f; - - ms.pushPose(); - ms.translate(x, y, 0); - element.render(ms, font.width(component), font.lineHeight + 2, alpha); - ms.popPose(); - } - - public MutableComponent getComponent() { - return component; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java b/src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java deleted file mode 100644 index 85cdd4ae1..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.simibubi.create.foundation.gui.widget; - -import java.util.LinkedList; -import java.util.List; -import java.util.function.BiConsumer; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.TickableGuiEventListener; - -import net.minecraft.client.gui.components.AbstractWidget; -import net.minecraft.client.gui.narration.NarrationElementOutput; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; - -public abstract class AbstractSimiWidget extends AbstractWidget implements TickableGuiEventListener { - - public static final int HEADER_RGB = 0x5391E1; - - protected float z; - protected boolean wasHovered = false; - protected List toolTip = new LinkedList<>(); - protected BiConsumer onClick = (_$, _$$) -> {}; - - public int lockedTooltipX = -1; - public int lockedTooltipY = -1; - - protected AbstractSimiWidget(int x, int y) { - this(x, y, 16, 16); - } - - protected AbstractSimiWidget(int x, int y, int width, int height) { - this(x, y, width, height, TextComponent.EMPTY); - } - - protected AbstractSimiWidget(int x, int y, int width, int height, Component message) { - super(x, y, width, height, message); - } - - public T withCallback(BiConsumer cb) { - this.onClick = cb; - //noinspection unchecked - return (T) this; - } - - public T withCallback(Runnable cb) { - return withCallback((_$, _$$) -> cb.run()); - } - - public T atZLevel(float z) { - this.z = z; - //noinspection unchecked - return (T) this; - } - - public List getToolTip() { - return toolTip; - } - - @Override - public void tick() {} - - @Override - public void render(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - if (visible) { - isHovered = mouseX >= x && mouseY >= y && mouseX < x + width && mouseY < y + height; - beforeRender(ms, mouseX, mouseY, partialTicks); - renderButton(ms, mouseX, mouseY, partialTicks); - afterRender(ms, mouseX, mouseY, partialTicks); - wasHovered = isHoveredOrFocused(); - } - } - - protected void beforeRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - ms.pushPose(); - } - - @Override - public void renderButton(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - } - - protected void afterRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - ms.popPose(); - } - - public void runCallback(double mouseX, double mouseY) { - onClick.accept((int) mouseX, (int) mouseY); - } - - @Override - public void onClick(double mouseX, double mouseY) { - runCallback(mouseX, mouseY); - } - - @Override - public void updateNarration(NarrationElementOutput pNarrationElementOutput) { - defaultButtonNarrationText(pNarrationElementOutput); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/BoxWidget.java b/src/main/java/com/simibubi/create/foundation/gui/widget/BoxWidget.java deleted file mode 100644 index 424a9009a..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/BoxWidget.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.simibubi.create.foundation.gui.widget; - -import java.util.function.Function; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.Theme.Key; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.DelegatedStencilElement; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -public class BoxWidget extends ElementWidget { - - public static final Function gradientFactory = (box) -> (ms, w, h, alpha) -> UIRenderHelper.angledGradient(ms, 90, w/2, -2, w + 4, h + 4, box.gradientColor1, box.gradientColor2); - - protected BoxElement box; - - protected Color customBorderTop; - protected Color customBorderBot; - protected Color customBackground; - protected boolean animateColors = true; - protected LerpedFloat colorAnimation = LerpedFloat.linear(); - - protected Color gradientColor1, gradientColor2; - private Color previousColor1, previousColor2; - private Color colorTarget1 = Theme.c(getIdleTheme(), true).copy(); - private Color colorTarget2 = Theme.c(getIdleTheme(), false).copy(); - - public BoxWidget() { - this(0, 0); - } - - public BoxWidget(int x, int y) { - this(x, y, 16, 16); - } - - public BoxWidget(int x, int y, int width, int height) { - super(x, y, width, height); - box = new BoxElement() - .at(x, y) - .withBounds(width, height); - gradientColor1 = colorTarget1; - gradientColor2 = colorTarget2; - } - - public T withBounds(int width, int height) { - this.width = width; - this.height = height; - //noinspection unchecked - return (T) this; - } - - public T withBorderColors(Couple colors) { - this.customBorderTop = colors.getFirst(); - this.customBorderBot = colors.getSecond(); - updateColorsFromState(); - //noinspection unchecked - return (T) this; - } - - public T withBorderColors(Color top, Color bot) { - this.customBorderTop = top; - this.customBorderBot = bot; - updateColorsFromState(); - //noinspection unchecked - return (T) this; - } - - public T withCustomBackground(Color color) { - this.customBackground = color; - //noinspection unchecked - return (T) this; - } - - public T animateColors(boolean b) { - this.animateColors = b; - //noinspection unchecked - return (T) this; - } - - @Override - public void tick() { - super.tick(); - colorAnimation.tickChaser(); - } - - @Override - public void onClick(double x, double y) { - super.onClick(x, y); - - gradientColor1 = Theme.c(getClickTheme(), true); - gradientColor2 = Theme.c(getClickTheme(), false); - startGradientAnimation(getColorForState(true), getColorForState(false), true, 0.15); - } - - @Override - protected void beforeRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - super.beforeRender(ms, mouseX, mouseY, partialTicks); - - if (isHovered != wasHovered) { - startGradientAnimation( - getColorForState(true), - getColorForState(false), - isHovered - ); - } - - if (colorAnimation.settled()) { - gradientColor1 = colorTarget1; - gradientColor2 = colorTarget2; - } else { - float animationValue = 1 - Math.abs(colorAnimation.getValue(partialTicks)); - gradientColor1 = Color.mixColors(previousColor1, colorTarget1, animationValue); - gradientColor2 = Color.mixColors(previousColor2, colorTarget2, animationValue); - } - - } - - @Override - public void renderButton(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - float fadeValue = fade.getValue(partialTicks); - if (fadeValue < .1f) - return; - - box.withAlpha(fadeValue); - box.withBackground(customBackground != null ? customBackground : Theme.c(Theme.Key.PONDER_BACKGROUND_TRANSPARENT)) - .gradientBorder(gradientColor1, gradientColor2) - .at(x, y, z) - .withBounds(width, height) - .render(ms); - - super.renderButton(ms, mouseX, mouseY, partialTicks); - - wasHovered = isHovered; - } - - @Override - public boolean isMouseOver(double mX, double mY) { - if (!active || !visible) - return false; - - return - x - 4 <= mX && - y - 4 <= mY && - mX <= x + 4 + width && - mY <= y + 4 + height; - } - - public BoxElement getBox() { - return box; - } - - public void updateColorsFromState() { - colorTarget1 = getColorForState(true); - colorTarget2 = getColorForState(false); - } - - public void animateGradientFromState() { - startGradientAnimation( - getColorForState(true), - getColorForState(false), - true - ); - } - - private void startGradientAnimation(Color c1, Color c2, boolean positive, double expSpeed) { - if (!animateColors) - return; - - colorAnimation.startWithValue(positive ? 1 : -1); - colorAnimation.chase(0, expSpeed, LerpedFloat.Chaser.EXP); - colorAnimation.tickChaser(); - - previousColor1 = gradientColor1; - previousColor2 = gradientColor2; - - colorTarget1 = c1; - colorTarget2 = c2; - } - - private void startGradientAnimation(Color c1, Color c2, boolean positive) { - startGradientAnimation(c1, c2, positive, 0.6); - } - - private Color getColorForState(boolean first) { - if (!active) - return Theme.p(getDisabledTheme()).get(first); - - if (isHovered) { - if (first) - return customBorderTop != null ? customBorderTop.darker() : Theme.c(getHoverTheme(), true); - else - return customBorderBot != null ? customBorderBot.darker() : Theme.c(getHoverTheme(), false); - } - - if (first) - return customBorderTop != null ? customBorderTop : Theme.c(getIdleTheme(), true); - else - return customBorderBot != null ? customBorderBot : Theme.c(getIdleTheme(), false); - } - - public Key getDisabledTheme() { - return Theme.Key.BUTTON_DISABLE; - } - - public Key getIdleTheme() { - return Theme.Key.BUTTON_IDLE; - } - - public Key getHoverTheme() { - return Theme.Key.BUTTON_HOVER; - } - - public Key getClickTheme() { - return Theme.Key.BUTTON_CLICK; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/ElementWidget.java b/src/main/java/com/simibubi/create/foundation/gui/widget/ElementWidget.java deleted file mode 100644 index 1642ab097..000000000 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/ElementWidget.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.simibubi.create.foundation.gui.widget; - -import java.util.function.Consumer; -import java.util.function.UnaryOperator; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.element.RenderElement; -import com.simibubi.create.foundation.gui.element.ScreenElement; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -public class ElementWidget extends AbstractSimiWidget { - - protected RenderElement element = RenderElement.EMPTY; - - protected boolean usesFade = false; - protected int fadeModX; - protected int fadeModY; - protected LerpedFloat fade = LerpedFloat.linear().startWithValue(1); - - protected boolean rescaleElement = false; - protected float rescaleSizeX; - protected float rescaleSizeY; - - protected float paddingX = 0; - protected float paddingY = 0; - - public ElementWidget(int x, int y) { - super(x, y); - } - - public ElementWidget(int x, int y, int width, int height) { - super(x, y, width, height); - } - - public T showingElement(RenderElement element) { - this.element = element; - //noinspection unchecked - return (T) this; - } - - public T showing(ScreenElement renderable) { - return this.showingElement(RenderElement.of(renderable)); - } - - public T modifyElement(Consumer consumer) { - if (element != null) - consumer.accept(element); - //noinspection unchecked - return (T) this; - } - - public T mapElement(UnaryOperator function) { - if (element != null) - element = function.apply(element); - //noinspection unchecked - return (T) this; - } - - public T withPadding(float paddingX, float paddingY) { - this.paddingX = paddingX; - this.paddingY = paddingY; - //noinspection unchecked - return (T) this; - } - - public T enableFade(int fadeModifierX, int fadeModifierY) { - this.fade.startWithValue(0); - this.usesFade = true; - this.fadeModX = fadeModifierX; - this.fadeModY = fadeModifierY; - //noinspection unchecked - return (T) this; - } - - public T disableFade() { - this.fade.startWithValue(1); - this.usesFade = false; - //noinspection unchecked - return (T) this; - } - - public LerpedFloat fade() { - return fade; - } - - public T fade(float target) { - fade.chase(target, 0.1, LerpedFloat.Chaser.EXP); - //noinspection unchecked - return (T) this; - } - - /** - * Rescaling and its effects aren't properly tested with most elements. - * Thought it should work fine when using a TextStencilElement. - * Check BaseConfigScreen's title for such an example. - */ - @Deprecated - public T rescaleElement(float rescaleSizeX, float rescaleSizeY) { - this.rescaleElement = true; - this.rescaleSizeX = rescaleSizeX; - this.rescaleSizeY = rescaleSizeY; - //noinspection unchecked - return (T) this; - } - - public T disableRescale() { - this.rescaleElement = false; - //noinspection unchecked - return (T) this; - } - - @Override - public void tick() { - super.tick(); - fade.tickChaser(); - } - - @Override - protected void beforeRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - super.beforeRender(ms, mouseX, mouseY, partialTicks); - - float fadeValue = fade.getValue(partialTicks); - element.withAlpha(fadeValue); - if (fadeValue < 1) { - ms.translate((1 - fadeValue) * fadeModX, (1 - fadeValue) * fadeModY, 0); - } - } - - @Override - public void renderButton(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - ms.pushPose(); - ms.translate(x + paddingX, y + paddingY, z); - float innerWidth = width - 2 * paddingX; - float innerHeight = height - 2 * paddingY; - float eX = element.getX(), eY = element.getY(); - if (rescaleElement) { - float xScale = innerWidth / rescaleSizeX; - float yScale = innerHeight / rescaleSizeY; - ms.scale(xScale, yScale, 1); - element.at(eX / xScale, eY / yScale); - innerWidth /= xScale; - innerHeight /= yScale; - } - element.withBounds((int) innerWidth, (int) innerHeight).render(ms); - ms.popPose(); - if (rescaleElement) { - element.at(eX, eY); - } - } - - public RenderElement getRenderElement() { - return element; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/IconButton.java b/src/main/java/com/simibubi/create/foundation/gui/widget/IconButton.java index 366eb4177..1769050be 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/IconButton.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/IconButton.java @@ -5,8 +5,9 @@ import javax.annotation.Nonnull; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.element.ScreenElement; +import net.createmod.catnip.gui.element.ScreenElement; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.network.chat.Component; public class IconButton extends AbstractSimiWidget { @@ -16,7 +17,7 @@ public class IconButton extends AbstractSimiWidget { public IconButton(int x, int y, ScreenElement icon) { this(x, y, 18, 18, icon); } - + public IconButton(int x, int y, int w, int h, ScreenElement icon) { super(x, y, w, h); this.icon = icon; @@ -38,7 +39,7 @@ public class IconButton extends AbstractSimiWidget { protected void drawBg(PoseStack matrixStack, AllGuiTextures button) { AllGuiTextures.BUTTON.bind(); - blit(matrixStack, x, y, button.startX, button.startY, button.width, button.height); + blit(matrixStack, x, y, button.getStartX(), button.getStartY(), button.getWidth(), button.getHeight()); } public void setToolTip(Component text) { diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/Indicator.java b/src/main/java/com/simibubi/create/foundation/gui/widget/Indicator.java index 4589f9d9b..fc50f74a5 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/Indicator.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/Indicator.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.gui.AllGuiTextures; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.network.chat.Component; public class Indicator extends AbstractSimiWidget { @@ -13,7 +14,7 @@ public class Indicator extends AbstractSimiWidget { public State state; public Indicator(int x, int y, Component tooltip) { - super(x, y, AllGuiTextures.INDICATOR.width, AllGuiTextures.INDICATOR.height); + super(x, y, AllGuiTextures.INDICATOR.getWidth(), AllGuiTextures.INDICATOR.getHeight()); this.toolTip = ImmutableList.of(tooltip); this.state = State.OFF; } diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/Label.java b/src/main/java/com/simibubi/create/foundation/gui/widget/Label.java index 414f5ab5b..d047a740b 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/Label.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/Label.java @@ -5,6 +5,7 @@ import javax.annotation.Nonnull; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.network.chat.Component; @@ -45,12 +46,12 @@ public class Label extends AbstractSimiWidget { public void setTextAndTrim(Component newText, boolean trimFront, int maxWidthPx) { Font fontRenderer = Minecraft.getInstance().font; - + if (fontRenderer.width(newText) <= maxWidthPx) { text = newText; return; } - + String trim = "..."; int trimWidth = fontRenderer.width(trim); @@ -79,7 +80,7 @@ public class Label extends AbstractSimiWidget { MutableComponent copy = text.plainCopy(); if (suffix != null && !suffix.isEmpty()) copy.append(suffix); - + if (hasShadow) font.drawShadow(matrixStack, copy, x, y, color); else diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/ScrollInput.java b/src/main/java/com/simibubi/create/foundation/gui/widget/ScrollInput.java index 337729b27..df2ad074c 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/ScrollInput.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/ScrollInput.java @@ -5,8 +5,9 @@ import java.util.function.Function; import com.simibubi.create.AllKeys; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour.StepContext; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -16,9 +17,9 @@ public class ScrollInput extends AbstractSimiWidget { protected Consumer onScroll; protected int state; - protected Component title = Lang.translateDirect("gui.scrollInput.defaultTitle"); - protected final Component scrollToModify = Lang.translateDirect("gui.scrollInput.scrollToModify"); - protected final Component shiftScrollsFaster = Lang.translateDirect("gui.scrollInput.shiftScrollsFaster"); + protected Component title = CreateLang.translateDirect("gui.scrollInput.defaultTitle"); + protected final Component scrollToModify = CreateLang.translateDirect("gui.scrollInput.scrollToModify"); + protected final Component shiftScrollsFaster = CreateLang.translateDirect("gui.scrollInput.shiftScrollsFaster"); protected Label displayLabel; protected boolean inverted; protected Function formatter; diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/SelectionScrollInput.java b/src/main/java/com/simibubi/create/foundation/gui/widget/SelectionScrollInput.java index 1a570d446..16b2566d3 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/SelectionScrollInput.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/SelectionScrollInput.java @@ -3,7 +3,7 @@ package com.simibubi.create.foundation.gui.widget; import java.util.ArrayList; import java.util.List; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -12,7 +12,7 @@ import net.minecraft.network.chat.TextComponent; public class SelectionScrollInput extends ScrollInput { - private final MutableComponent scrollToSelect = Lang.translateDirect("gui.scrollInput.scrollToSelect"); + private final MutableComponent scrollToSelect = CreateLang.translateDirect("gui.scrollInput.scrollToSelect"); protected List options; public SelectionScrollInput(int xIn, int yIn, int widthIn, int heightIn) { diff --git a/src/main/java/com/simibubi/create/foundation/gui/widget/TooltipArea.java b/src/main/java/com/simibubi/create/foundation/gui/widget/TooltipArea.java index db256b4a4..c566017ac 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/TooltipArea.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/TooltipArea.java @@ -4,6 +4,7 @@ import java.util.List; import com.mojang.blaze3d.vertex.PoseStack; +import net.createmod.catnip.gui.widget.AbstractSimiWidget; import net.minecraft.network.chat.Component; public class TooltipArea extends AbstractSimiWidget { diff --git a/src/main/java/com/simibubi/create/foundation/item/CountedItemStackList.java b/src/main/java/com/simibubi/create/foundation/item/CountedItemStackList.java index 2b964a7c6..9da37a03d 100644 --- a/src/main/java/com/simibubi/create/foundation/item/CountedItemStackList.java +++ b/src/main/java/com/simibubi/create/foundation/item/CountedItemStackList.java @@ -8,7 +8,7 @@ import java.util.Set; import java.util.stream.Stream; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.IntAttached; +import net.createmod.catnip.utility.IntAttached; import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.item.Item; diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java index 3f0be8ba2..a7bf0fe34 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.item; -import static com.simibubi.create.foundation.item.TooltipHelper.cutStringTextComponent; -import static com.simibubi.create.foundation.item.TooltipHelper.cutTextComponent; +import static net.createmod.catnip.utility.FontHelper.cutStringTextComponent; +import static net.createmod.catnip.utility.FontHelper.cutTextComponent; import static net.minecraft.ChatFormatting.AQUA; import static net.minecraft.ChatFormatting.BLUE; import static net.minecraft.ChatFormatting.DARK_GRAY; @@ -27,10 +27,11 @@ import com.simibubi.create.content.contraptions.goggles.GogglesItem; import com.simibubi.create.foundation.block.BlockStressValues; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CKinetics; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.lang.LangBuilder; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; @@ -85,8 +86,8 @@ public class ItemDescription { List list = new ArrayList<>(); CKinetics config = AllConfigs.SERVER.kinetics; - LangBuilder rpmUnit = Lang.translate("generic.unit.rpm"); - LangBuilder suUnit = Lang.translate("generic.unit.stress"); + LangBuilder rpmUnit = CreateLang.translate("generic.unit.rpm"); + LangBuilder suUnit = CreateLang.translate("generic.unit.stress"); boolean hasGoggles = GogglesItem.isWearingGoggles(Minecraft.getInstance().player); @@ -102,19 +103,19 @@ public class ItemDescription { boolean hasStressCapacity = StressImpact.isEnabled() && BlockStressValues.hasCapacity(block); if (hasStressImpact) { - Lang.translate("tooltip.stressImpact") + CreateLang.translate("tooltip.stressImpact") .style(GRAY) .addTo(list); double impact = BlockStressValues.getImpact(block); StressImpact impactId = impact >= config.highStressImpact.get() ? StressImpact.HIGH : (impact >= config.mediumStressImpact.get() ? StressImpact.MEDIUM : StressImpact.LOW); - LangBuilder builder = Lang.builder() - .add(Lang.text(makeProgressBar(3, impactId.ordinal() + 1)) + LangBuilder builder = CreateLang.builder() + .add(CreateLang.text(makeProgressBar(3, impactId.ordinal() + 1)) .style(impactId.getAbsoluteColor())); if (hasGoggles) { - builder.add(Lang.number(impact)) + builder.add(CreateLang.number(impact)) .text("x ") .add(rpmUnit) .addTo(list); @@ -124,7 +125,7 @@ public class ItemDescription { } if (hasStressCapacity) { - Lang.translate("tooltip.capacityProvided") + CreateLang.translate("tooltip.capacityProvided") .style(GRAY) .addTo(list); @@ -137,22 +138,22 @@ public class ItemDescription { StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.HIGH : (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.LOW); StressImpact opposite = StressImpact.values()[StressImpact.values().length - 2 - impactId.ordinal()]; - LangBuilder builder = Lang.builder() - .add(Lang.text(makeProgressBar(3, impactId.ordinal() + 1)) + LangBuilder builder = CreateLang.builder() + .add(CreateLang.text(makeProgressBar(3, impactId.ordinal() + 1)) .style(opposite.getAbsoluteColor())); if (hasGoggles) { - builder.add(Lang.number(capacity)) + builder.add(CreateLang.number(capacity)) .text("x ") .add(rpmUnit) .addTo(list); if (generatedRPM != null) { - LangBuilder amount = Lang.number(capacity * generatedRPM.getSecond()) + LangBuilder amount = CreateLang.number(capacity * generatedRPM.getSecond()) .add(suUnit); - Lang.text(" -> ") + CreateLang.text(" -> ") .add(!generatedRPM.getFirst() - .equals(generatedRPM.getSecond()) ? Lang.translate("tooltip.up_to", amount) : amount) + .equals(generatedRPM.getSecond()) ? CreateLang.translate("tooltip.up_to", amount) : amount) .style(DARK_GRAY) .addTo(list); } @@ -191,14 +192,14 @@ public class ItemDescription { boolean hasControls = !linesOnCtrl.isEmpty(); if (hasDescription || hasControls) { - String[] holdDesc = Lang.translateDirect("tooltip.holdForDescription", "$") + String[] holdDesc = CreateLang.translateDirect("tooltip.holdForDescription", "$") .getString() .split("\\$"); - String[] holdCtrl = Lang.translateDirect("tooltip.holdForControls", "$") + String[] holdCtrl = CreateLang.translateDirect("tooltip.holdForControls", "$") .getString() .split("\\$"); - MutableComponent keyShift = Lang.translateDirect("tooltip.keyShift"); - MutableComponent keyCtrl = Lang.translateDirect("tooltip.keyCtrl"); + MutableComponent keyShift = CreateLang.translateDirect("tooltip.keyShift"); + MutableComponent keyCtrl = CreateLang.translateDirect("tooltip.keyCtrl"); for (List list : Arrays.asList(lines, linesOnShift, linesOnCtrl)) { boolean shift = list == linesOnShift; boolean ctrl = list == linesOnCtrl; diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java b/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java index b2a454fb8..aab5514a9 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemHelper.java @@ -10,8 +10,8 @@ import javax.annotation.Nullable; import org.apache.commons.lang3.mutable.MutableInt; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java index bccd61761..8d012bdc4 100644 --- a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java @@ -1,26 +1,20 @@ package com.simibubi.create.foundation.item; -import java.text.BreakIterator; -import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import com.google.common.base.Strings; import com.mojang.bridge.game.Language; import com.simibubi.create.content.AllSections; import com.simibubi.create.content.contraptions.goggles.GogglesItem; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.item.ItemDescription.Palette; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.FontHelper; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.FontHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Font; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -29,18 +23,16 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; -import net.minecraftforge.client.MinecraftForgeClient; public class TooltipHelper { - public static final int maxWidthPerLine = 200; public static final Map cachedTooltips = new HashMap<>(); public static Language cachedLanguage; private static boolean gogglesMode; private static final Map> tooltipReferrals = new HashMap<>(); public static MutableComponent holdShift(Palette color, boolean highlighted) { - return Lang.translateDirect("tooltip.holdForDescription", Lang.translateDirect("tooltip.keyShift") + return CreateLang.translateDirect("tooltip.holdForDescription", CreateLang.translateDirect("tooltip.keyShift") .withStyle(ChatFormatting.GRAY)) .withStyle(ChatFormatting.DARK_GRAY); } @@ -48,10 +40,10 @@ public class TooltipHelper { public static void addHint(List tooltip, String hintKey, Object... messageParams) { Component spacing = IHaveGoggleInformation.componentSpacing; tooltip.add(spacing.plainCopy() - .append(Lang.translateDirect(hintKey + ".title")) + .append(CreateLang.translateDirect(hintKey + ".title")) .withStyle(ChatFormatting.GOLD)); - Component hint = Lang.translateDirect(hintKey); - List cutComponent = TooltipHelper.cutTextComponent(hint, ChatFormatting.GRAY, ChatFormatting.WHITE); + Component hint = CreateLang.translateDirect(hintKey); + List cutComponent = FontHelper.cutTextComponent(hint, ChatFormatting.GRAY, ChatFormatting.WHITE); for (Component component : cutComponent) tooltip.add(spacing.plainCopy() .append(component)); @@ -67,122 +59,7 @@ public class TooltipHelper { tooltipReferrals.put(item.asItem(), () -> string); } - @Deprecated - public static List cutString(Component s, ChatFormatting defaultColor, ChatFormatting highlightColor) { - return cutString(s.getContents(), defaultColor, highlightColor, 0); - } - - @Deprecated - public static List cutString(String s, ChatFormatting defaultColor, ChatFormatting highlightColor, - int indent) { - // Apply markup - String markedUp = s.replaceAll("_([^_]+)_", highlightColor + "$1" + defaultColor); - - // Split words - List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); - iterator.setText(markedUp); - int start = iterator.first(); - for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { - String word = markedUp.substring(start, end); - words.add(word); - } - - Font font = Minecraft.getInstance().font; - List lines = FontHelper.cutString(font, markedUp, maxWidthPerLine); - - // Format - String lineStart = Strings.repeat(" ", indent); - List formattedLines = new ArrayList<>(lines.size()); - String format = defaultColor.toString(); - for (String line : lines) { - String formattedLine = format + lineStart + line; - formattedLines.add(formattedLine); -// format = TextFormatting.getFormatString(formattedLine); - } - return formattedLines; - } - - public static List cutStringTextComponent(String c, ChatFormatting defaultColor, - ChatFormatting highlightColor) { - return cutTextComponent(new TextComponent(c), defaultColor, highlightColor, 0); - } - - public static List cutTextComponent(Component c, ChatFormatting defaultColor, - ChatFormatting highlightColor) { - return cutTextComponent(c, defaultColor, highlightColor, 0); - } - - public static List cutStringTextComponent(String c, ChatFormatting defaultColor, - ChatFormatting highlightColor, int indent) { - return cutTextComponent(new TextComponent(c), defaultColor, highlightColor, indent); - } - - public static List cutTextComponent(Component c, ChatFormatting defaultColor, - ChatFormatting highlightColor, int indent) { - String s = c.getString(); - - // Apply markup - String markedUp = s;// .replaceAll("_([^_]+)_", highlightColor + "$1" + defaultColor); - - // Split words - List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); - iterator.setText(markedUp); - int start = iterator.first(); - for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { - String word = markedUp.substring(start, end); - words.add(word); - } - - // Apply hard wrap - Font font = Minecraft.getInstance().font; - List lines = new LinkedList<>(); - StringBuilder currentLine = new StringBuilder(); - int width = 0; - for (String word : words) { - int newWidth = font.width(word.replaceAll("_", "")); - if (width + newWidth > maxWidthPerLine) { - if (width > 0) { - String line = currentLine.toString(); - lines.add(line); - currentLine = new StringBuilder(); - width = 0; - } else { - lines.add(word); - continue; - } - } - currentLine.append(word); - width += newWidth; - } - if (width > 0) { - lines.add(currentLine.toString()); - } - - // Format - MutableComponent lineStart = new TextComponent(Strings.repeat(" ", indent)); - lineStart.withStyle(defaultColor); - List formattedLines = new ArrayList<>(lines.size()); - Couple f = Couple.create(highlightColor, defaultColor); - - boolean currentlyHighlighted = false; - for (String string : lines) { - MutableComponent currentComponent = lineStart.plainCopy(); - String[] split = string.split("_"); - for (String part : split) { - currentComponent.append(new TextComponent(part).withStyle(f.get(currentlyHighlighted))); - currentlyHighlighted = !currentlyHighlighted; - } - - formattedLines.add(currentComponent); - currentlyHighlighted = !currentlyHighlighted; - } - - return formattedLines; - } - -// public static List cutTextComponentOld(ITextComponent c, TextFormatting defaultColor, + // public static List cutTextComponentOld(ITextComponent c, TextFormatting defaultColor, // TextFormatting highlightColor, int indent) { // IFormattableTextComponent lineStart = StringTextComponent.EMPTY.copy(); // for (int i = 0; i < indent; i++) diff --git a/src/main/java/com/simibubi/create/foundation/item/render/PartialItemModelRenderer.java b/src/main/java/com/simibubi/create/foundation/item/render/PartialItemModelRenderer.java index 2b3e8a104..230905b40 100644 --- a/src/main/java/com/simibubi/create/foundation/item/render/PartialItemModelRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/item/render/PartialItemModelRenderer.java @@ -5,8 +5,8 @@ import java.util.Random; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.simibubi.create.foundation.render.RenderTypes; -import com.simibubi.create.foundation.utility.Iterate; +import net.createmod.catnip.utility.Iterate; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/com/simibubi/create/foundation/mixin/CameraMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/CameraMixin.java index 89c792ba6..034725568 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/CameraMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/CameraMixin.java @@ -7,8 +7,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import com.simibubi.create.content.logistics.trains.CameraDistanceModifier; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Camera; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.BlockGetter; diff --git a/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java index 8814dacff..e37d39289 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java @@ -5,8 +5,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import com.simibubi.create.content.schematics.SchematicWorld; - +import net.createmod.catnip.utility.worldWrappers.SchematicWorld; import net.minecraft.client.Minecraft; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/com/simibubi/create/foundation/mixin/WindowResizeMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/WindowResizeMixin.java deleted file mode 100644 index 515cfea40..000000000 --- a/src/main/java/com/simibubi/create/foundation/mixin/WindowResizeMixin.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.simibubi.create.foundation.mixin; - -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.mojang.blaze3d.platform.Window; -import com.simibubi.create.foundation.gui.UIRenderHelper; - -import net.minecraft.client.Minecraft; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -@Mixin(Minecraft.class) -public class WindowResizeMixin { - - @Shadow @Final private Window window; - - @Inject(at = @At("TAIL"), method = "resizeDisplay") - private void updateWindowSize(CallbackInfo ci) { - UIRenderHelper.updateWindowSize(window); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/mixin/accessor/GameRendererAccessor.java b/src/main/java/com/simibubi/create/foundation/mixin/accessor/GameRendererAccessor.java deleted file mode 100644 index 0fb4fafe2..000000000 --- a/src/main/java/com/simibubi/create/foundation/mixin/accessor/GameRendererAccessor.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simibubi.create.foundation.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -import net.minecraft.client.Camera; -import net.minecraft.client.renderer.GameRenderer; - -@Mixin(GameRenderer.class) -public interface GameRendererAccessor { - @Invoker("getFov") - double create$callGetFov(Camera camera, float partialTicks, boolean useFOVSetting); -} diff --git a/src/main/java/com/simibubi/create/foundation/mixin/accessor/ParticleEngineAccessor.java b/src/main/java/com/simibubi/create/foundation/mixin/accessor/ParticleEngineAccessor.java deleted file mode 100644 index 049cb8fc3..000000000 --- a/src/main/java/com/simibubi/create/foundation/mixin/accessor/ParticleEngineAccessor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.simibubi.create.foundation.mixin.accessor; - -import java.util.Map; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import net.minecraft.client.particle.ParticleEngine; -import net.minecraft.client.particle.ParticleProvider; -import net.minecraft.resources.ResourceLocation; - -@Mixin(ParticleEngine.class) -public interface ParticleEngineAccessor { - // This field cannot be ATed because its type is patched by Forge - @Accessor("providers") - Map> create$getProviders(); -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/CreatePonderIndex.java similarity index 76% rename from src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java rename to src/main/java/com/simibubi/create/foundation/ponder/CreatePonderIndex.java index ed44673e8..bddb277f2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/CreatePonderIndex.java @@ -1,12 +1,34 @@ -package com.simibubi.create.foundation.ponder.content; +package com.simibubi.create.foundation.ponder; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.Create; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.ponder.PonderRegistrationHelper; -import com.simibubi.create.foundation.ponder.PonderRegistry; -import com.simibubi.create.foundation.ponder.PonderTag; +import com.simibubi.create.foundation.ponder.content.ArmScenes; +import com.simibubi.create.foundation.ponder.content.BearingScenes; +import com.simibubi.create.foundation.ponder.content.BeltScenes; +import com.simibubi.create.foundation.ponder.content.CartAssemblerScenes; +import com.simibubi.create.foundation.ponder.content.ChainDriveScenes; +import com.simibubi.create.foundation.ponder.content.ChassisScenes; +import com.simibubi.create.foundation.ponder.content.ChuteScenes; +import com.simibubi.create.foundation.ponder.content.CrafterScenes; +import com.simibubi.create.foundation.ponder.content.DeployerScenes; +import com.simibubi.create.foundation.ponder.content.DisplayScenes; +import com.simibubi.create.foundation.ponder.content.EjectorScenes; +import com.simibubi.create.foundation.ponder.content.FanScenes; +import com.simibubi.create.foundation.ponder.content.FunnelScenes; +import com.simibubi.create.foundation.ponder.content.GantryScenes; +import com.simibubi.create.foundation.ponder.content.ItemVaultScenes; +import com.simibubi.create.foundation.ponder.content.KineticsScenes; +import com.simibubi.create.foundation.ponder.content.MechanicalDrillScenes; +import com.simibubi.create.foundation.ponder.content.MechanicalSawScenes; +import com.simibubi.create.foundation.ponder.content.MovementActorScenes; +import com.simibubi.create.foundation.ponder.content.PistonScenes; +import com.simibubi.create.foundation.ponder.content.ProcessingScenes; +import com.simibubi.create.foundation.ponder.content.PulleyScenes; +import com.simibubi.create.foundation.ponder.content.RedstoneScenes; +import com.simibubi.create.foundation.ponder.content.RedstoneScenes2; +import com.simibubi.create.foundation.ponder.content.SteamScenes; +import com.simibubi.create.foundation.ponder.content.TunnelScenes; import com.simibubi.create.foundation.ponder.content.fluid.DrainScenes; import com.simibubi.create.foundation.ponder.content.fluid.FluidMovementActorScenes; import com.simibubi.create.foundation.ponder.content.fluid.FluidTankScenes; @@ -19,13 +41,17 @@ import com.simibubi.create.foundation.ponder.content.trains.TrackScenes; import com.simibubi.create.foundation.ponder.content.trains.TrainScenes; import com.simibubi.create.foundation.ponder.content.trains.TrainSignalScenes; import com.simibubi.create.foundation.ponder.content.trains.TrainStationScenes; +import com.tterrag.registrate.util.entry.ItemProviderEntry; +import com.tterrag.registrate.util.entry.RegistryEntry; +import net.createmod.ponder.foundation.CustomPonderRegistrationHelper; +import net.createmod.ponder.foundation.content.DebugScenes; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.Blocks; -public class PonderIndex { +public class CreatePonderIndex { - static final PonderRegistrationHelper HELPER = new PonderRegistrationHelper(Create.ID); + private static final CustomPonderRegistrationHelper> HELPER = new CustomPonderRegistrationHelper<>(Create.ID, RegistryEntry::getId); public static final boolean REGISTER_DEBUG_SCENES = false; @@ -35,24 +61,24 @@ public class PonderIndex { // (!) Modifications inside storyboard methods only require re-opening the ui HELPER.forComponents(AllBlocks.SHAFT) - .addStoryBoard("shaft/relay", KineticsScenes::shaftAsRelay, PonderTag.KINETIC_RELAYS); + .addStoryBoard("shaft/relay", KineticsScenes::shaftAsRelay, CreatePonderTag.KINETIC_RELAYS); HELPER.forComponents(AllBlocks.SHAFT, AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT) .addStoryBoard("shaft/encasing", KineticsScenes::shaftsCanBeEncased); HELPER.forComponents(AllBlocks.COGWHEEL) - .addStoryBoard("cog/small", KineticsScenes::cogAsRelay, PonderTag.KINETIC_RELAYS) + .addStoryBoard("cog/small", KineticsScenes::cogAsRelay, CreatePonderTag.KINETIC_RELAYS) .addStoryBoard("cog/speedup", KineticsScenes::cogsSpeedUp) .addStoryBoard("cog/encasing", KineticsScenes::cogwheelsCanBeEncased); HELPER.forComponents(AllBlocks.LARGE_COGWHEEL) .addStoryBoard("cog/speedup", KineticsScenes::cogsSpeedUp) - .addStoryBoard("cog/large", KineticsScenes::largeCogAsRelay, PonderTag.KINETIC_RELAYS) + .addStoryBoard("cog/large", KineticsScenes::largeCogAsRelay, CreatePonderTag.KINETIC_RELAYS) .addStoryBoard("cog/encasing", KineticsScenes::cogwheelsCanBeEncased); HELPER.forComponents(AllItems.BELT_CONNECTOR) - .addStoryBoard("belt/connect", BeltScenes::beltConnector, PonderTag.KINETIC_RELAYS) + .addStoryBoard("belt/connect", BeltScenes::beltConnector, CreatePonderTag.KINETIC_RELAYS) .addStoryBoard("belt/directions", BeltScenes::directions) - .addStoryBoard("belt/transport", BeltScenes::transport, PonderTag.LOGISTICS) + .addStoryBoard("belt/transport", BeltScenes::transport, CreatePonderTag.LOGISTICS) .addStoryBoard("belt/encasing", BeltScenes::beltsCanBeEncased); HELPER.forComponents(AllBlocks.ANDESITE_CASING, AllBlocks.BRASS_CASING) @@ -60,32 +86,32 @@ public class PonderIndex { .addStoryBoard("belt/encasing", BeltScenes::beltsCanBeEncased); HELPER.forComponents(AllBlocks.GEARBOX, AllItems.VERTICAL_GEARBOX) - .addStoryBoard("gearbox", KineticsScenes::gearbox, PonderTag.KINETIC_RELAYS); + .addStoryBoard("gearbox", KineticsScenes::gearbox, CreatePonderTag.KINETIC_RELAYS); - HELPER.addStoryBoard(AllBlocks.CLUTCH, "clutch", KineticsScenes::clutch, PonderTag.KINETIC_RELAYS); - HELPER.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, PonderTag.KINETIC_RELAYS); + HELPER.addStoryBoard(AllBlocks.CLUTCH, "clutch", KineticsScenes::clutch, CreatePonderTag.KINETIC_RELAYS); + HELPER.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, CreatePonderTag.KINETIC_RELAYS); HELPER.forComponents(AllBlocks.SEQUENCED_GEARSHIFT) .addStoryBoard("sequenced_gearshift", KineticsScenes::sequencedGearshift); HELPER.forComponents(AllBlocks.ENCASED_FAN) - .addStoryBoard("fan/direction", FanScenes::direction, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("fan/direction", FanScenes::direction, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("fan/processing", FanScenes::processing); HELPER.forComponents(AllBlocks.CREATIVE_MOTOR) - .addStoryBoard("creative_motor", KineticsScenes::creativeMotor, PonderTag.KINETIC_SOURCES) + .addStoryBoard("creative_motor", KineticsScenes::creativeMotor, CreatePonderTag.KINETIC_SOURCES) .addStoryBoard("creative_motor_mojang", KineticsScenes::creativeMotorMojang); HELPER.addStoryBoard(AllBlocks.WATER_WHEEL, "water_wheel", KineticsScenes::waterWheel, - PonderTag.KINETIC_SOURCES); - HELPER.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank, PonderTag.KINETIC_SOURCES); + CreatePonderTag.KINETIC_SOURCES); + HELPER.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank, CreatePonderTag.KINETIC_SOURCES); HELPER.addStoryBoard(AllBlocks.COPPER_VALVE_HANDLE, "valve_handle", KineticsScenes::valveHandle, - PonderTag.KINETIC_SOURCES); + CreatePonderTag.KINETIC_SOURCES); HELPER.forComponents(AllBlocks.DYED_VALVE_HANDLES.toArray()) .addStoryBoard("valve_handle", KineticsScenes::valveHandle); HELPER.addStoryBoard(AllBlocks.ENCASED_CHAIN_DRIVE, "chain_drive/relay", ChainDriveScenes::chainDriveAsRelay, - PonderTag.KINETIC_RELAYS); + CreatePonderTag.KINETIC_RELAYS); HELPER.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) .addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift); @@ -124,12 +150,12 @@ public class PonderIndex { // Vaults HELPER.forComponents(AllBlocks.ITEM_VAULT) - .addStoryBoard("item_vault/storage", ItemVaultScenes::storage, PonderTag.LOGISTICS) + .addStoryBoard("item_vault/storage", ItemVaultScenes::storage, CreatePonderTag.LOGISTICS) .addStoryBoard("item_vault/sizes", ItemVaultScenes::sizes); // Chutes HELPER.forComponents(AllBlocks.CHUTE) - .addStoryBoard("chute/downward", ChuteScenes::downward, PonderTag.LOGISTICS) + .addStoryBoard("chute/downward", ChuteScenes::downward, CreatePonderTag.LOGISTICS) .addStoryBoard("chute/upward", ChuteScenes::upward); HELPER.forComponents(AllBlocks.CHUTE, AllBlocks.SMART_CHUTE) .addStoryBoard("chute/smart", ChuteScenes::smart); @@ -137,7 +163,7 @@ public class PonderIndex { // Funnels HELPER.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass); HELPER.forComponents(AllBlocks.ANDESITE_FUNNEL, AllBlocks.BRASS_FUNNEL) - .addStoryBoard("funnels/intro", FunnelScenes::intro, PonderTag.LOGISTICS) + .addStoryBoard("funnels/intro", FunnelScenes::intro, CreatePonderTag.LOGISTICS) .addStoryBoard("funnels/direction", FunnelScenes::directionality) .addStoryBoard("funnels/compat", FunnelScenes::compat) .addStoryBoard("funnels/redstone", FunnelScenes::redstone) @@ -152,26 +178,26 @@ public class PonderIndex { // Chassis & Super Glue HELPER.forComponents(AllBlocks.LINEAR_CHASSIS, AllBlocks.SECONDARY_LINEAR_CHASSIS) - .addStoryBoard("chassis/linear_group", ChassisScenes::linearGroup, PonderTag.CONTRAPTION_ASSEMBLY) + .addStoryBoard("chassis/linear_group", ChassisScenes::linearGroup, CreatePonderTag.CONTRAPTION_ASSEMBLY) .addStoryBoard("chassis/linear_attachment", ChassisScenes::linearAttachement); HELPER.forComponents(AllBlocks.RADIAL_CHASSIS) - .addStoryBoard("chassis/radial", ChassisScenes::radial, PonderTag.CONTRAPTION_ASSEMBLY); + .addStoryBoard("chassis/radial", ChassisScenes::radial, CreatePonderTag.CONTRAPTION_ASSEMBLY); HELPER.forComponents(AllItems.SUPER_GLUE) - .addStoryBoard("super_glue", ChassisScenes::superGlue, PonderTag.CONTRAPTION_ASSEMBLY); + .addStoryBoard("super_glue", ChassisScenes::superGlue, CreatePonderTag.CONTRAPTION_ASSEMBLY); HELPER.forComponents(AllBlocks.STICKER) - .addStoryBoard("sticker", RedstoneScenes::sticker, PonderTag.CONTRAPTION_ASSEMBLY); + .addStoryBoard("sticker", RedstoneScenes::sticker, CreatePonderTag.CONTRAPTION_ASSEMBLY); // Mechanical Arm HELPER.forComponents(AllBlocks.MECHANICAL_ARM) - .addStoryBoard("mechanical_arm/setup", ArmScenes::setup, PonderTag.ARM_TARGETS) + .addStoryBoard("mechanical_arm/setup", ArmScenes::setup, CreatePonderTag.ARM_TARGETS) .addStoryBoard("mechanical_arm/filter", ArmScenes::filtering) .addStoryBoard("mechanical_arm/modes", ArmScenes::modes) .addStoryBoard("mechanical_arm/redstone", ArmScenes::redstone); // Mechanical Piston HELPER.forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON) - .addStoryBoard("mechanical_piston/anchor", PistonScenes::movement, PonderTag.KINETIC_APPLIANCES, - PonderTag.MOVEMENT_ANCHOR); + .addStoryBoard("mechanical_piston/anchor", PistonScenes::movement, CreatePonderTag.KINETIC_APPLIANCES, + CreatePonderTag.MOVEMENT_ANCHOR); HELPER .forComponents(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON, AllBlocks.PISTON_EXTENSION_POLE) @@ -181,16 +207,16 @@ public class PonderIndex { // Windmill Bearing HELPER.forComponents(AllBlocks.ROPE_PULLEY) - .addStoryBoard("rope_pulley/anchor", PulleyScenes::movement, PonderTag.KINETIC_APPLIANCES, - PonderTag.MOVEMENT_ANCHOR) + .addStoryBoard("rope_pulley/anchor", PulleyScenes::movement, CreatePonderTag.KINETIC_APPLIANCES, + CreatePonderTag.MOVEMENT_ANCHOR) .addStoryBoard("rope_pulley/modes", PulleyScenes::movementModes) .addStoryBoard("rope_pulley/attachment", PulleyScenes::attachment); // Windmill Bearing HELPER.forComponents(AllBlocks.WINDMILL_BEARING) - .addStoryBoard("windmill_bearing/source", BearingScenes::windmillsAsSource, PonderTag.KINETIC_SOURCES) + .addStoryBoard("windmill_bearing/source", BearingScenes::windmillsAsSource, CreatePonderTag.KINETIC_SOURCES) .addStoryBoard("windmill_bearing/structure", BearingScenes::windmillsAnyStructure, - PonderTag.MOVEMENT_ANCHOR); + CreatePonderTag.MOVEMENT_ANCHOR); HELPER.forComponents(AllBlocks.SAIL) .addStoryBoard("sail", BearingScenes::sail); HELPER.forComponents(AllBlocks.SAIL_FRAME) @@ -198,21 +224,21 @@ public class PonderIndex { // Mechanical Bearing HELPER.forComponents(AllBlocks.MECHANICAL_BEARING) - .addStoryBoard("mechanical_bearing/anchor", BearingScenes::mechanicalBearing, PonderTag.KINETIC_APPLIANCES, - PonderTag.MOVEMENT_ANCHOR) + .addStoryBoard("mechanical_bearing/anchor", BearingScenes::mechanicalBearing, CreatePonderTag.KINETIC_APPLIANCES, + CreatePonderTag.MOVEMENT_ANCHOR) .addStoryBoard("mechanical_bearing/modes", BearingScenes::bearingModes) .addStoryBoard("mechanical_bearing/stabilized", BearingScenes::stabilizedBearings, - PonderTag.CONTRAPTION_ACTOR); + CreatePonderTag.CONTRAPTION_ACTOR); // Clockwork Bearing HELPER.addStoryBoard(AllBlocks.CLOCKWORK_BEARING, "clockwork_bearing", BearingScenes::clockwork, - PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); + CreatePonderTag.KINETIC_APPLIANCES, CreatePonderTag.MOVEMENT_ANCHOR); // Gantries HELPER.addStoryBoard(AllBlocks.GANTRY_SHAFT, "gantry/intro", GantryScenes::introForShaft, - PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); + CreatePonderTag.KINETIC_APPLIANCES, CreatePonderTag.MOVEMENT_ANCHOR); HELPER.addStoryBoard(AllBlocks.GANTRY_CARRIAGE, "gantry/intro", GantryScenes::introForPinion, - PonderTag.KINETIC_APPLIANCES, PonderTag.MOVEMENT_ANCHOR); + CreatePonderTag.KINETIC_APPLIANCES, CreatePonderTag.MOVEMENT_ANCHOR); HELPER.forComponents(AllBlocks.GANTRY_SHAFT, AllBlocks.GANTRY_CARRIAGE) .addStoryBoard("gantry/redstone", GantryScenes::redstone) .addStoryBoard("gantry/direction", GantryScenes::direction) @@ -220,31 +246,31 @@ public class PonderIndex { // Cart Assembler HELPER.forComponents(AllBlocks.CART_ASSEMBLER) - .addStoryBoard("cart_assembler/anchor", CartAssemblerScenes::anchor, PonderTag.MOVEMENT_ANCHOR) + .addStoryBoard("cart_assembler/anchor", CartAssemblerScenes::anchor, CreatePonderTag.MOVEMENT_ANCHOR) .addStoryBoard("cart_assembler/modes", CartAssemblerScenes::modes) .addStoryBoard("cart_assembler/dual", CartAssemblerScenes::dual) .addStoryBoard("cart_assembler/rails", CartAssemblerScenes::rails); // Movement Actors HELPER.forComponents(AllBlocks.PORTABLE_STORAGE_INTERFACE) - .addStoryBoard("portable_interface/transfer", MovementActorScenes::psiTransfer, PonderTag.CONTRAPTION_ACTOR) + .addStoryBoard("portable_interface/transfer", MovementActorScenes::psiTransfer, CreatePonderTag.CONTRAPTION_ACTOR) .addStoryBoard("portable_interface/redstone", MovementActorScenes::psiRedstone); HELPER.forComponents(AllBlocks.REDSTONE_CONTACT) .addStoryBoard("redstone_contact", RedstoneScenes::contact); HELPER.forComponents(AllBlocks.MECHANICAL_SAW) - .addStoryBoard("mechanical_saw/processing", MechanicalSawScenes::processing, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("mechanical_saw/processing", MechanicalSawScenes::processing, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_saw/breaker", MechanicalSawScenes::treeCutting) - .addStoryBoard("mechanical_saw/contraption", MechanicalSawScenes::contraption, PonderTag.CONTRAPTION_ACTOR); + .addStoryBoard("mechanical_saw/contraption", MechanicalSawScenes::contraption, CreatePonderTag.CONTRAPTION_ACTOR); HELPER.forComponents(AllBlocks.MECHANICAL_DRILL) - .addStoryBoard("mechanical_drill/breaker", MechanicalDrillScenes::breaker, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("mechanical_drill/breaker", MechanicalDrillScenes::breaker, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_drill/contraption", MechanicalDrillScenes::contraption, - PonderTag.CONTRAPTION_ACTOR); + CreatePonderTag.CONTRAPTION_ACTOR); HELPER.forComponents(AllBlocks.DEPLOYER) - .addStoryBoard("deployer/filter", DeployerScenes::filter, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("deployer/filter", DeployerScenes::filter, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("deployer/modes", DeployerScenes::modes) .addStoryBoard("deployer/processing", DeployerScenes::processing) .addStoryBoard("deployer/redstone", DeployerScenes::redstone) - .addStoryBoard("deployer/contraption", DeployerScenes::contraption, PonderTag.CONTRAPTION_ACTOR); + .addStoryBoard("deployer/contraption", DeployerScenes::contraption, CreatePonderTag.CONTRAPTION_ACTOR); HELPER.forComponents(AllBlocks.MECHANICAL_HARVESTER) .addStoryBoard("harvester", MovementActorScenes::harvester); HELPER.forComponents(AllBlocks.MECHANICAL_PLOUGH) @@ -252,36 +278,36 @@ public class PonderIndex { // Fluids HELPER.forComponents(AllBlocks.FLUID_PIPE) - .addStoryBoard("fluid_pipe/flow", PipeScenes::flow, PonderTag.FLUIDS) + .addStoryBoard("fluid_pipe/flow", PipeScenes::flow, CreatePonderTag.FLUIDS) .addStoryBoard("fluid_pipe/interaction", PipeScenes::interaction) .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); HELPER.forComponents(AllBlocks.COPPER_CASING) .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); HELPER.forComponents(AllBlocks.MECHANICAL_PUMP) - .addStoryBoard("mechanical_pump/flow", PumpScenes::flow, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("mechanical_pump/flow", PumpScenes::flow, CreatePonderTag.FLUIDS, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("mechanical_pump/speed", PumpScenes::speed); HELPER.forComponents(AllBlocks.FLUID_VALVE) - .addStoryBoard("fluid_valve", PipeScenes::valve, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES); + .addStoryBoard("fluid_valve", PipeScenes::valve, CreatePonderTag.FLUIDS, CreatePonderTag.KINETIC_APPLIANCES); HELPER.forComponents(AllBlocks.SMART_FLUID_PIPE) - .addStoryBoard("smart_pipe", PipeScenes::smart, PonderTag.FLUIDS); + .addStoryBoard("smart_pipe", PipeScenes::smart, CreatePonderTag.FLUIDS); HELPER.forComponents(AllBlocks.FLUID_TANK) - .addStoryBoard("fluid_tank/storage", FluidTankScenes::storage, PonderTag.FLUIDS) + .addStoryBoard("fluid_tank/storage", FluidTankScenes::storage, CreatePonderTag.FLUIDS) .addStoryBoard("fluid_tank/sizes", FluidTankScenes::sizes); HELPER.forComponents(AllBlocks.CREATIVE_FLUID_TANK) - .addStoryBoard("fluid_tank/storage_creative", FluidTankScenes::creative, PonderTag.FLUIDS, - PonderTag.CREATIVE) + .addStoryBoard("fluid_tank/storage_creative", FluidTankScenes::creative, CreatePonderTag.FLUIDS, + CreatePonderTag.CREATIVE) .addStoryBoard("fluid_tank/sizes_creative", FluidTankScenes::sizes); HELPER.forComponents(AllBlocks.HOSE_PULLEY) - .addStoryBoard("hose_pulley/intro", HosePulleyScenes::intro, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES) + .addStoryBoard("hose_pulley/intro", HosePulleyScenes::intro, CreatePonderTag.FLUIDS, CreatePonderTag.KINETIC_APPLIANCES) .addStoryBoard("hose_pulley/level", HosePulleyScenes::level) .addStoryBoard("hose_pulley/infinite", HosePulleyScenes::infinite); HELPER.forComponents(AllBlocks.SPOUT) - .addStoryBoard("spout", SpoutScenes::filling, PonderTag.FLUIDS); + .addStoryBoard("spout", SpoutScenes::filling, CreatePonderTag.FLUIDS); HELPER.forComponents(AllBlocks.ITEM_DRAIN) - .addStoryBoard("item_drain", DrainScenes::emptying, PonderTag.FLUIDS); + .addStoryBoard("item_drain", DrainScenes::emptying, CreatePonderTag.FLUIDS); HELPER.forComponents(AllBlocks.PORTABLE_FLUID_INTERFACE) - .addStoryBoard("portable_interface/transfer_fluid", FluidMovementActorScenes::transfer, PonderTag.FLUIDS, - PonderTag.CONTRAPTION_ACTOR) + .addStoryBoard("portable_interface/transfer_fluid", FluidMovementActorScenes::transfer, CreatePonderTag.FLUIDS, + CreatePonderTag.CONTRAPTION_ACTOR) .addStoryBoard("portable_interface/redstone_fluid", MovementActorScenes::psiRedstone); // Redstone @@ -343,15 +369,11 @@ public class PonderIndex { if (REGISTER_DEBUG_SCENES) DebugScenes.registerAll(); } - - public static boolean editingModeActive() { - return AllConfigs.CLIENT.editingMode.get(); - } - public static void registerTags() { // Add items to tags here - PonderRegistry.TAGS.forTag(PonderTag.KINETIC_RELAYS) + //PonderRegistry.TAGS.forTag(PonderTag.KINETIC_RELAYS) + HELPER.addToTag(CreatePonderTag.KINETIC_RELAYS) .add(AllBlocks.SHAFT) .add(AllBlocks.COGWHEEL) .add(AllBlocks.LARGE_COGWHEEL) @@ -364,7 +386,7 @@ public class PonderIndex { .add(AllBlocks.SEQUENCED_GEARSHIFT) .add(AllBlocks.ROTATION_SPEED_CONTROLLER); - PonderRegistry.TAGS.forTag(PonderTag.KINETIC_SOURCES) + HELPER.addToTag(CreatePonderTag.KINETIC_SOURCES) .add(AllBlocks.HAND_CRANK) .add(AllBlocks.COPPER_VALVE_HANDLE) .add(AllBlocks.WATER_WHEEL) @@ -372,7 +394,7 @@ public class PonderIndex { .add(AllBlocks.STEAM_ENGINE) .add(AllBlocks.CREATIVE_MOTOR); - PonderRegistry.TAGS.forTag(PonderTag.TRAIN_RELATED) + HELPER.addToTag(CreatePonderTag.TRAIN_RELATED) .add(AllBlocks.TRACK) .add(AllBlocks.TRACK_STATION) .add(AllBlocks.TRACK_SIGNAL) @@ -383,7 +405,7 @@ public class PonderIndex { .add(AllBlocks.TRAIN_TRAPDOOR) .add(AllBlocks.RAILWAY_CASING); - PonderRegistry.TAGS.forTag(PonderTag.KINETIC_APPLIANCES) + HELPER.addToTag(CreatePonderTag.KINETIC_APPLIANCES) .add(AllBlocks.MILLSTONE) .add(AllBlocks.TURNTABLE) .add(AllBlocks.ENCASED_FAN) @@ -405,7 +427,7 @@ public class PonderIndex { .add(AllBlocks.DISPLAY_BOARD) .add(AllBlocks.CRUSHING_WHEEL); - PonderRegistry.TAGS.forTag(PonderTag.FLUIDS) + HELPER.addToTag(CreatePonderTag.FLUIDS) .add(AllBlocks.FLUID_PIPE) .add(AllBlocks.MECHANICAL_PUMP) .add(AllBlocks.FLUID_VALVE) @@ -417,7 +439,7 @@ public class PonderIndex { .add(AllBlocks.FLUID_TANK) .add(AllBlocks.CREATIVE_FLUID_TANK); - PonderRegistry.TAGS.forTag(PonderTag.ARM_TARGETS) + HELPER.addToTag(CreatePonderTag.ARM_TARGETS) .add(AllBlocks.MECHANICAL_ARM) .add(AllItems.BELT_CONNECTOR) .add(AllBlocks.CHUTE) @@ -439,7 +461,7 @@ public class PonderIndex { .add(Blocks.SOUL_CAMPFIRE) .add(Blocks.RESPAWN_ANCHOR); - PonderRegistry.TAGS.forTag(PonderTag.LOGISTICS) + HELPER.addToTag(CreatePonderTag.LOGISTICS) .add(AllItems.BELT_CONNECTOR) .add(AllItems.FILTER) .add(AllItems.ATTRIBUTE_FILTER) @@ -458,7 +480,7 @@ public class PonderIndex { .add(AllBlocks.CREATIVE_CRATE) .add(AllBlocks.PORTABLE_STORAGE_INTERFACE); - PonderRegistry.TAGS.forTag(PonderTag.DECORATION) + HELPER.addToTag(CreatePonderTag.DECORATION) .add(AllBlocks.ORANGE_NIXIE_TUBE) .add(AllBlocks.DISPLAY_BOARD) .add(AllBlocks.CUCKOO_CLOCK) @@ -470,17 +492,17 @@ public class PonderIndex { .add(AllBlocks.COPPER_CASING) .add(AllBlocks.RAILWAY_CASING); - PonderRegistry.TAGS.forTag(PonderTag.CREATIVE) + HELPER.addToTag(CreatePonderTag.CREATIVE) .add(AllBlocks.CREATIVE_CRATE) .add(AllBlocks.CREATIVE_FLUID_TANK) .add(AllBlocks.CREATIVE_MOTOR); - PonderRegistry.TAGS.forTag(PonderTag.SAILS) + HELPER.addToTag(CreatePonderTag.SAILS) .add(AllBlocks.SAIL) .add(AllBlocks.SAIL_FRAME) .add(Blocks.WHITE_WOOL); - PonderRegistry.TAGS.forTag(PonderTag.REDSTONE) + HELPER.addToTag(CreatePonderTag.REDSTONE) .add(AllBlocks.ORANGE_NIXIE_TUBE) .add(AllBlocks.REDSTONE_CONTACT) .add(AllBlocks.ANALOG_LEVER) @@ -491,7 +513,7 @@ public class PonderIndex { .add(AllBlocks.POWERED_TOGGLE_LATCH) .add(AllBlocks.ROSE_QUARTZ_LAMP); - PonderRegistry.TAGS.forTag(PonderTag.MOVEMENT_ANCHOR) + HELPER.addToTag(CreatePonderTag.MOVEMENT_ANCHOR) .add(AllBlocks.MECHANICAL_PISTON) .add(AllBlocks.WINDMILL_BEARING) .add(AllBlocks.MECHANICAL_BEARING) @@ -501,7 +523,7 @@ public class PonderIndex { .add(AllBlocks.CART_ASSEMBLER) .add(AllBlocks.TRACK_STATION); - PonderRegistry.TAGS.forTag(PonderTag.CONTRAPTION_ASSEMBLY) + HELPER.addToTag(CreatePonderTag.CONTRAPTION_ASSEMBLY) .add(AllBlocks.LINEAR_CHASSIS) .add(AllBlocks.SECONDARY_LINEAR_CHASSIS) .add(AllBlocks.RADIAL_CHASSIS) @@ -510,7 +532,7 @@ public class PonderIndex { .add(Blocks.SLIME_BLOCK) .add(Blocks.HONEY_BLOCK); - PonderRegistry.TAGS.forTag(PonderTag.CONTRAPTION_ACTOR) + HELPER.addToTag(CreatePonderTag.CONTRAPTION_ACTOR) .add(AllBlocks.MECHANICAL_HARVESTER) .add(AllBlocks.MECHANICAL_PLOUGH) .add(AllBlocks.MECHANICAL_DRILL) @@ -528,7 +550,7 @@ public class PonderIndex { .add(Blocks.DISPENSER) .add(Blocks.DROPPER); - PonderRegistry.TAGS.forTag(PonderTag.DISPLAY_SOURCES) + HELPER.addToTag(CreatePonderTag.DISPLAY_SOURCES) .add(AllBlocks.SEATS.get(DyeColor.WHITE)) .add(AllBlocks.ORANGE_NIXIE_TUBE) .add(AllBlocks.STOCKPILE_SWITCH) @@ -548,7 +570,7 @@ public class PonderIndex { .add(Blocks.COMMAND_BLOCK) .add(Blocks.TARGET); - PonderRegistry.TAGS.forTag(PonderTag.DISPLAY_TARGETS) + HELPER.addToTag(CreatePonderTag.DISPLAY_TARGETS) .add(AllBlocks.ORANGE_NIXIE_TUBE) .add(AllBlocks.DISPLAY_BOARD) .add(AllBlocks.DISPLAY_LINK) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/CreatePonderTag.java b/src/main/java/com/simibubi/create/foundation/ponder/CreatePonderTag.java new file mode 100644 index 000000000..3d3503b6d --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/CreatePonderTag.java @@ -0,0 +1,93 @@ +package com.simibubi.create.foundation.ponder; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.Create; + +import net.createmod.ponder.foundation.PonderTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Blocks; + +public class CreatePonderTag extends PonderTag { + + public static final PonderTag KINETIC_RELAYS = create("kinetic_relays") + .item(AllBlocks.COGWHEEL.get(), true, false) + .defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere") + .addToIndex(); + + public static final PonderTag KINETIC_SOURCES = create("kinetic_sources") + .item(AllBlocks.WATER_WHEEL.get(), true, false) + .defaultLang("Kinetic Sources", "Components which generate Rotational Force") + .addToIndex(); + public static final PonderTag KINETIC_APPLIANCES = create("kinetic_appliances") + .item(AllBlocks.MECHANICAL_PRESS.get(), true, false) + .defaultLang("Kinetic Appliances", "Components which make use of Rotational Force") + .addToIndex(); + public static final PonderTag FLUIDS = create("fluids") + .item(AllBlocks.FLUID_PIPE.get(), true, false) + .defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids") + .addToIndex(); + public static final PonderTag LOGISTICS = create("logistics") + .item(Blocks.CHEST, true, false) + .defaultLang("Item Transportation", "Components which help moving items around") + .addToIndex(); + public static final PonderTag REDSTONE = create("redstone") + .item(Items.REDSTONE, true, false) + .defaultLang("Logic Components", "Components which help with redstone engineering") + .addToIndex(); + public static final PonderTag DECORATION = create("decoration") + .item(Items.ROSE_BUSH, true, false) + .defaultLang("Aesthetics", "Components used mostly for decorative purposes"); + public static final PonderTag CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false) + .defaultLang("Creative Mode", "Components not usually available for Survival Mode") + .addToIndex(); + public static final PonderTag MOVEMENT_ANCHOR = create("movement_anchor") + .item(AllBlocks.MECHANICAL_PISTON.get(), true, false) + .defaultLang("Movement Anchors", + "Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways") + .addToIndex(); + public static final PonderTag CONTRAPTION_ACTOR = create("contraption_actor") + .item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false) + .defaultLang("Contraption Actors", + "Components which expose special behaviour when attached to a moving contraption") + .addToIndex(); + public static final PonderTag CONTRAPTION_ASSEMBLY = create("contraption_assembly") + .item(AllItems.SUPER_GLUE.get(), true, false) + .defaultLang("Block Attachment Utility", + "Tools and Components used to assemble structures moved as an animated Contraption") + .addToIndex(); + public static final PonderTag SAILS = create("windmill_sails") + .item(AllBlocks.WINDMILL_BEARING.get()) + .defaultLang("Sails for Windmill Bearings", + "Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."); + public static final PonderTag ARM_TARGETS = create("arm_targets") + .item(AllBlocks.MECHANICAL_ARM.get()) + .defaultLang("Targets for Mechanical Arms", + "Components which can be selected as inputs or outputs to the Mechanical Arm"); + public static final PonderTag TRAIN_RELATED = create("train_related") + .item(AllBlocks.TRACK.get()) + .defaultLang("Railway Equipment", "Components used in the construction or management of Train Contraptions") + .addToIndex(); + public static final PonderTag DISPLAY_SOURCES = create("display_sources") + .item(AllBlocks.DISPLAY_LINK.get(), true, false) + .item(AllBlocks.DISPLAY_LINK.get(), false, true) + .defaultLang("Sources for Display Links", + "Components or Blocks which offer some data that can be read with a Display Link"); + public static final PonderTag DISPLAY_TARGETS = create("display_targets") + .item(AllBlocks.DISPLAY_LINK.get(), true, false) + .item(AllBlocks.DISPLAY_LINK.get(), false, true) + .defaultLang("Targets for Display Links", + "Components or Blocks which can process and display the data received from a Display Link"); + + public CreatePonderTag(ResourceLocation id) { + super(id); + } + + private static PonderTag create(String id) { + return create(Create.ID, id); + } + + // Make sure class is loaded; Lang registration happens with builder calls + public static void register() {} +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/CreateSceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/CreateSceneBuilder.java new file mode 100644 index 000000000..3279580e1 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/CreateSceneBuilder.java @@ -0,0 +1,341 @@ +package com.simibubi.create.foundation.ponder; + +import java.util.function.Supplier; +import java.util.function.UnaryOperator; + +import com.simibubi.create.content.contraptions.base.IRotate; +import com.simibubi.create.content.contraptions.base.KineticBlock; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.components.crafter.ConnectedInputHandler; +import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity; +import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; +import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.ControlsBlock; +import com.simibubi.create.content.contraptions.fluids.PumpTileEntity; +import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity; +import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; +import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity; +import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity; +import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; +import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; +import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; +import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity; +import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationTileEntity; +import com.simibubi.create.foundation.ponder.element.BeltItemElement; +import com.simibubi.create.foundation.ponder.element.ExpandedParrotElement; +import com.simibubi.create.foundation.ponder.instruction.AnimateTileEntityInstruction; +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; + +import net.createmod.catnip.utility.FunctionalHelper; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderScene; +import net.createmod.ponder.foundation.PonderWorld; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.CreateParrotInstruction; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.animal.Parrot; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; + +public class CreateSceneBuilder extends SceneBuilder { + + public final EffectInstructions effects; + public final WorldInstructions world; + public final SpecialInstructions special; + + public CreateSceneBuilder(SceneBuilder baseSceneBuilder) { + this(baseSceneBuilder.getScene()); + } + + private CreateSceneBuilder(PonderScene ponderScene) { + super(ponderScene); + effects = new EffectInstructions(); + world = new WorldInstructions(); + special = new SpecialInstructions(); + } + + public class EffectInstructions extends SceneBuilder.EffectInstructions { + + public void superGlue(BlockPos pos, Direction side, boolean fullBlock) { + addInstruction(scene -> SuperGlueItem.spawnParticles(scene.getWorld(), pos, side, fullBlock)); + } + + private void rotationIndicator(BlockPos pos, boolean direction) { + addInstruction(scene -> { + BlockState blockState = scene.getWorld() + .getBlockState(pos); + BlockEntity tileEntity = scene.getWorld() + .getBlockEntity(pos); + + if (!(blockState.getBlock() instanceof KineticBlock kineticBlock)) + return; + if (!(tileEntity instanceof KineticTileEntity kineticTile)) + return; + + Direction.Axis rotationAxis = kineticBlock.getRotationAxis(blockState); + + float speed = kineticTile.getTheoreticalSpeed(); + IRotate.SpeedLevel speedLevel = IRotate.SpeedLevel.of(speed); + int color = direction ? speed > 0 ? 0xeb5e0b : 0x1687a7 : speedLevel.getColor(); + int particleSpeed = speedLevel.getParticleSpeed(); + particleSpeed *= Math.signum(speed); + + Vec3 location = VecHelper.getCenterOf(pos); + RotationIndicatorParticleData particleData = new RotationIndicatorParticleData(color, particleSpeed, + kineticBlock.getParticleInitialRadius(), kineticBlock.getParticleTargetRadius(), 20, rotationAxis.name() + .charAt(0)); + + for (int i = 0; i < 20; i++) + scene.getWorld() + .addParticle(particleData, location.x, location.y, location.z, 0, 0, 0); + }); + } + + public void rotationSpeedIndicator(BlockPos pos) { + rotationIndicator(pos, false); + } + + public void rotationDirectionIndicator(BlockPos pos) { + rotationIndicator(pos, true); + } + + + } + + public class WorldInstructions extends SceneBuilder.WorldInstructions { + + public void rotateBearing(BlockPos pos, float angle, int duration) { + addInstruction(AnimateTileEntityInstruction.bearing(pos, angle, duration)); + } + + public void movePulley(BlockPos pos, float distance, int duration) { + addInstruction(AnimateTileEntityInstruction.pulley(pos, distance, duration)); + } + + public void animateBogey(BlockPos pos, float distance, int duration) { + addInstruction(AnimateTileEntityInstruction.bogey(pos, distance, duration + 1)); + } + + public void moveDeployer(BlockPos pos, float distance, int duration) { + addInstruction(AnimateTileEntityInstruction.deployer(pos, distance, duration)); + } + + public void createItemOnBeltLike(BlockPos location, Direction insertionSide, ItemStack stack) { + addInstruction(scene -> { + PonderWorld world = scene.getWorld(); + BlockEntity tileEntity = world.getBlockEntity(location); + if (!(tileEntity instanceof SmartTileEntity beltTileEntity)) + return; + DirectBeltInputBehaviour behaviour = beltTileEntity.getBehaviour(DirectBeltInputBehaviour.TYPE); + if (behaviour == null) + return; + behaviour.handleInsertion(stack, insertionSide.getOpposite(), false); + }); + flapFunnel(location.above(), true); + } + + public ElementLink createItemOnBelt(BlockPos beltLocation, Direction insertionSide, + ItemStack stack) { + ElementLink link = new ElementLink<>(BeltItemElement.class); + addInstruction(scene -> { + PonderWorld world = scene.getWorld(); + BlockEntity tileEntity = world.getBlockEntity(beltLocation); + if (!(tileEntity instanceof BeltTileEntity beltTileEntity)) + return; + + DirectBeltInputBehaviour behaviour = beltTileEntity.getBehaviour(DirectBeltInputBehaviour.TYPE); + behaviour.handleInsertion(stack, insertionSide.getOpposite(), false); + + BeltTileEntity controllerTE = beltTileEntity.getControllerTE(); + if (controllerTE != null) + controllerTE.tick(); + + TransportedItemStackHandlerBehaviour transporter = + beltTileEntity.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE); + transporter.handleProcessingOnAllItems(tis -> { + BeltItemElement tracker = new BeltItemElement(tis); + scene.addElement(tracker); + scene.linkElement(tracker, link); + return TransportedItemStackHandlerBehaviour.TransportedResult.doNothing(); + }); + }); + flapFunnel(beltLocation.above(), true); + return link; + } + + public void removeItemsFromBelt(BlockPos beltLocation) { + addInstruction(scene -> { + PonderWorld world = scene.getWorld(); + BlockEntity tileEntity = world.getBlockEntity(beltLocation); + if (!(tileEntity instanceof SmartTileEntity beltTileEntity)) + return; + TransportedItemStackHandlerBehaviour transporter = + beltTileEntity.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE); + if (transporter == null) + return; + transporter.handleCenteredProcessingOnAllItems(.52f, tis -> TransportedItemStackHandlerBehaviour.TransportedResult.removeItem()); + }); + } + + public void stallBeltItem(ElementLink link, boolean stalled) { + addInstruction(scene -> { + BeltItemElement resolve = scene.resolve(link); + if (resolve != null) + resolve.ifPresent(tis -> tis.locked = stalled); + }); + } + + public void changeBeltItemTo(ElementLink link, ItemStack newStack) { + addInstruction(scene -> { + BeltItemElement resolve = scene.resolve(link); + if (resolve != null) + resolve.ifPresent(tis -> tis.stack = newStack); + }); + } + + public void setKineticSpeed(Selection selection, float speed) { + modifyKineticSpeed(selection, f -> speed); + } + + public void multiplyKineticSpeed(Selection selection, float modifier) { + modifyKineticSpeed(selection, f -> f * modifier); + } + + public void modifyKineticSpeed(Selection selection, UnaryOperator speedFunc) { + modifyTileNBT(selection, SpeedGaugeTileEntity.class, nbt -> { + float newSpeed = speedFunc.apply(nbt.getFloat("Speed")); + nbt.putFloat("Value", SpeedGaugeTileEntity.getDialTarget(newSpeed)); + }); + modifyTileNBT(selection, KineticTileEntity.class, nbt -> { + nbt.putFloat("Speed", speedFunc.apply(nbt.getFloat("Speed"))); + }); + } + + public void propagatePipeChange(BlockPos pos) { + modifyTileEntity(pos, PumpTileEntity.class, te -> te.onSpeedChanged(0)); + } + + public void setFilterData(Selection selection, Class teType, ItemStack filter) { + modifyTileNBT(selection, teType, nbt -> { + nbt.put("Filter", filter.serializeNBT()); + }); + } + + public void instructArm(BlockPos armLocation, ArmTileEntity.Phase phase, ItemStack heldItem, + int targetedPoint) { + modifyTileNBT(getScene().getSceneBuildingUtil().select.position(armLocation), ArmTileEntity.class, compound -> { + NBTHelper.writeEnum(compound, "Phase", phase); + compound.put("HeldItem", heldItem.serializeNBT()); + compound.putInt("TargetPointIndex", targetedPoint); + compound.putFloat("MovementProgress", 0); + }); + } + + public void flapFunnel(BlockPos position, boolean outward) { + modifyTileEntity(position, FunnelTileEntity.class, funnel -> funnel.flap(!outward)); + } + + public void setCraftingResult(BlockPos crafter, ItemStack output) { + modifyTileEntity(crafter, MechanicalCrafterTileEntity.class, mct -> mct.setScriptedResult(output)); + } + + public void connectCrafterInvs(BlockPos position1, BlockPos position2) { + addInstruction(s -> { + ConnectedInputHandler.toggleConnection(s.getWorld(), position1, position2); + s.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); + }); + } + + public void toggleControls(BlockPos position) { + cycleBlockProperty(position, ControlsBlock.VIRTUAL); + } + + public void animateTrainStation(BlockPos position, boolean trainPresent) { + modifyTileNBT(getScene().getSceneBuildingUtil().select.position(position), StationTileEntity.class, + c -> c.putBoolean("ForceFlag", trainPresent)); + } + + public void conductorBlaze(BlockPos position, boolean conductor) { + modifyTileNBT(getScene().getSceneBuildingUtil().select.position(position), BlazeBurnerTileEntity.class, + c -> c.putBoolean("TrainHat", conductor)); + } + + public void changeSignalState(BlockPos position, SignalTileEntity.SignalState state) { + modifyTileNBT(getScene().getSceneBuildingUtil().select.position(position), SignalTileEntity.class, + c -> NBTHelper.writeEnum(c, "State", state)); + } + + public void setDisplayBoardText(BlockPos position, int line, Component text) { + modifyTileEntity(position, FlapDisplayTileEntity.class, + t -> t.applyTextManually(line, Component.Serializer.toJson(text))); + } + + public void dyeDisplayBoard(BlockPos position, int line, DyeColor color) { + modifyTileEntity(position, FlapDisplayTileEntity.class, t -> t.setColour(line, color)); + } + + public void flashDisplayLink(BlockPos position) { + modifyTileEntity(position, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2)); + } + + } + + public class SpecialInstructions extends SceneBuilder.SpecialInstructions { + + @Override + public ElementLink createBirb(Vec3 location, Supplier pose) { + ElementLink link = new ElementLink<>(ParrotElement.class); + ParrotElement parrot = ExpandedParrotElement.create(location, pose); + addInstruction(new CreateParrotInstruction(10, Direction.DOWN, parrot)); + addInstruction(scene -> scene.linkElement(parrot, link)); + return link; + } + + public ElementLink birbOnTurntable(BlockPos pos) { + return createBirb(VecHelper.getCenterOf(pos), () -> new ParrotSpinOnComponentPose(pos)); + } + + public ElementLink birbOnSpinnyShaft(BlockPos pos) { + return createBirb(VecHelper.getCenterOf(pos) + .add(0, 0.5, 0), () -> new ParrotSpinOnComponentPose(pos)); + } + + public void conductorBirb(ElementLink birb, boolean conductor) { + addInstruction(scene -> scene.resolveOptional(birb) + .map(FunctionalHelper.filterAndCast(ExpandedParrotElement.class)) + .ifPresent(expandedBirb -> expandedBirb.setConductor(conductor))); + } + + public static class ParrotSpinOnComponentPose extends ParrotElement.ParrotPose { + private final BlockPos componentPos; + + public ParrotSpinOnComponentPose(BlockPos componentPos) { + this.componentPos = componentPos; + } + + @Override + protected void tick(PonderScene scene, Parrot entity, Vec3 location) { + BlockEntity tileEntity = scene.getWorld() + .getBlockEntity(componentPos); + if (!(tileEntity instanceof KineticTileEntity)) + return; + float rpm = ((KineticTileEntity) tileEntity).getSpeed(); + entity.yRotO = entity.getYRot(); + entity.setYRot(entity.getYRot() + (rpm * .3f)); + } + } + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/CreateSharedPonderText.java b/src/main/java/com/simibubi/create/foundation/ponder/CreateSharedPonderText.java new file mode 100644 index 000000000..23798a84d --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/CreateSharedPonderText.java @@ -0,0 +1,26 @@ +package com.simibubi.create.foundation.ponder; + +import java.util.function.BiConsumer; + +import com.simibubi.create.Create; + +import net.createmod.ponder.foundation.content.SharedText; + +public class CreateSharedPonderText { + + public static void loadClass() { + SharedText.registerText(Create.ID, CreateSharedPonderText::createSharedText); + } + + private static void createSharedText(BiConsumer adder) { + adder.accept("rpm8", "8 RPM"); + adder.accept("rpm16", "16 RPM"); + adder.accept("rpm16_source", "Source: 16 RPM"); + adder.accept("rpm32", "32 RPM"); + + adder.accept("movement_anchors", "With the help of Super Glue, larger structures can be moved."); + adder.accept("behaviour_modify_wrench", "This behaviour can be modified using a Wrench"); + adder.accept("storage_on_contraption", "Inventories attached to the Contraption will pick up their drops automatically"); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ElementLink.java b/src/main/java/com/simibubi/create/foundation/ponder/ElementLink.java deleted file mode 100644 index 8484baf65..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ElementLink.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.UUID; - -import com.simibubi.create.foundation.ponder.element.PonderElement; - -public class ElementLink { - - private Class elementClass; - private UUID id; - - public ElementLink(Class elementClass) { - this(elementClass, UUID.randomUUID()); - } - - public ElementLink(Class elementClass, UUID id) { - this.elementClass = elementClass; - this.id = id; - } - - public UUID getId() { - return id; - } - - public T cast(PonderElement e) { - return elementClass.cast(e); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderChapter.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderChapter.java deleted file mode 100644 index d09c382b4..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderChapter.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.element.ScreenElement; - -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.resources.ResourceLocation; - -public class PonderChapter implements ScreenElement { - - private final ResourceLocation id; - private final ResourceLocation icon; - - private PonderChapter(ResourceLocation id) { - this.id = id; - icon = new ResourceLocation(id.getNamespace(), "textures/ponder/chapter/" + id.getPath() + ".png"); - } - - public ResourceLocation getId() { - return id; - } - - public String getTitle() { - return PonderLocalization.getChapter(id); - } - - public PonderChapter addTagsToChapter(PonderTag... tags) { - for (PonderTag t : tags) - PonderRegistry.TAGS.add(t, this); - return this; - } - - @Override - public void render(PoseStack ms, int x, int y) { - ms.pushPose(); - RenderSystem.setShaderTexture(0, icon); - ms.scale(0.25f, 0.25f, 1); - //x and y offset, blit z offset, tex x and y, tex width and height, entire tex sheet width and height - GuiComponent.blit(ms, x, y, 0, 0, 0, 64, 64, 64, 64); - ms.popPose(); - } - - @Nonnull - public static PonderChapter of(ResourceLocation id) { - PonderChapter chapter = PonderRegistry.CHAPTERS.getChapter(id); - if (chapter == null) { - chapter = PonderRegistry.CHAPTERS.addChapter(new PonderChapter(id)); - } - - return chapter; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderChapterRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderChapterRegistry.java deleted file mode 100644 index 6fb60ad9a..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderChapterRegistry.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -import com.simibubi.create.foundation.utility.Pair; - -import net.minecraft.resources.ResourceLocation; - -public class PonderChapterRegistry { - - private final Map>> chapters; - - public PonderChapterRegistry() { - chapters = new HashMap<>(); - } - - PonderChapter addChapter(@Nonnull PonderChapter chapter) { - synchronized (chapters) { - chapters.put(chapter.getId(), Pair.of(chapter, new ArrayList<>())); - } - return chapter; - } - - @Nullable - PonderChapter getChapter(ResourceLocation id) { - Pair> pair = chapters.get(id); - if (pair == null) - return null; - - return pair.getFirst(); - } - - public void addStoriesToChapter(@Nonnull PonderChapter chapter, PonderStoryBoardEntry... entries) { - List entryList = chapters.get(chapter.getId()).getSecond(); - synchronized (entryList) { - Collections.addAll(entryList, entries); - } - } - - public List getAllChapters() { - return chapters - .values() - .stream() - .map(Pair::getFirst) - .collect(Collectors.toList()); - } - - public List getStories(PonderChapter chapter) { - return chapters.get(chapter.getId()).getSecond(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java deleted file mode 100644 index 51b931397..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderLocalization.java +++ /dev/null @@ -1,203 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.HashMap; -import java.util.Map; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.content.SharedText; -import com.simibubi.create.foundation.ponder.ui.PonderTagIndexScreen; -import com.simibubi.create.foundation.ponder.ui.PonderTagScreen; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.Couple; -import com.tterrag.registrate.AbstractRegistrate; - -import net.minecraft.client.resources.language.I18n; -import net.minecraft.resources.ResourceLocation; - -public class PonderLocalization { - - static final Map SHARED = new HashMap<>(); - static final Map> TAG = new HashMap<>(); - static final Map CHAPTER = new HashMap<>(); - static final Map> SPECIFIC = new HashMap<>(); - - // - - public static void registerShared(ResourceLocation key, String enUS) { - SHARED.put(key, enUS); - } - - public static void registerTag(ResourceLocation key, String enUS, String description) { - TAG.put(key, Couple.create(enUS, description)); - } - - public static void registerChapter(ResourceLocation key, String enUS) { - CHAPTER.put(key, enUS); - } - - public static void registerSpecific(ResourceLocation sceneId, String key, String enUS) { - SPECIFIC.computeIfAbsent(sceneId, $ -> new HashMap<>()) - .put(key, enUS); - } - - // - - public static String getShared(ResourceLocation key) { - if (PonderIndex.editingModeActive()) - return SHARED.containsKey(key) ? SHARED.get(key) : ("unregistered shared entry: " + key); - return I18n.get(langKeyForShared(key)); - } - - public static String getTag(ResourceLocation key) { - if (PonderIndex.editingModeActive()) - return TAG.containsKey(key) ? TAG.get(key) - .getFirst() : ("unregistered tag entry: " + key); - return I18n.get(langKeyForTag(key)); - } - - public static String getTagDescription(ResourceLocation key) { - if (PonderIndex.editingModeActive()) - return TAG.containsKey(key) ? TAG.get(key) - .getSecond() : ("unregistered tag entry: " + key); - return I18n.get(langKeyForTagDescription(key)); - } - - public static String getChapter(ResourceLocation key) { - if (PonderIndex.editingModeActive()) - return CHAPTER.containsKey(key) ? CHAPTER.get(key) : ("unregistered chapter entry: " + key); - return I18n.get(langKeyForChapter(key)); - } - - public static String getSpecific(ResourceLocation sceneId, String k) { - if (PonderIndex.editingModeActive()) - return SPECIFIC.get(sceneId) - .get(k); - return I18n.get(langKeyForSpecific(sceneId, k)); - } - - // - - public static final String LANG_PREFIX = "ponder."; - - public static void record(String namespace, JsonObject object) { - SHARED.forEach((k, v) -> { - if (k.getNamespace().equals(namespace)) { - object.addProperty(langKeyForShared(k), v); - } - }); - - TAG.forEach((k, v) -> { - if (k.getNamespace().equals(namespace)) { - object.addProperty(langKeyForTag(k), v.getFirst()); - object.addProperty(langKeyForTagDescription(k), v.getSecond()); - } - }); - - CHAPTER.forEach((k, v) -> { - if (k.getNamespace().equals(namespace)) { - object.addProperty(langKeyForChapter(k), v); - } - }); - - SPECIFIC.entrySet() - .stream() - .filter(entry -> entry.getKey().getNamespace().equals(namespace)) - .sorted(Map.Entry.comparingByKey()) - .forEach(entry -> { - entry.getValue() - .entrySet() - .stream() - .sorted(Map.Entry.comparingByKey()) - .forEach(subEntry -> object.addProperty( - langKeyForSpecific(entry.getKey(), subEntry.getKey()), subEntry.getValue())); - }); - } - - private static void recordGeneral(JsonObject object) { - addGeneral(object, PonderTooltipHandler.HOLD_TO_PONDER, "Hold [%1$s] to Ponder"); - addGeneral(object, PonderTooltipHandler.SUBJECT, "Subject of this scene"); - addGeneral(object, PonderUI.PONDERING, "Pondering about..."); - addGeneral(object, PonderUI.IDENTIFY_MODE, "Identify mode active.\nUnpause with [%1$s]"); - addGeneral(object, PonderTagScreen.ASSOCIATED, "Associated Entries"); - - addGeneral(object, PonderUI.CLOSE, "Close"); - addGeneral(object, PonderUI.IDENTIFY, "Identify"); - addGeneral(object, PonderUI.NEXT, "Next Scene"); - addGeneral(object, PonderUI.NEXT_UP, "Up Next:"); - addGeneral(object, PonderUI.PREVIOUS, "Previous Scene"); - addGeneral(object, PonderUI.REPLAY, "Replay"); - addGeneral(object, PonderUI.THINK_BACK, "Think Back"); - addGeneral(object, PonderUI.SLOW_TEXT, "Comfy Reading"); - - addGeneral(object, PonderTagIndexScreen.EXIT, "Exit"); - addGeneral(object, PonderTagIndexScreen.WELCOME, "Welcome to Ponder"); - addGeneral(object, PonderTagIndexScreen.CATEGORIES, "Available Categories in Create"); - addGeneral(object, PonderTagIndexScreen.DESCRIPTION, - "Click one of the icons to learn about its associated Items and Blocks"); - addGeneral(object, PonderTagIndexScreen.TITLE, "Ponder Index"); - } - - private static void addGeneral(JsonObject json, String key, String enUS) { - json.addProperty(Create.ID + "." + key, enUS); - } - - public static void generateSceneLang() { - PonderRegistry.ALL.forEach((id, list) -> { - for (int i = 0; i < list.size(); i++) - PonderRegistry.compileScene(i, list.get(i), null); - }); - } - - /** - * Internal use only. - */ - public static JsonObject provideLangEntries() { - SharedText.gatherText(); - PonderTag.register(); - PonderIndex.register(); - - generateSceneLang(); - - JsonObject object = new JsonObject(); - recordGeneral(object); - record(Create.ID, object); - return object; - } - - public static void provideRegistrateLang(AbstractRegistrate registrate) { - generateSceneLang(); - - JsonObject object = new JsonObject(); - record(registrate.getModid(), object); - - for (Map.Entry entry : object.entrySet()) { - registrate.addRawLang(entry.getKey(), entry.getValue().getAsString()); - } - } - - // - - protected static String langKeyForShared(ResourceLocation k) { - return k.getNamespace() + "." + LANG_PREFIX + "shared." + k.getPath(); - } - - protected static String langKeyForTag(ResourceLocation k) { - return k.getNamespace() + "." + LANG_PREFIX + "tag." + k.getPath(); - } - - protected static String langKeyForTagDescription(ResourceLocation k) { - return k.getNamespace() + "." + LANG_PREFIX + "tag." + k.getPath() + ".description"; - } - - protected static String langKeyForChapter(ResourceLocation k) { - return k.getNamespace() + "." + LANG_PREFIX + "chapter." + k.getPath(); - } - - protected static String langKeyForSpecific(ResourceLocation sceneId, String k) { - return sceneId.getNamespace() + "." + LANG_PREFIX + sceneId.getPath() + "." + k; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderPalette.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderPalette.java deleted file mode 100644 index cf79d4ba0..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderPalette.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import com.simibubi.create.foundation.utility.Color; - -public enum PonderPalette { - - WHITE(0xFF_eeeeee), - BLACK(0xFF_221111), - - RED(0xFF_ff5d6c), - GREEN(0xFF_8cba51), - BLUE(0xFF_5f6caf), - - SLOW(0xFF_22ff22), - MEDIUM(0xFF_0084ff), - FAST(0xFF_ff55ff), - - INPUT(0xFF_7FCDE0), - OUTPUT(0xFF_DDC166), - - ; - - private final Color color; - - PonderPalette(int color) { - this.color = new Color(color); - } - - public int getColor() { - return color.getRGB(); - } - - public Color getColorObject() { - return color; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java deleted file mode 100644 index d17711d57..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistrationHelper.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.Arrays; -import java.util.function.Consumer; - -import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard; -import com.tterrag.registrate.util.entry.ItemProviderEntry; - -import net.minecraft.resources.ResourceLocation; - -public class PonderRegistrationHelper { - - protected String namespace; - - public PonderRegistrationHelper(String namespace) { - this.namespace = namespace; - } - - public PonderStoryBoardEntry addStoryBoard(ResourceLocation component, - ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { - PonderStoryBoardEntry entry = this.createStoryBoardEntry(storyBoard, schematicLocation, component); - entry.highlightTags(tags); - PonderRegistry.addStoryBoard(entry); - return entry; - } - - public PonderStoryBoardEntry addStoryBoard(ResourceLocation component, - String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(component, asLocation(schematicPath), storyBoard, tags); - } - - public PonderStoryBoardEntry addStoryBoard(ItemProviderEntry component, - ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(component.getId(), schematicLocation, storyBoard, tags); - } - - public PonderStoryBoardEntry addStoryBoard(ItemProviderEntry component, - String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(component, asLocation(schematicPath), storyBoard, tags); - } - - public MultiSceneBuilder forComponents(ItemProviderEntry... components) { - return new MultiSceneBuilder(Arrays.asList(components)); - } - - public MultiSceneBuilder forComponents(Iterable> components) { - return new MultiSceneBuilder(components); - } - - public PonderStoryBoardEntry createStoryBoardEntry(PonderStoryBoard storyBoard, ResourceLocation schematicLocation, ResourceLocation component) { - return new PonderStoryBoardEntry(storyBoard, namespace, schematicLocation, component); - } - - public PonderStoryBoardEntry createStoryBoardEntry(PonderStoryBoard storyBoard, String schematicPath, ResourceLocation component) { - return createStoryBoardEntry(storyBoard, asLocation(schematicPath), component); - } - - public PonderTag createTag(String name) { - return new PonderTag(asLocation(name)); - } - - public PonderChapter getOrCreateChapter(String name) { - return PonderChapter.of(asLocation(name)); - } - - public ResourceLocation asLocation(String path) { - return new ResourceLocation(namespace, path); - } - - public class MultiSceneBuilder { - - protected Iterable> components; - - protected MultiSceneBuilder(Iterable> components) { - this.components = components; - } - - public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard) { - return addStoryBoard(schematicLocation, storyBoard, $ -> { - }); - } - - public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(schematicLocation, storyBoard, sb -> sb.highlightTags(tags)); - } - - public MultiSceneBuilder addStoryBoard(ResourceLocation schematicLocation, PonderStoryBoard storyBoard, - Consumer extras) { - components.forEach(c -> extras.accept(PonderRegistrationHelper.this.addStoryBoard(c, schematicLocation, storyBoard))); - return this; - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard) { - return addStoryBoard(asLocation(schematicPath), storyBoard); - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, PonderTag... tags) { - return addStoryBoard(asLocation(schematicPath), storyBoard, tags); - } - - public MultiSceneBuilder addStoryBoard(String schematicPath, PonderStoryBoard storyBoard, - Consumer extras) { - return addStoryBoard(asLocation(schematicPath), storyBoard, extras); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java deleted file mode 100644 index 0bf8893c2..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.io.BufferedInputStream; -import java.io.DataInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.zip.GZIPInputStream; - -import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.content.SharedText; - -import net.minecraft.client.Minecraft; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtAccounter; -import net.minecraft.nbt.NbtIo; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.Resource; -import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; -import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; - -public class PonderRegistry { - - public static final PonderTagRegistry TAGS = new PonderTagRegistry(); - public static final PonderChapterRegistry CHAPTERS = new PonderChapterRegistry(); - // Map from item IDs to storyboard entries - public static final Map> ALL = new HashMap<>(); - - public static void addStoryBoard(PonderStoryBoardEntry entry) { - synchronized (ALL) { - List list = ALL.computeIfAbsent(entry.getComponent(), $ -> new ArrayList<>()); - synchronized (list) { - list.add(entry); - } - } - } - - public static List compile(ResourceLocation id) { - List list = ALL.get(id); - if (list == null) { - return Collections.emptyList(); - } - return compile(list); - } - - public static List compile(PonderChapter chapter) { - List list = CHAPTERS.getStories(chapter); - if (list == null) { - return Collections.emptyList(); - } - return compile(list); - } - - public static List compile(List entries) { - if (PonderIndex.editingModeActive()) { - PonderLocalization.SHARED.clear(); - SharedText.gatherText(); - } - - List scenes = new ArrayList<>(); - - for (int i = 0; i < entries.size(); i++) { - PonderStoryBoardEntry sb = entries.get(i); - StructureTemplate activeTemplate = loadSchematic(sb.getSchematicLocation()); - PonderWorld world = new PonderWorld(BlockPos.ZERO, Minecraft.getInstance().level); - activeTemplate.placeInWorld(world, BlockPos.ZERO, BlockPos.ZERO, new StructurePlaceSettings(), world.random, Block.UPDATE_CLIENTS); - world.createBackup(); - PonderScene scene = compileScene(i, sb, world); - scene.begin(); - scenes.add(scene); - } - - return scenes; - } - - public static PonderScene compileScene(int i, PonderStoryBoardEntry sb, PonderWorld world) { - PonderScene scene = new PonderScene(world, sb.getNamespace(), sb.getComponent(), sb.getTags()); - SceneBuilder builder = scene.builder(); - sb.getBoard() - .program(builder, scene.getSceneBuildingUtil()); - return scene; - } - - public static StructureTemplate loadSchematic(ResourceLocation location) { - return loadSchematic(Minecraft.getInstance().getResourceManager(), location); - } - - public static StructureTemplate loadSchematic(ResourceManager resourceManager, ResourceLocation location) { - String namespace = location.getNamespace(); - String path = "ponder/" + location.getPath() + ".nbt"; - ResourceLocation location1 = new ResourceLocation(namespace, path); - - try (Resource resource = resourceManager.getResource(location1)) { - return loadSchematic(resource.getInputStream()); - } catch (FileNotFoundException e) { - Create.LOGGER.error("Ponder schematic missing: " + location1, e); - } catch (IOException e) { - Create.LOGGER.error("Failed to read ponder schematic: " + location1, e); - } - return new StructureTemplate(); - } - - public static StructureTemplate loadSchematic(InputStream resourceStream) throws IOException { - StructureTemplate t = new StructureTemplate(); - DataInputStream stream = - new DataInputStream(new BufferedInputStream(new GZIPInputStream(resourceStream))); - CompoundTag nbt = NbtIo.read(stream, new NbtAccounter(0x20000000L)); - t.load(nbt); - return t; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java deleted file mode 100644 index 061b59b5d..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java +++ /dev/null @@ -1,589 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; - -import javax.annotation.Nullable; - -import org.apache.commons.lang3.mutable.MutableDouble; -import org.apache.commons.lang3.mutable.MutableObject; - -import com.jozufozu.flywheel.util.DiffuseLightCalculator; -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Matrix4f; -import com.mojang.math.Vector4f; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.element.PonderElement; -import com.simibubi.create.foundation.ponder.element.PonderOverlayElement; -import com.simibubi.create.foundation.ponder.element.PonderSceneElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.HideAllInstruction; -import com.simibubi.create.foundation.ponder.instruction.PonderInstruction; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.render.ForcedDiffuseState; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.outliner.Outliner; - -import it.unimi.dsi.fastutil.ints.IntArrayList; -import it.unimi.dsi.fastutil.ints.IntList; -import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Vec3i; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.decoration.ArmorStand; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec2; -import net.minecraft.world.phys.Vec3; - -public class PonderScene { - - public static final String TITLE_KEY = "header"; - - private boolean finished; -// private int sceneIndex; - private int textIndex; - ResourceLocation sceneId; - - private IntList keyframeTimes; - - List schedule; - private List activeSchedule; - private Map linkedElements; - private Set elements; - private List tags; - - private PonderWorld world; - private String namespace; - private ResourceLocation component; - private SceneTransform transform; - private SceneCamera camera; - private Outliner outliner; -// private String defaultTitle; - - private Vec3 pointOfInterest; - private Vec3 chasingPointOfInterest; - private WorldSectionElement baseWorldSection; - @Nullable - private Entity renderViewEntity; - - int basePlateOffsetX; - int basePlateOffsetZ; - int basePlateSize; - float scaleFactor; - float yOffset; - - private boolean stoppedCounting; - private int totalTime; - private int currentTime; - - public PonderScene(PonderWorld world, String namespace, ResourceLocation component, Collection tags) { - if (world != null) - world.scene = this; - - pointOfInterest = Vec3.ZERO; - textIndex = 1; - - this.world = world; - this.namespace = namespace; - this.component = component; - - outliner = new Outliner(); - elements = new HashSet<>(); - linkedElements = new HashMap<>(); - this.tags = new ArrayList<>(tags); - schedule = new ArrayList<>(); - activeSchedule = new ArrayList<>(); - transform = new SceneTransform(); - basePlateSize = getBounds().getXSpan(); - camera = new SceneCamera(); - baseWorldSection = new WorldSectionElement(); - renderViewEntity = world != null ? new ArmorStand(world, 0, 0, 0) : null; - keyframeTimes = new IntArrayList(4); - scaleFactor = 1; - yOffset = 0; - - setPointOfInterest(new Vec3(0, 4, 0)); - } - - public void deselect() { - forEach(WorldSectionElement.class, WorldSectionElement::resetSelectedBlock); - } - - public Pair rayTraceScene(Vec3 from, Vec3 to) { - MutableObject> nearestHit = new MutableObject<>(); - MutableDouble bestDistance = new MutableDouble(0); - - forEach(WorldSectionElement.class, wse -> { - wse.resetSelectedBlock(); - if (!wse.isVisible()) - return; - Pair rayTrace = wse.rayTrace(world, from, to); - if (rayTrace == null) - return; - double distanceTo = rayTrace.getFirst() - .distanceTo(from); - if (nearestHit.getValue() != null && distanceTo >= bestDistance.getValue()) - return; - - nearestHit.setValue(Pair.of(wse, rayTrace.getSecond())); - bestDistance.setValue(distanceTo); - }); - - if (nearestHit.getValue() == null) - return Pair.of(ItemStack.EMPTY, null); - - BlockPos selectedPos = nearestHit.getValue() - .getSecond(); - - BlockPos origin = new BlockPos(basePlateOffsetX, 0, basePlateOffsetZ); - if (!world.getBounds() - .isInside(selectedPos)) - return Pair.of(ItemStack.EMPTY, null); - if (BoundingBox.fromCorners(origin, origin.offset(new Vec3i(basePlateSize - 1, 0, basePlateSize - 1))) - .isInside(selectedPos)) { - if (PonderIndex.editingModeActive()) - nearestHit.getValue() - .getFirst() - .selectBlock(selectedPos); - return Pair.of(ItemStack.EMPTY, selectedPos); - } - - nearestHit.getValue() - .getFirst() - .selectBlock(selectedPos); - BlockState blockState = world.getBlockState(selectedPos); - ItemStack pickBlock = blockState.getCloneItemStack( - new BlockHitResult(VecHelper.getCenterOf(selectedPos), Direction.UP, selectedPos, true), world, selectedPos, - Minecraft.getInstance().player); - - return Pair.of(pickBlock, selectedPos); - } - - public void reset() { - currentTime = 0; - activeSchedule.clear(); - schedule.forEach(mdi -> mdi.reset(this)); - } - - public void begin() { - reset(); - forEach(pe -> pe.reset(this)); - - world.restore(); - elements.clear(); - linkedElements.clear(); - keyframeTimes.clear(); - - transform = new SceneTransform(); - finished = false; - setPointOfInterest(new Vec3(0, 4, 0)); - - baseWorldSection.setEmpty(); - baseWorldSection.forceApplyFade(1); - elements.add(baseWorldSection); - - totalTime = 0; - stoppedCounting = false; - activeSchedule.addAll(schedule); - activeSchedule.forEach(i -> i.onScheduled(this)); - } - - public WorldSectionElement getBaseWorldSection() { - return baseWorldSection; - } - - public float getSceneProgress() { - return totalTime == 0 ? 0 : currentTime / (float) totalTime; - } - - public void fadeOut() { - reset(); - activeSchedule.add(new HideAllInstruction(10, null)); - } - - public void renderScene(SuperRenderTypeBuffer buffer, PoseStack ms, float pt) { - ForcedDiffuseState.pushCalculator(DiffuseLightCalculator.DEFAULT); - ms.pushPose(); - Minecraft mc = Minecraft.getInstance(); - Entity prevRVE = mc.cameraEntity; - - mc.cameraEntity = this.renderViewEntity; - forEachVisible(PonderSceneElement.class, e -> e.renderFirst(world, buffer, ms, pt)); - mc.cameraEntity = prevRVE; - - for (RenderType type : RenderType.chunkBufferLayers()) - forEachVisible(PonderSceneElement.class, e -> e.renderLayer(world, buffer, type, ms, pt)); - - forEachVisible(PonderSceneElement.class, e -> e.renderLast(world, buffer, ms, pt)); - camera.set(transform.xRotation.getValue(pt) + 90, transform.yRotation.getValue(pt) + 180); - world.renderEntities(ms, buffer, camera, pt); - world.renderParticles(ms, buffer, camera, pt); - outliner.renderOutlines(ms, buffer, pt); - - ms.popPose(); - ForcedDiffuseState.popCalculator(); - } - - public void renderOverlay(PonderUI screen, PoseStack ms, float partialTicks) { - ms.pushPose(); - forEachVisible(PonderOverlayElement.class, e -> e.render(this, screen, ms, partialTicks)); - ms.popPose(); - } - - public void setPointOfInterest(Vec3 poi) { - if (chasingPointOfInterest == null) - pointOfInterest = poi; - chasingPointOfInterest = poi; - } - - public Vec3 getPointOfInterest() { - return pointOfInterest; - } - - public void tick() { - if (chasingPointOfInterest != null) - pointOfInterest = VecHelper.lerp(.25f, pointOfInterest, chasingPointOfInterest); - - outliner.tickOutlines(); - world.tick(); - transform.tick(); - forEach(e -> e.tick(this)); - - if (currentTime < totalTime) - currentTime++; - - for (Iterator iterator = activeSchedule.iterator(); iterator.hasNext();) { - PonderInstruction instruction = iterator.next(); - instruction.tick(this); - if (instruction.isComplete()) { - iterator.remove(); - if (instruction.isBlocking()) - break; - continue; - } - if (instruction.isBlocking()) - break; - } - - if (activeSchedule.isEmpty()) - finished = true; - } - - public void seekToTime(int time) { - if (time < currentTime) - throw new IllegalStateException("Cannot seek backwards. Rewind first."); - - while (currentTime < time && !finished) { - forEach(e -> e.whileSkipping(this)); - tick(); - } - - forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); - } - - public void addToSceneTime(int time) { - if (!stoppedCounting) - totalTime += time; - } - - public void stopCounting() { - stoppedCounting = true; - } - - public void markKeyframe(int offset) { - if (!stoppedCounting) - keyframeTimes.add(totalTime + offset); - } - - public void addElement(PonderElement e) { - elements.add(e); - } - - public void linkElement(E e, ElementLink link) { - linkedElements.put(link.getId(), e); - } - - public E resolve(ElementLink link) { - return link.cast(linkedElements.get(link.getId())); - } - - public void runWith(ElementLink link, Consumer callback) { - callback.accept(resolve(link)); - } - - public F applyTo(ElementLink link, Function function) { - return function.apply(resolve(link)); - } - - public void forEach(Consumer function) { - for (PonderElement elemtent : elements) - function.accept(elemtent); - } - - public void forEach(Class type, Consumer function) { - for (PonderElement element : elements) - if (type.isInstance(element)) - function.accept(type.cast(element)); - } - - public void forEachVisible(Class type, Consumer function) { - for (PonderElement element : elements) - if (type.isInstance(element) && element.isVisible()) - function.accept(type.cast(element)); - } - - public void forEachWorldEntity(Class type, Consumer function) { - world.getEntityStream() - .filter(type::isInstance) - .map(type::cast) - .forEach(function); - /* - * for (Entity element : world.getEntities()) { if (type.isInstance(element)) - * function.accept(type.cast(element)); } - */ - } - - public Supplier registerText(String defaultText) { - final String key = "text_" + textIndex; - PonderLocalization.registerSpecific(sceneId, key, defaultText); - Supplier supplier = () -> PonderLocalization.getSpecific(sceneId, key); - textIndex++; - return supplier; - } - - public SceneBuilder builder() { - return new SceneBuilder(this); - } - - public SceneBuildingUtil getSceneBuildingUtil() { - return new SceneBuildingUtil(getBounds()); - } - - public String getTitle() { - return getString(TITLE_KEY); - } - - public String getString(String key) { - return PonderLocalization.getSpecific(sceneId, key); - } - - public PonderWorld getWorld() { - return world; - } - - public String getNamespace() { - return namespace; - } - - public int getKeyframeCount() { - return keyframeTimes.size(); - } - - public int getKeyframeTime(int index) { - return keyframeTimes.getInt(index); - } - - public List getTags() { - return tags; - } - - public ResourceLocation getComponent() { - return component; - } - - public Set getElements() { - return elements; - } - - public BoundingBox getBounds() { - return world == null ? new BoundingBox(BlockPos.ZERO) : world.getBounds(); - } - - public ResourceLocation getId() { - return sceneId; - } - - public SceneTransform getTransform() { - return transform; - } - - public Outliner getOutliner() { - return outliner; - } - - public boolean isFinished() { - return finished; - } - - public void setFinished(boolean finished) { - this.finished = finished; - } - - public int getBasePlateOffsetX() { - return basePlateOffsetX; - } - - public int getBasePlateOffsetZ() { - return basePlateOffsetZ; - } - - public int getBasePlateSize() { - return basePlateSize; - } - - public float getYOffset() { - return yOffset; - } - - public int getTotalTime() { - return totalTime; - } - - public int getCurrentTime() { - return currentTime; - } - - public class SceneTransform { - - public LerpedFloat xRotation, yRotation; - - // Screen params - private int width, height; - private double offset; - private Matrix4f cachedMat; - - public SceneTransform() { - xRotation = LerpedFloat.angular() - .disableSmartAngleChasing() - .startWithValue(-35); - yRotation = LerpedFloat.angular() - .disableSmartAngleChasing() - .startWithValue(55 + 90); - } - - public void tick() { - xRotation.tickChaser(); - yRotation.tickChaser(); - } - - public void updateScreenParams(int width, int height, double offset) { - this.width = width; - this.height = height; - this.offset = offset; - cachedMat = null; - } - - public PoseStack apply(PoseStack ms) { - return apply(ms, AnimationTickHolder.getPartialTicks(world), false); - } - - public PoseStack apply(PoseStack ms, float pt, boolean overlayCompatible) { - ms.translate(width / 2, height / 2, 200 + offset); - - TransformStack.cast(ms) - .rotateX(-35) - .rotateY(55) - .translate(offset, 0, 0) - .rotateY(-55) - .rotateX(35) - .rotateX(xRotation.getValue(pt)) - .rotateY(yRotation.getValue(pt)); - - float f = 30 * scaleFactor; - - if (!overlayCompatible) { - UIRenderHelper.flipForGuiRender(ms); - ms.scale(f, f, f); - ms.translate((basePlateSize + basePlateOffsetX) / -2f, -1f + yOffset, - (basePlateSize + basePlateOffsetZ) / -2f); - } else { - // For block breaking overlay; Don't ask - ms.scale(f, f, f); - if (f == 30) - ms.translate(0.525, .2975, .9); - ms.translate((basePlateSize + basePlateOffsetX) / -2f, -yOffset, - (basePlateSize + basePlateOffsetZ) / -2f); - float y = (float) (0.5065 * Math.pow(2.2975, Math.log(1 / scaleFactor) / Math.log(2))) / 30; - ms.scale(y, -y, -y); - } - - return ms; - } - - public void updateSceneRVE(float pt) { - Vec3 v = screenToScene(width / 2, height / 2, 500, pt); - if (renderViewEntity != null) - renderViewEntity.setPos(v.x, v.y, v.z); - } - - public Vec3 screenToScene(double x, double y, int depth, float pt) { - refreshMatrix(pt); - Vec3 vec = new Vec3(x, y, depth); - - vec = vec.subtract(width / 2, height / 2, 200 + offset); - vec = VecHelper.rotate(vec, 35, Axis.X); - vec = VecHelper.rotate(vec, -55, Axis.Y); - vec = vec.subtract(offset, 0, 0); - vec = VecHelper.rotate(vec, 55, Axis.Y); - vec = VecHelper.rotate(vec, -35, Axis.X); - vec = VecHelper.rotate(vec, -xRotation.getValue(pt), Axis.X); - vec = VecHelper.rotate(vec, -yRotation.getValue(pt), Axis.Y); - - float f = 1f / (30 * scaleFactor); - - vec = vec.multiply(f, -f, f); - vec = vec.subtract((basePlateSize + basePlateOffsetX) / -2f, -1f + yOffset, - (basePlateSize + basePlateOffsetZ) / -2f); - - return vec; - } - - public Vec2 sceneToScreen(Vec3 vec, float pt) { - refreshMatrix(pt); - Vector4f vec4 = new Vector4f((float) vec.x, (float) vec.y, (float) vec.z, 1); - vec4.transform(cachedMat); - return new Vec2(vec4.x(), vec4.y()); - } - - protected void refreshMatrix(float pt) { - if (cachedMat != null) - return; - cachedMat = apply(new PoseStack(), pt, false).last() - .pose(); - } - - } - - public class SceneCamera extends Camera { - - public void set(float xRotation, float yRotation) { - setRotation(yRotation, xRotation); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java deleted file mode 100644 index 5936c4483..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderStoryBoardEntry.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.minecraft.resources.ResourceLocation; - -public class PonderStoryBoardEntry { - - private final PonderStoryBoard board; - private final String namespace; - private final ResourceLocation schematicLocation; - private final ResourceLocation component; - private final List tags; - - public PonderStoryBoardEntry(PonderStoryBoard board, String namespace, ResourceLocation schematicLocation, ResourceLocation component) { - this.board = board; - this.namespace = namespace; - this.schematicLocation = schematicLocation; - this.component = component; - this.tags = new ArrayList<>(); - } - - public PonderStoryBoardEntry(PonderStoryBoard board, String namespace, String schematicPath, ResourceLocation component) { - this(board, namespace, new ResourceLocation(namespace, schematicPath), component); - } - - public PonderStoryBoard getBoard() { - return board; - } - - public String getNamespace() { - return namespace; - } - - public ResourceLocation getSchematicLocation() { - return schematicLocation; - } - - public ResourceLocation getComponent() { - return component; - } - - public List getTags() { - return tags; - } - - // Builder start - - public PonderStoryBoardEntry highlightTag(PonderTag tag) { - tags.add(tag); - return this; - } - - public PonderStoryBoardEntry highlightTags(PonderTag... tags) { - Collections.addAll(this.tags, tags); - return this; - } - - public PonderStoryBoardEntry highlightAllTags() { - tags.add(PonderTag.Highlight.ALL); - return this; - } - - public PonderStoryBoardEntry chapter(PonderChapter chapter) { - PonderRegistry.CHAPTERS.addStoriesToChapter(chapter, this); - return this; - } - - public PonderStoryBoardEntry chapters(PonderChapter... chapters) { - for (PonderChapter c : chapters) - chapter(c); - return this; - } - - // Builder end - - @FunctionalInterface - public interface PonderStoryBoard { - void program(SceneBuilder scene, SceneBuildingUtil util); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java deleted file mode 100644 index 3d3d5932a..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllItems; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.gui.element.ScreenElement; - -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.ItemLike; -import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -public class PonderTag implements ScreenElement { - - public static final PonderTag - - KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false) - .defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere") - .addToIndex(), - - KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false) - .defaultLang("Kinetic Sources", "Components which generate Rotational Force") - .addToIndex(), - - KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false) - .defaultLang("Kinetic Appliances", "Components which make use of Rotational Force") - .addToIndex(), - - FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false) - .defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids") - .addToIndex(), - - LOGISTICS = create("logistics").item(Blocks.CHEST, true, false) - .defaultLang("Item Transportation", "Components which help moving items around") - .addToIndex(), - - REDSTONE = create("redstone").item(Items.REDSTONE, true, false) - .defaultLang("Logic Components", "Components which help with redstone engineering") - .addToIndex(), - - DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false) - .defaultLang("Aesthetics", "Components used mostly for decorative purposes"), - - CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false) - .defaultLang("Creative Mode", "Components not usually available for Survival Mode") - .addToIndex(), - - MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false) - .defaultLang("Movement Anchors", - "Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways") - .addToIndex(), - - CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false) - .defaultLang("Contraption Actors", - "Components which expose special behaviour when attached to a moving contraption") - .addToIndex(), - - CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false) - .defaultLang("Block Attachment Utility", - "Tools and Components used to assemble structures moved as an animated Contraption") - .addToIndex(), - - SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get()) - .defaultLang("Sails for Windmill Bearings", - "Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."), - - ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get()) - .defaultLang("Targets for Mechanical Arms", - "Components which can be selected as inputs or outputs to the Mechanical Arm"), - - TRAIN_RELATED = create("train_related").item(AllBlocks.TRACK.get()) - .defaultLang("Railway Equipment", "Components used in the construction or management of Train Contraptions") - .addToIndex(), - - DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, false) - .item(AllBlocks.DISPLAY_LINK.get(), false, true) - .defaultLang("Sources for Display Links", - "Components or Blocks which offer some data that can be read with a Display Link"), - - DISPLAY_TARGETS = create("display_targets").item(AllBlocks.DISPLAY_LINK.get(), true, false) - .item(AllBlocks.DISPLAY_LINK.get(), false, true) - .defaultLang("Targets for Display Links", - "Components or Blocks which can process and display the data received from a Display Link"); - - public static class Highlight { - public static final PonderTag ALL = create("_all"); - } - - private final ResourceLocation id; - private ResourceLocation icon; - private ItemStack itemIcon = ItemStack.EMPTY; - private ItemStack mainItem = ItemStack.EMPTY; - - public PonderTag(ResourceLocation id) { - this.id = id; - } - - public ResourceLocation getId() { - return id; - } - - public ItemStack getMainItem() { - return mainItem; - } - - public String getTitle() { - return PonderLocalization.getTag(id); - } - - public String getDescription() { - return PonderLocalization.getTagDescription(id); - } - - // Builder - - public PonderTag defaultLang(String title, String description) { - PonderLocalization.registerTag(id, title, description); - return this; - } - - public PonderTag addToIndex() { - PonderRegistry.TAGS.listTag(this); - return this; - } - - public PonderTag icon(ResourceLocation location) { - this.icon = new ResourceLocation(location.getNamespace(), "textures/ponder/tag/" + location.getPath() + ".png"); - return this; - } - - public PonderTag icon(String location) { - this.icon = new ResourceLocation(id.getNamespace(), "textures/ponder/tag/" + location + ".png"); - return this; - } - - public PonderTag idAsIcon() { - return icon(id); - } - - public PonderTag item(ItemLike item, boolean useAsIcon, boolean useAsMainItem) { - if (useAsIcon) - this.itemIcon = new ItemStack(item); - if (useAsMainItem) - this.mainItem = new ItemStack(item); - return this; - } - - public PonderTag item(ItemLike item) { - return this.item(item, true, true); - } - - @Override - @OnlyIn(Dist.CLIENT) - public void render(PoseStack ms, int x, int y) { - ms.pushPose(); - ms.translate(x, y, 0); - if (icon != null) { - RenderSystem.setShaderTexture(0, icon); - ms.scale(0.25f, 0.25f, 1); - GuiComponent.blit(ms, 0, 0, 0, 0, 0, 64, 64, 64, 64); - } else if (!itemIcon.isEmpty()) { - ms.translate(-4, -4, 0); - ms.scale(1.5f, 1.5f, 1.5f); - GuiGameElement.of(itemIcon) - .render(ms); - } - ms.popPose(); - } - - private static PonderTag create(String id) { - return new PonderTag(Create.asResource(id)); - } - - // Load class - public static void register() {} - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTagRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTagRegistry.java deleted file mode 100644 index cad0c1bab..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTagRegistry.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.LinkedHashMultimap; -import com.google.common.collect.Multimap; -import com.tterrag.registrate.util.entry.ItemProviderEntry; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.ItemLike; - -public class PonderTagRegistry { - - private final Multimap tags; - private final Multimap chapterTags; - - private final List listedTags; - - public PonderTagRegistry() { - tags = LinkedHashMultimap.create(); - chapterTags = LinkedHashMultimap.create(); - listedTags = new ArrayList<>(); - } - - public Set getTags(ResourceLocation item) { - return ImmutableSet.copyOf(tags.get(item)); - } - - public Set getTags(PonderChapter chapter) { - return ImmutableSet.copyOf(chapterTags.get(chapter)); - } - - public Set getItems(PonderTag tag) { - return tags.entries() - .stream() - .filter(e -> e.getValue() == tag) - .map(Map.Entry::getKey) - .collect(ImmutableSet.toImmutableSet()); - } - - public Set getChapters(PonderTag tag) { - return chapterTags.entries() - .stream() - .filter(e -> e.getValue() == tag) - .map(Map.Entry::getKey) - .collect(ImmutableSet.toImmutableSet()); - } - - public List getListedTags() { - return listedTags; - } - - public void listTag(PonderTag tag) { - listedTags.add(tag); - } - - public void add(PonderTag tag, ResourceLocation item) { - synchronized (tags) { - tags.put(item, tag); - } - } - - public void add(PonderTag tag, PonderChapter chapter) { - synchronized (chapterTags) { - chapterTags.put(chapter, tag); - } - } - - public ItemBuilder forItems(ResourceLocation... items) { - return new ItemBuilder(items); - } - - public TagBuilder forTag(PonderTag tag) { - return new TagBuilder(tag); - } - - public class ItemBuilder { - - private final Collection items; - - private ItemBuilder(ResourceLocation... items) { - this.items = Arrays.asList(items); - } - - public ItemBuilder add(PonderTag tag) { - items.forEach(i -> PonderTagRegistry.this.add(tag, i)); - return this; - } - - } - - public class TagBuilder { - - private final PonderTag tag; - - private TagBuilder(PonderTag tag) { - this.tag = tag; - } - - public TagBuilder add(ResourceLocation item) { - PonderTagRegistry.this.add(tag, item); - return this; - } - - public TagBuilder add(ItemLike item) { - return add(item.asItem() - .getRegistryName()); - } - - public TagBuilder add(ItemProviderEntry entry) { - return add(entry.get()); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java deleted file mode 100644 index cf22e348c..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java +++ /dev/null @@ -1,178 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.List; - -import com.google.common.base.Strings; -import com.mojang.blaze3d.platform.InputConstants; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.ponder.ui.NavigatableSimiScreen; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.ChatFormatting; -import net.minecraft.client.KeyMapping; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.client.event.RenderTooltipEvent; - -public class PonderTooltipHandler { - - public static boolean enable = true; - - static LerpedFloat holdWProgress = LerpedFloat.linear() - .startWithValue(0); - static ItemStack hoveredStack = ItemStack.EMPTY; - static ItemStack trackingStack = ItemStack.EMPTY; - static boolean subject = false; - static boolean deferTick = false; - - public static final String HOLD_TO_PONDER = PonderLocalization.LANG_PREFIX + "hold_to_ponder"; - public static final String SUBJECT = PonderLocalization.LANG_PREFIX + "subject"; - - public static void tick() { - deferTick = true; - } - - public static void deferredTick() { - deferTick = false; - Minecraft instance = Minecraft.getInstance(); - Screen currentScreen = instance.screen; - - if (hoveredStack.isEmpty() || trackingStack.isEmpty()) { - trackingStack = ItemStack.EMPTY; - holdWProgress.startWithValue(0); - return; - } - - float value = holdWProgress.getValue(); - int keyCode = ponderKeybind().getKey() - .getValue(); - long window = instance.getWindow() - .getWindow(); - - if (!subject && InputConstants.isKeyDown(window, keyCode)) { - if (value >= 1) { - if (currentScreen instanceof NavigatableSimiScreen) - ((NavigatableSimiScreen) currentScreen).centerScalingOnMouse(); - ScreenOpener.transitionTo(PonderUI.of(trackingStack)); - holdWProgress.startWithValue(0); - return; - } - holdWProgress.setValue(Math.min(1, value + Math.max(.25f, value) * .25f)); - } else - holdWProgress.setValue(Math.max(0, value - .05f)); - - hoveredStack = ItemStack.EMPTY; - } - - public static void addToTooltip(List toolTip, ItemStack stack) { - if (!enable) - return; - - updateHovered(stack); - - if (deferTick) - deferredTick(); - - if (trackingStack != stack) - return; - - float renderPartialTicks = Minecraft.getInstance() - .getFrameTime(); - Component component = subject ? Lang.translateDirect(SUBJECT) - .withStyle(ChatFormatting.GREEN) - : makeProgressBar(Math.min(1, holdWProgress.getValue(renderPartialTicks) * 8 / 7f)); - if (toolTip.size() < 2) - toolTip.add(component); - else - toolTip.add(1, component); - } - - protected static void updateHovered(ItemStack stack) { - Minecraft instance = Minecraft.getInstance(); - Screen currentScreen = instance.screen; - boolean inPonderUI = currentScreen instanceof PonderUI; - - ItemStack prevStack = trackingStack; - hoveredStack = ItemStack.EMPTY; - subject = false; - - if (inPonderUI) { - PonderUI ponderUI = (PonderUI) currentScreen; - if (stack.sameItem(ponderUI.getSubject())) - subject = true; - } - - if (stack.isEmpty()) - return; - if (!PonderRegistry.ALL.containsKey(stack.getItem() - .getRegistryName())) - return; - - if (prevStack.isEmpty() || !prevStack.sameItem(stack)) - holdWProgress.startWithValue(0); - - hoveredStack = stack; - trackingStack = stack; - } - - public static void handleTooltipColor(RenderTooltipEvent.Color event) { - if (trackingStack != event.getItemStack()) - return; - if (holdWProgress.getValue() == 0) - return; - float renderPartialTicks = Minecraft.getInstance() - .getFrameTime(); - int start = event.getOriginalBorderStart(); - int end = event.getOriginalBorderEnd(); - float progress = Math.min(1, holdWProgress.getValue(renderPartialTicks) * 8 / 7f); - - start = getSmoothColorForProgress(progress); - end = getSmoothColorForProgress((progress)); - - event.setBorderStart(start | 0xa0000000); - event.setBorderEnd(end | 0xa0000000); - } - - private static int getSmoothColorForProgress(float progress) { - if (progress < .5f) - return Color.mixColors(0x5000FF, 5592575, progress * 2); - return Color.mixColors(5592575, 0xffffff, (progress - .5f) * 2); - } - - private static Component makeProgressBar(float progress) { - MutableComponent holdW = Lang - .translateDirect(HOLD_TO_PONDER, - ((MutableComponent) ponderKeybind().getTranslatedKeyMessage()).withStyle(ChatFormatting.GRAY)) - .withStyle(ChatFormatting.DARK_GRAY); - - Font fontRenderer = Minecraft.getInstance().font; - float charWidth = fontRenderer.width("|"); - float tipWidth = fontRenderer.width(holdW); - - int total = (int) (tipWidth / charWidth); - int current = (int) (progress * total); - - if (progress > 0) { - String bars = ""; - bars += ChatFormatting.GRAY + Strings.repeat("|", current); - if (progress < 1) - bars += ChatFormatting.DARK_GRAY + Strings.repeat("|", total - current); - return new TextComponent(bars); - } - - return holdW; - } - - protected static KeyMapping ponderKeybind() { - return Minecraft.getInstance().options.keyUp; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java deleted file mode 100644 index a81424f72..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java +++ /dev/null @@ -1,355 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; - -import javax.annotation.Nullable; - -import com.google.common.base.Suppliers; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; -import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.schematics.SchematicWorld; -import com.simibubi.create.foundation.mixin.accessor.ParticleEngineAccessor; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.tileEntity.IMultiTileContainer; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedClientWorld; - -import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleProvider; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.core.BlockPos; -import net.minecraft.core.particles.BlockParticleOption; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.inventory.InventoryMenu; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LightLayer; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.registries.ForgeRegistries; - -public class PonderWorld extends SchematicWorld { - - public PonderScene scene; - - protected Map originalBlocks; - protected Map originalTileEntities; - protected Map blockBreakingProgressions; - protected List originalEntities; - private Supplier asClientWorld = Suppliers.memoize(() -> WrappedClientWorld.of(this)); - - protected PonderWorldParticles particles; - private final Map> particleProviders; - - int overrideLight; - Selection mask; - - public PonderWorld(BlockPos anchor, Level original) { - super(anchor, original); - originalBlocks = new HashMap<>(); - originalTileEntities = new HashMap<>(); - blockBreakingProgressions = new HashMap<>(); - originalEntities = new ArrayList<>(); - particles = new PonderWorldParticles(this); - particleProviders = ((ParticleEngineAccessor) Minecraft.getInstance().particleEngine).create$getProviders(); - } - - public void createBackup() { - originalBlocks.clear(); - originalTileEntities.clear(); - blocks.forEach((k, v) -> originalBlocks.put(k, v)); - tileEntities.forEach( - (k, v) -> originalTileEntities.put(k, BlockEntity.loadStatic(k, blocks.get(k), v.saveWithFullMetadata()))); - entities.forEach(e -> EntityType.create(e.serializeNBT(), this) - .ifPresent(originalEntities::add)); - } - - public void restore() { - entities.clear(); - blocks.clear(); - tileEntities.clear(); - blockBreakingProgressions.clear(); - renderedTileEntities.clear(); - originalBlocks.forEach((k, v) -> blocks.put(k, v)); - originalTileEntities.forEach((k, v) -> { - BlockEntity te = BlockEntity.loadStatic(k, originalBlocks.get(k), v.saveWithFullMetadata()); - onTEadded(te, te.getBlockPos()); - tileEntities.put(k, te); - renderedTileEntities.add(te); - }); - originalEntities.forEach(e -> EntityType.create(e.serializeNBT(), this) - .ifPresent(entities::add)); - particles.clearEffects(); - fixControllerTileEntities(); - } - - public void restoreBlocks(Selection selection) { - selection.forEach(p -> { - if (originalBlocks.containsKey(p)) - blocks.put(p, originalBlocks.get(p)); - if (originalTileEntities.containsKey(p)) { - BlockEntity te = BlockEntity.loadStatic(p, originalBlocks.get(p), originalTileEntities.get(p) - .saveWithFullMetadata()); - onTEadded(te, te.getBlockPos()); - tileEntities.put(p, te); - } - }); - redraw(); - } - - private void redraw() { - if (scene != null) - scene.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); - } - - public void pushFakeLight(int light) { - this.overrideLight = light; - } - - public void popLight() { - this.overrideLight = -1; - } - - @Override - public int getBrightness(LightLayer p_226658_1_, BlockPos p_226658_2_) { - return overrideLight == -1 ? 15 : overrideLight; - } - - public void setMask(Selection mask) { - this.mask = mask; - } - - public void clearMask() { - this.mask = null; - } - - @Override - public BlockState getBlockState(BlockPos globalPos) { - if (mask != null && !mask.test(globalPos.subtract(anchor))) - return Blocks.AIR.defaultBlockState(); - return super.getBlockState(globalPos); - } - - @Override // For particle collision - public BlockGetter getChunkForCollisions(int p_225522_1_, int p_225522_2_) { - return this; - } - - public void renderEntities(PoseStack ms, SuperRenderTypeBuffer buffer, Camera ari, float pt) { - Vec3 Vector3d = ari.getPosition(); - double d0 = Vector3d.x(); - double d1 = Vector3d.y(); - double d2 = Vector3d.z(); - - for (Entity entity : entities) { - if (entity.tickCount == 0) { - entity.xOld = entity.getX(); - entity.yOld = entity.getY(); - entity.zOld = entity.getZ(); - } - renderEntity(entity, d0, d1, d2, pt, ms, buffer); - } - - buffer.draw(RenderType.entitySolid(InventoryMenu.BLOCK_ATLAS)); - buffer.draw(RenderType.entityCutout(InventoryMenu.BLOCK_ATLAS)); - buffer.draw(RenderType.entityCutoutNoCull(InventoryMenu.BLOCK_ATLAS)); - buffer.draw(RenderType.entitySmoothCutout(InventoryMenu.BLOCK_ATLAS)); - } - - private void renderEntity(Entity entity, double x, double y, double z, float pt, PoseStack ms, - MultiBufferSource buffer) { - double d0 = Mth.lerp((double) pt, entity.xOld, entity.getX()); - double d1 = Mth.lerp((double) pt, entity.yOld, entity.getY()); - double d2 = Mth.lerp((double) pt, entity.zOld, entity.getZ()); - float f = Mth.lerp(pt, entity.yRotO, entity.getYRot()); - EntityRenderDispatcher renderManager = Minecraft.getInstance() - .getEntityRenderDispatcher(); - int light = renderManager.getRenderer(entity) - .getPackedLightCoords(entity, pt); - renderManager.render(entity, d0 - x, d1 - y, d2 - z, f, pt, ms, buffer, light); - } - - public void renderParticles(PoseStack ms, MultiBufferSource buffer, Camera ari, float pt) { - particles.renderParticles(ms, buffer, ari, pt); - } - - public void tick() { - particles.tick(); - - for (Iterator iterator = entities.iterator(); iterator.hasNext();) { - Entity entity = iterator.next(); - - entity.tickCount++; - entity.xOld = entity.getX(); - entity.yOld = entity.getY(); - entity.zOld = entity.getZ(); - entity.tick(); - - if (entity.getY() <= -.5f) - entity.discard(); - - if (!entity.isAlive()) - iterator.remove(); - } - } - - @Override - public void addParticle(ParticleOptions data, double x, double y, double z, double mx, double my, double mz) { - addParticle(makeParticle(data, x, y, z, mx, my, mz)); - } - - @Override - public void addAlwaysVisibleParticle(ParticleOptions data, double x, double y, double z, double mx, double my, double mz) { - addParticle(data, x, y, z, mx, my, mz); - } - - @Nullable - @SuppressWarnings("unchecked") - private Particle makeParticle(T data, double x, double y, double z, double mx, double my, - double mz) { - ResourceLocation key = ForgeRegistries.PARTICLE_TYPES.getKey(data.getType()); - ParticleProvider particleProvider = (ParticleProvider) particleProviders.get(key); - return particleProvider == null ? null - : particleProvider.createParticle(data, asClientWorld.get(), x, y, z, mx, my, mz); - } - - @Override - public boolean setBlock(BlockPos pos, BlockState arg1, int arg2) { - return super.setBlock(pos, arg1, arg2); - } - - public void addParticle(Particle p) { - if (p != null) - particles.addParticle(p); - } - - @Override - protected void onTEadded(BlockEntity tileEntity, BlockPos pos) { - super.onTEadded(tileEntity, pos); - if (!(tileEntity instanceof SmartTileEntity)) - return; - SmartTileEntity smartTileEntity = (SmartTileEntity) tileEntity; - smartTileEntity.markVirtual(); - } - - public void fixControllerTileEntities() { - for (BlockEntity tileEntity : tileEntities.values()) { - - if (tileEntity instanceof BeltTileEntity) { - BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity; - if (!beltTileEntity.isController()) - continue; - BlockPos controllerPos = tileEntity.getBlockPos(); - for (BlockPos blockPos : BeltBlock.getBeltChain(this, controllerPos)) { - BlockEntity tileEntity2 = getBlockEntity(blockPos); - if (!(tileEntity2 instanceof BeltTileEntity)) - continue; - BeltTileEntity belt2 = (BeltTileEntity) tileEntity2; - belt2.setController(controllerPos); - } - } - - if (tileEntity instanceof IMultiTileContainer) { - IMultiTileContainer multiTile = (IMultiTileContainer) tileEntity; - BlockPos lastKnown = multiTile.getLastKnownPos(); - BlockPos current = tileEntity.getBlockPos(); - if (lastKnown == null || current == null) - continue; - if (multiTile.isController()) - continue; - if (!lastKnown.equals(current)) { - BlockPos newControllerPos = multiTile.getController() - .offset(current.subtract(lastKnown)); - multiTile.setController(newControllerPos); - } - } - - } - } - - public void setBlockBreakingProgress(BlockPos pos, int damage) { - if (damage == 0) - blockBreakingProgressions.remove(pos); - else - blockBreakingProgressions.put(pos, damage - 1); - } - - public Map getBlockBreakingProgressions() { - return blockBreakingProgressions; - } - - public void addBlockDestroyEffects(BlockPos pos, BlockState state) { - VoxelShape voxelshape = state.getShape(this, pos); - if (voxelshape.isEmpty()) - return; - - AABB bb = voxelshape.bounds(); - double d1 = Math.min(1.0D, bb.maxX - bb.minX); - double d2 = Math.min(1.0D, bb.maxY - bb.minY); - double d3 = Math.min(1.0D, bb.maxZ - bb.minZ); - int i = Math.max(2, Mth.ceil(d1 / 0.25D)); - int j = Math.max(2, Mth.ceil(d2 / 0.25D)); - int k = Math.max(2, Mth.ceil(d3 / 0.25D)); - - for (int l = 0; l < i; ++l) { - for (int i1 = 0; i1 < j; ++i1) { - for (int j1 = 0; j1 < k; ++j1) { - double d4 = (l + 0.5D) / i; - double d5 = (i1 + 0.5D) / j; - double d6 = (j1 + 0.5D) / k; - double d7 = d4 * d1 + bb.minX; - double d8 = d5 * d2 + bb.minY; - double d9 = d6 * d3 + bb.minZ; - addParticle(new BlockParticleOption(ParticleTypes.BLOCK, state), pos.getX() + d7, pos.getY() + d8, - pos.getZ() + d9, d4 - 0.5D, d5 - 0.5D, d6 - 0.5D); - } - } - } - } - - @Override - protected BlockState processBlockStateForPrinting(BlockState state) { - return state; - } - - @Override - public boolean hasChunkAt(BlockPos pos) { - return true; // fix particle lighting - } - - @Override - public boolean hasChunk(int x, int y) { - return true; // fix particle lighting - } - - @Override - public boolean isLoaded(BlockPos pos) { - return true; // fix particle lighting - } - - @Override - public boolean hasNearbyAlivePlayer(double p_217358_1_, double p_217358_3_, double p_217358_5_, double p_217358_7_) { - return true; // always enable spawner animations - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldParticles.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldParticles.java deleted file mode 100644 index fb99c0261..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldParticles.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import java.util.Queue; - -import com.google.common.collect.EvictingQueue; -import com.google.common.collect.Maps; -import com.google.common.collect.Queues; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; - -import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleRenderType; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; - -public class PonderWorldParticles { - - private final Map> byType = Maps.newIdentityHashMap(); - private final Queue queue = Queues.newArrayDeque(); - - PonderWorld world; - - public PonderWorldParticles(PonderWorld world) { - this.world = world; - } - - public void addParticle(Particle p) { - this.queue.add(p); - } - - public void tick() { - this.byType.forEach((p_228347_1_, p_228347_2_) -> this.tickParticleList(p_228347_2_)); - - Particle particle; - if (queue.isEmpty()) - return; - while ((particle = this.queue.poll()) != null) - this.byType.computeIfAbsent(particle.getRenderType(), $ -> EvictingQueue.create(16384)) - .add(particle); - } - - private void tickParticleList(Collection p_187240_1_) { - if (p_187240_1_.isEmpty()) - return; - - Iterator iterator = p_187240_1_.iterator(); - while (iterator.hasNext()) { - Particle particle = iterator.next(); - particle.tick(); - if (!particle.isAlive()) - iterator.remove(); - } - } - - public void renderParticles(PoseStack ms, MultiBufferSource buffer, Camera renderInfo, float pt) { - Minecraft mc = Minecraft.getInstance(); - LightTexture lightTexture = mc.gameRenderer.lightTexture(); - - lightTexture.turnOnLightLayer(); - RenderSystem.enableDepthTest(); - PoseStack posestack = RenderSystem.getModelViewStack(); - posestack.pushPose(); - posestack.mulPoseMatrix(ms.last().pose()); - RenderSystem.applyModelViewMatrix(); - - for (ParticleRenderType iparticlerendertype : this.byType.keySet()) { - if (iparticlerendertype == ParticleRenderType.NO_RENDER) - continue; - Iterable iterable = this.byType.get(iparticlerendertype); - if (iterable != null) { - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - RenderSystem.setShader(GameRenderer::getParticleShader); - - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder bufferbuilder = tessellator.getBuilder(); - iparticlerendertype.begin(bufferbuilder, mc.textureManager); - - for (Particle particle : iterable) - particle.render(bufferbuilder, renderInfo, pt); - - iparticlerendertype.end(tessellator); - } - } - - posestack.popPose(); - RenderSystem.applyModelViewMatrix(); - RenderSystem.depthMask(true); - RenderSystem.disableBlend(); - lightTexture.turnOffLightLayer(); - } - - public void clearEffects() { - this.byType.clear(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldTileFix.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldTileFix.java new file mode 100644 index 000000000..7b5f0b7df --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorldTileFix.java @@ -0,0 +1,45 @@ +package com.simibubi.create.foundation.ponder; + +import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; +import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; +import com.simibubi.create.foundation.tileEntity.IMultiTileContainer; + +import net.createmod.ponder.foundation.PonderWorld; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntity; + +public class PonderWorldTileFix { + + public static void fixControllerTiles(PonderWorld world) { + for (BlockEntity tileEntity : world.getTileEntities().values()) { + + if (tileEntity instanceof BeltTileEntity beltTileEntity) { + if (!beltTileEntity.isController()) + continue; + BlockPos controllerPos = tileEntity.getBlockPos(); + for (BlockPos blockPos : BeltBlock.getBeltChain(world, controllerPos)) { + BlockEntity tileEntity2 = world.getBlockEntity(blockPos); + if (!(tileEntity2 instanceof BeltTileEntity belt2)) + continue; + belt2.setController(controllerPos); + } + } + + if (tileEntity instanceof IMultiTileContainer multiTile) { + BlockPos lastKnown = multiTile.getLastKnownPos(); + BlockPos current = tileEntity.getBlockPos(); + if (lastKnown == null) + continue; + if (multiTile.isController()) + continue; + if (!lastKnown.equals(current)) { + BlockPos newControllerPos = multiTile.getController() + .offset(current.subtract(lastKnown)); + multiTile.setController(newControllerPos); + } + } + + } + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java deleted file mode 100644 index 890d8a2cd..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ /dev/null @@ -1,890 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.Optional; -import java.util.UUID; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; -import java.util.function.UnaryOperator; - -import com.mojang.math.Vector3f; -import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; -import com.simibubi.create.content.contraptions.base.KineticBlock; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.components.crafter.ConnectedInputHandler; -import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity; -import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; -import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.ControlsBlock; -import com.simibubi.create.content.contraptions.fluids.PumpTileEntity; -import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; -import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity; -import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity; -import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity; -import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; -import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; -import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; -import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity; -import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.SignalState; -import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationTileEntity; -import com.simibubi.create.foundation.ponder.element.AnimatedSceneElement; -import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.MinecartElement; -import com.simibubi.create.foundation.ponder.element.MinecartElement.MinecartConstructor; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.ParrotPose; -import com.simibubi.create.foundation.ponder.element.ParrotElement.SpinOnComponentPose; -import com.simibubi.create.foundation.ponder.element.TextWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.AnimateMinecartInstruction; -import com.simibubi.create.foundation.ponder.instruction.AnimateParrotInstruction; -import com.simibubi.create.foundation.ponder.instruction.AnimateTileEntityInstruction; -import com.simibubi.create.foundation.ponder.instruction.AnimateWorldSectionInstruction; -import com.simibubi.create.foundation.ponder.instruction.ChaseAABBInstruction; -import com.simibubi.create.foundation.ponder.instruction.CreateMinecartInstruction; -import com.simibubi.create.foundation.ponder.instruction.CreateParrotInstruction; -import com.simibubi.create.foundation.ponder.instruction.DelayInstruction; -import com.simibubi.create.foundation.ponder.instruction.DisplayWorldSectionInstruction; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.ponder.instruction.FadeOutOfSceneInstruction; -import com.simibubi.create.foundation.ponder.instruction.HighlightValueBoxInstruction; -import com.simibubi.create.foundation.ponder.instruction.KeyframeInstruction; -import com.simibubi.create.foundation.ponder.instruction.LineInstruction; -import com.simibubi.create.foundation.ponder.instruction.MarkAsFinishedInstruction; -import com.simibubi.create.foundation.ponder.instruction.MovePoiInstruction; -import com.simibubi.create.foundation.ponder.instruction.OutlineSelectionInstruction; -import com.simibubi.create.foundation.ponder.instruction.PonderInstruction; -import com.simibubi.create.foundation.ponder.instruction.ReplaceBlocksInstruction; -import com.simibubi.create.foundation.ponder.instruction.RotateSceneInstruction; -import com.simibubi.create.foundation.ponder.instruction.ShowInputInstruction; -import com.simibubi.create.foundation.ponder.instruction.TextInstruction; -import com.simibubi.create.foundation.ponder.instruction.TileEntityDataInstruction; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Vec3i; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.DyeColor; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.RedstoneTorchBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -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.Property; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -/** - * Enqueue instructions to the schedule via this object's methods. - */ -public class SceneBuilder { - - /** - * Ponder's toolkit for showing information on top of the scene world, such as - * highlighted bounding boxes, texts, icons and keybindings. - */ - public final OverlayInstructions overlay; - - /** - * Instructions for manipulating the schematic and its currently visible areas. - * Allows to show, hide and modify blocks as the scene plays out. - */ - public final WorldInstructions world; - - /** - * Additional tools for debugging ponder and bypassing the facade - */ - public final DebugInstructions debug; - - /** - * Special effects to embellish and communicate with - */ - public final EffectInstructions effects; - - /** - * Random other instructions that might come in handy - */ - public final SpecialInstructions special; - - private final PonderScene scene; - - public SceneBuilder(PonderScene ponderScene) { - scene = ponderScene; - overlay = new OverlayInstructions(); - special = new SpecialInstructions(); - world = new WorldInstructions(); - debug = new DebugInstructions(); - effects = new EffectInstructions(); - } - - // General - - /** - * Assign a unique translation key, as well as the standard english translation - * for this scene's title using this method, anywhere inside the program - * function. - * - * @param sceneId - * @param title - */ - public void title(String sceneId, String title) { - scene.sceneId = new ResourceLocation(scene.getNamespace(), sceneId); - PonderLocalization.registerSpecific(scene.sceneId, PonderScene.TITLE_KEY, title); - } - - /** - * Communicates to the ponder UI which parts of the schematic make up the base - * horizontally. Use of this is encouraged whenever there are components outside - * the the base plate.
- * As a result, showBasePlate() will only show the configured size, and the - * scene's scaling inside the UI will be consistent with its base size. - * - * @param xOffset Block spaces between the base plate and the schematic - * boundary on the Western side. - * @param zOffset Block spaces between the base plate and the schematic - * boundary on the Northern side. - * @param basePlateSize Length in blocks of the base plate itself. Ponder - * assumes it to be square - */ - public void configureBasePlate(int xOffset, int zOffset, int basePlateSize) { - scene.basePlateOffsetX = xOffset; - scene.basePlateOffsetZ = zOffset; - scene.basePlateSize = basePlateSize; - } - - /** - * Use this in case you are not happy with the scale of the scene relative to - * the overlay - * - * @param factor {@literal >}1 will make the scene appear larger, smaller - * otherwise - */ - public void scaleSceneView(float factor) { - scene.scaleFactor = factor; - } - - /** - * Use this in case you are not happy with the vertical alignment of the scene - * relative to the overlay - * - * @param yOffset {@literal >}0 moves the scene up, down otherwise - */ - public void setSceneOffsetY(float yOffset) { - scene.yOffset = yOffset; - } - - /** - * Fade the layer of blocks into the scene ponder assumes to be the base plate - * of the schematic's structure. Makes for a nice opener - */ - public void showBasePlate() { - world.showSection(scene.getSceneBuildingUtil().select.cuboid( - new BlockPos(scene.getBasePlateOffsetX(), 0, scene.getBasePlateOffsetZ()), - new Vec3i(scene.getBasePlateSize() - 1, 0, scene.getBasePlateSize() - 1)), Direction.UP); - } - - /** - * Adds an instruction to the scene. It is recommended to only use this method - * if another method in this class or its subclasses does not already allow - * adding a certain instruction. - */ - public void addInstruction(PonderInstruction instruction) { - scene.schedule.add(instruction); - } - - /** - * Adds a simple instruction to the scene. It is recommended to only use this - * method if another method in this class or its subclasses does not already - * allow adding a certain instruction. - */ - public void addInstruction(Consumer callback) { - addInstruction(PonderInstruction.simple(callback)); - } - - /** - * Before running the upcoming instructions, wait for a duration to let previous - * actions play out.
- * Idle does not stall any animations, only schedules a time gap between - * instructions. - * - * @param ticks Duration to wait for - */ - public void idle(int ticks) { - addInstruction(new DelayInstruction(ticks)); - } - - /** - * Before running the upcoming instructions, wait for a duration to let previous - * actions play out.
- * Idle does not stall any animations, only schedules a time gap between - * instructions. - * - * @param seconds Duration to wait for - */ - public void idleSeconds(int seconds) { - idle(seconds * 20); - } - - /** - * Once the scene reaches this instruction in the timeline, mark it as - * "finished". This happens automatically when the end of a storyboard is - * reached, but can be desirable to do earlier, in order to bypass the wait for - * any residual text windows to time out.
- * So far this event only affects the "next scene" button in the UI to flash. - */ - public void markAsFinished() { - addInstruction(new MarkAsFinishedInstruction()); - } - - /** - * Pans the scene's camera view around the vertical axis by the given amount - * - * @param degrees - */ - public void rotateCameraY(float degrees) { - addInstruction(new RotateSceneInstruction(0, degrees, true)); - } - - /** - * Adds a Key Frame at the end of the last delay() instruction for the users to - * skip to - */ - public void addKeyframe() { - addInstruction(KeyframeInstruction.IMMEDIATE); - } - - /** - * Adds a Key Frame a couple ticks after the last delay() instruction for the - * users to skip to - */ - public void addLazyKeyframe() { - addInstruction(KeyframeInstruction.DELAYED); - } - - public class EffectInstructions { - - public void emitParticles(Vec3 location, Emitter emitter, float amountPerCycle, int cycles) { - addInstruction(new EmitParticlesInstruction(location, emitter, amountPerCycle, cycles)); - } - - public void superGlue(BlockPos pos, Direction side, boolean fullBlock) { - addInstruction(scene -> SuperGlueItem.spawnParticles(scene.getWorld(), pos, side, fullBlock)); - } - - private void rotationIndicator(BlockPos pos, boolean direction) { - addInstruction(scene -> { - BlockState blockState = scene.getWorld() - .getBlockState(pos); - BlockEntity tileEntity = scene.getWorld() - .getBlockEntity(pos); - - if (!(blockState.getBlock() instanceof KineticBlock)) - return; - if (!(tileEntity instanceof KineticTileEntity)) - return; - - KineticTileEntity kte = (KineticTileEntity) tileEntity; - KineticBlock kb = (KineticBlock) blockState.getBlock(); - Axis rotationAxis = kb.getRotationAxis(blockState); - - float speed = kte.getTheoreticalSpeed(); - SpeedLevel speedLevel = SpeedLevel.of(speed); - int color = direction ? speed > 0 ? 0xeb5e0b : 0x1687a7 : speedLevel.getColor(); - int particleSpeed = speedLevel.getParticleSpeed(); - particleSpeed *= Math.signum(speed); - - Vec3 location = VecHelper.getCenterOf(pos); - RotationIndicatorParticleData particleData = new RotationIndicatorParticleData(color, particleSpeed, - kb.getParticleInitialRadius(), kb.getParticleTargetRadius(), 20, rotationAxis.name() - .charAt(0)); - - for (int i = 0; i < 20; i++) - scene.getWorld() - .addParticle(particleData, location.x, location.y, location.z, 0, 0, 0); - }); - } - - public void rotationSpeedIndicator(BlockPos pos) { - rotationIndicator(pos, false); - } - - public void rotationDirectionIndicator(BlockPos pos) { - rotationIndicator(pos, true); - } - - public void indicateRedstone(BlockPos pos) { - createRedstoneParticles(pos, 0xFF0000, 10); - } - - public void indicateSuccess(BlockPos pos) { - createRedstoneParticles(pos, 0x80FFaa, 10); - } - - public void createRedstoneParticles(BlockPos pos, int color, int amount) { - Vector3f rgb = new Color(color).asVectorF(); - addInstruction(new EmitParticlesInstruction(VecHelper.getCenterOf(pos), - Emitter.withinBlockSpace(new DustParticleOptions(rgb, 1), Vec3.ZERO), amount, 2)); - } - - } - - public class OverlayInstructions { - - public TextWindowElement.Builder showText(int duration) { - TextWindowElement textWindowElement = new TextWindowElement(); - addInstruction(new TextInstruction(textWindowElement, duration)); - return textWindowElement.new Builder(scene); - } - - public TextWindowElement.Builder showSelectionWithText(Selection selection, int duration) { - TextWindowElement textWindowElement = new TextWindowElement(); - addInstruction(new TextInstruction(textWindowElement, duration, selection)); - return textWindowElement.new Builder(scene).pointAt(selection.getCenter()); - } - - public void showControls(InputWindowElement element, int duration) { - addInstruction(new ShowInputInstruction(element.clone(), duration)); - } - - public void chaseBoundingBoxOutline(PonderPalette color, Object slot, AABB boundingBox, int duration) { - addInstruction(new ChaseAABBInstruction(color, slot, boundingBox, duration)); - } - - public void showCenteredScrollInput(BlockPos pos, Direction side, int duration) { - showScrollInput(scene.getSceneBuildingUtil().vector.blockSurface(pos, side), side, duration); - } - - public void showScrollInput(Vec3 location, Direction side, int duration) { - Axis axis = side.getAxis(); - float s = 1 / 16f; - float q = 1 / 4f; - Vec3 expands = new Vec3(axis == Axis.X ? s : q, axis == Axis.Y ? s : q, axis == Axis.Z ? s : q); - addInstruction(new HighlightValueBoxInstruction(location, expands, duration)); - } - - public void showRepeaterScrollInput(BlockPos pos, int duration) { - float s = 1 / 16f; - float q = 1 / 6f; - Vec3 expands = new Vec3(q, s, q); - addInstruction( - new HighlightValueBoxInstruction(scene.getSceneBuildingUtil().vector.blockSurface(pos, Direction.DOWN) - .add(0, 3 / 16f, 0), expands, duration)); - } - - public void showFilterSlotInput(Vec3 location, int duration) { - float s = .1f; - Vec3 expands = new Vec3(s, s, s); - addInstruction(new HighlightValueBoxInstruction(location, expands, duration)); - } - - public void showLine(PonderPalette color, Vec3 start, Vec3 end, int duration) { - addInstruction(new LineInstruction(color, start, end, duration, false)); - } - - public void showBigLine(PonderPalette color, Vec3 start, Vec3 end, int duration) { - addInstruction(new LineInstruction(color, start, end, duration, true)); - } - - public void showOutline(PonderPalette color, Object slot, Selection selection, int duration) { - addInstruction(new OutlineSelectionInstruction(color, slot, selection, duration)); - } - - } - - public class SpecialInstructions { - - public ElementLink birbOnTurntable(BlockPos pos) { - return createBirb(VecHelper.getCenterOf(pos), () -> new SpinOnComponentPose(pos)); - } - - public ElementLink birbOnSpinnyShaft(BlockPos pos) { - return createBirb(VecHelper.getCenterOf(pos) - .add(0, 0.5, 0), () -> new SpinOnComponentPose(pos)); - } - - public ElementLink createBirb(Vec3 location, Supplier pose) { - ElementLink link = new ElementLink<>(ParrotElement.class); - ParrotElement parrot = ParrotElement.create(location, pose); - addInstruction(new CreateParrotInstruction(10, Direction.DOWN, parrot)); - addInstruction(scene -> scene.linkElement(parrot, link)); - return link; - } - - public void changeBirbPose(ElementLink birb, Supplier pose) { - addInstruction(scene -> scene.resolve(birb) - .setPose(pose.get())); - } - - public void conductorBirb(ElementLink birb, boolean conductor) { - addInstruction(scene -> scene.resolve(birb) - .setConductor(conductor)); - } - - public void movePointOfInterest(Vec3 location) { - addInstruction(new MovePoiInstruction(location)); - } - - public void movePointOfInterest(BlockPos location) { - movePointOfInterest(VecHelper.getCenterOf(location)); - } - - public void rotateParrot(ElementLink link, double xRotation, double yRotation, double zRotation, - int duration) { - addInstruction(AnimateParrotInstruction.rotate(link, new Vec3(xRotation, yRotation, zRotation), duration)); - } - - public void moveParrot(ElementLink link, Vec3 offset, int duration) { - addInstruction(AnimateParrotInstruction.move(link, offset, duration)); - } - - public ElementLink createCart(Vec3 location, float angle, MinecartConstructor type) { - ElementLink link = new ElementLink<>(MinecartElement.class); - MinecartElement cart = new MinecartElement(location, angle, type); - addInstruction(new CreateMinecartInstruction(10, Direction.DOWN, cart)); - addInstruction(scene -> scene.linkElement(cart, link)); - return link; - } - - public void rotateCart(ElementLink link, float yRotation, int duration) { - addInstruction(AnimateMinecartInstruction.rotate(link, yRotation, duration)); - } - - public void moveCart(ElementLink link, Vec3 offset, int duration) { - addInstruction(AnimateMinecartInstruction.move(link, offset, duration)); - } - - public void hideElement(ElementLink link, Direction direction) { - addInstruction(new FadeOutOfSceneInstruction<>(15, direction, link)); - } - - } - - public class WorldInstructions { - - public void incrementBlockBreakingProgress(BlockPos pos) { - addInstruction(scene -> { - PonderWorld world = scene.getWorld(); - int progress = world.getBlockBreakingProgressions() - .getOrDefault(pos, -1) + 1; - if (progress == 9) { - world.addBlockDestroyEffects(pos, world.getBlockState(pos)); - world.destroyBlock(pos, false); - world.setBlockBreakingProgress(pos, 0); - scene.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); - } else - world.setBlockBreakingProgress(pos, progress + 1); - }); - } - - public void showSection(Selection selection, Direction fadeInDirection) { - addInstruction(new DisplayWorldSectionInstruction(15, fadeInDirection, selection, - Optional.of(scene::getBaseWorldSection))); - } - - public void showSectionAndMerge(Selection selection, Direction fadeInDirection, - ElementLink link) { - addInstruction(new DisplayWorldSectionInstruction(15, fadeInDirection, selection, - Optional.of(() -> scene.resolve(link)))); - } - - public void glueBlockOnto(BlockPos position, Direction fadeInDirection, ElementLink link) { - addInstruction(new DisplayWorldSectionInstruction(15, fadeInDirection, - scene.getSceneBuildingUtil().select.position(position), Optional.of(() -> scene.resolve(link)), - position)); - } - - public ElementLink showIndependentSection(Selection selection, Direction fadeInDirection) { - DisplayWorldSectionInstruction instruction = - new DisplayWorldSectionInstruction(15, fadeInDirection, selection, Optional.empty()); - addInstruction(instruction); - return instruction.createLink(scene); - } - - public ElementLink showIndependentSectionImmediately(Selection selection) { - DisplayWorldSectionInstruction instruction = - new DisplayWorldSectionInstruction(0, Direction.DOWN, selection, Optional.empty()); - addInstruction(instruction); - return instruction.createLink(scene); - } - - public void hideSection(Selection selection, Direction fadeOutDirection) { - WorldSectionElement worldSectionElement = new WorldSectionElement(selection); - ElementLink elementLink = new ElementLink<>(WorldSectionElement.class); - - addInstruction(scene -> { - scene.getBaseWorldSection() - .erase(selection); - scene.linkElement(worldSectionElement, elementLink); - scene.addElement(worldSectionElement); - worldSectionElement.queueRedraw(); - }); - - hideIndependentSection(elementLink, fadeOutDirection); - } - - public void hideIndependentSection(ElementLink link, Direction fadeOutDirection) { - addInstruction(new FadeOutOfSceneInstruction<>(15, fadeOutDirection, link)); - } - - public void restoreBlocks(Selection selection) { - addInstruction(scene -> scene.getWorld() - .restoreBlocks(selection)); - } - - public ElementLink makeSectionIndependent(Selection selection) { - WorldSectionElement worldSectionElement = new WorldSectionElement(selection); - ElementLink elementLink = new ElementLink<>(WorldSectionElement.class); - - addInstruction(scene -> { - scene.getBaseWorldSection() - .erase(selection); - scene.linkElement(worldSectionElement, elementLink); - scene.addElement(worldSectionElement); - worldSectionElement.queueRedraw(); - worldSectionElement.resetAnimatedTransform(); - worldSectionElement.setVisible(true); - worldSectionElement.forceApplyFade(1); - }); - - return elementLink; - } - - public void rotateSection(ElementLink link, double xRotation, double yRotation, - double zRotation, int duration) { - addInstruction( - AnimateWorldSectionInstruction.rotate(link, new Vec3(xRotation, yRotation, zRotation), duration)); - } - - public void configureCenterOfRotation(ElementLink link, Vec3 anchor) { - addInstruction(scene -> scene.resolve(link) - .setCenterOfRotation(anchor)); - } - - public void configureStabilization(ElementLink link, Vec3 anchor) { - addInstruction(scene -> scene.resolve(link) - .stabilizeRotation(anchor)); - } - - public void moveSection(ElementLink link, Vec3 offset, int duration) { - addInstruction(AnimateWorldSectionInstruction.move(link, offset, duration)); - } - - public void rotateBearing(BlockPos pos, float angle, int duration) { - addInstruction(AnimateTileEntityInstruction.bearing(pos, angle, duration)); - } - - public void movePulley(BlockPos pos, float distance, int duration) { - addInstruction(AnimateTileEntityInstruction.pulley(pos, distance, duration)); - } - - public void animateBogey(BlockPos pos, float distance, int duration) { - addInstruction(AnimateTileEntityInstruction.bogey(pos, distance, duration + 1)); - } - - public void moveDeployer(BlockPos pos, float distance, int duration) { - addInstruction(AnimateTileEntityInstruction.deployer(pos, distance, duration)); - } - - public void setBlocks(Selection selection, BlockState state, boolean spawnParticles) { - addInstruction(new ReplaceBlocksInstruction(selection, $ -> state, true, spawnParticles)); - } - - public void destroyBlock(BlockPos pos) { - setBlock(pos, Blocks.AIR.defaultBlockState(), true); - } - - public void setBlock(BlockPos pos, BlockState state, boolean spawnParticles) { - setBlocks(scene.getSceneBuildingUtil().select.position(pos), state, spawnParticles); - } - - public void replaceBlocks(Selection selection, BlockState state, boolean spawnParticles) { - modifyBlocks(selection, $ -> state, spawnParticles); - } - - public void modifyBlock(BlockPos pos, UnaryOperator stateFunc, boolean spawnParticles) { - modifyBlocks(scene.getSceneBuildingUtil().select.position(pos), stateFunc, spawnParticles); - } - - public void cycleBlockProperty(BlockPos pos, Property property) { - modifyBlocks(scene.getSceneBuildingUtil().select.position(pos), - s -> s.hasProperty(property) ? s.cycle(property) : s, false); - } - - public void modifyBlocks(Selection selection, UnaryOperator stateFunc, boolean spawnParticles) { - addInstruction(new ReplaceBlocksInstruction(selection, stateFunc, false, spawnParticles)); - } - - public void toggleRedstonePower(Selection selection) { - modifyBlocks(selection, s -> { - if (s.hasProperty(BlockStateProperties.POWER)) - s = s.setValue(BlockStateProperties.POWER, s.getValue(BlockStateProperties.POWER) == 0 ? 15 : 0); - if (s.hasProperty(BlockStateProperties.POWERED)) - s = s.cycle(BlockStateProperties.POWERED); - if (s.hasProperty(RedstoneTorchBlock.LIT)) - s = s.cycle(RedstoneTorchBlock.LIT); - return s; - }, false); - } - - public void modifyEntities(Class entityClass, Consumer entityCallBack) { - addInstruction(scene -> scene.forEachWorldEntity(entityClass, entityCallBack)); - } - - public void modifyEntitiesInside(Class entityClass, Selection area, - Consumer entityCallBack) { - addInstruction(scene -> scene.forEachWorldEntity(entityClass, e -> { - if (area.test(e.blockPosition())) - entityCallBack.accept(e); - })); - } - - public void modifyEntity(ElementLink link, Consumer entityCallBack) { - addInstruction(scene -> { - EntityElement resolve = scene.resolve(link); - if (resolve != null) - resolve.ifPresent(entityCallBack::accept); - }); - } - - public ElementLink createEntity(Function factory) { - ElementLink link = new ElementLink<>(EntityElement.class, UUID.randomUUID()); - addInstruction(scene -> { - PonderWorld world = scene.getWorld(); - Entity entity = factory.apply(world); - EntityElement handle = new EntityElement(entity); - scene.addElement(handle); - scene.linkElement(handle, link); - world.addFreshEntity(entity); - }); - return link; - } - - public ElementLink createItemEntity(Vec3 location, Vec3 motion, ItemStack stack) { - return createEntity(world -> { - ItemEntity itemEntity = new ItemEntity(world, location.x, location.y, location.z, stack); - itemEntity.setDeltaMovement(motion); - return itemEntity; - }); - } - - public void createItemOnBeltLike(BlockPos location, Direction insertionSide, ItemStack stack) { - addInstruction(scene -> { - PonderWorld world = scene.getWorld(); - BlockEntity tileEntity = world.getBlockEntity(location); - if (!(tileEntity instanceof SmartTileEntity)) - return; - SmartTileEntity beltTileEntity = (SmartTileEntity) tileEntity; - DirectBeltInputBehaviour behaviour = beltTileEntity.getBehaviour(DirectBeltInputBehaviour.TYPE); - if (behaviour == null) - return; - behaviour.handleInsertion(stack, insertionSide.getOpposite(), false); - }); - flapFunnel(location.above(), true); - } - - public ElementLink createItemOnBelt(BlockPos beltLocation, Direction insertionSide, - ItemStack stack) { - ElementLink link = new ElementLink<>(BeltItemElement.class); - addInstruction(scene -> { - PonderWorld world = scene.getWorld(); - BlockEntity tileEntity = world.getBlockEntity(beltLocation); - if (!(tileEntity instanceof BeltTileEntity)) - return; - - BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity; - DirectBeltInputBehaviour behaviour = beltTileEntity.getBehaviour(DirectBeltInputBehaviour.TYPE); - behaviour.handleInsertion(stack, insertionSide.getOpposite(), false); - - BeltTileEntity controllerTE = beltTileEntity.getControllerTE(); - if (controllerTE != null) - controllerTE.tick(); - - TransportedItemStackHandlerBehaviour transporter = - beltTileEntity.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE); - transporter.handleProcessingOnAllItems(tis -> { - BeltItemElement tracker = new BeltItemElement(tis); - scene.addElement(tracker); - scene.linkElement(tracker, link); - return TransportedResult.doNothing(); - }); - }); - flapFunnel(beltLocation.above(), true); - return link; - } - - public void removeItemsFromBelt(BlockPos beltLocation) { - addInstruction(scene -> { - PonderWorld world = scene.getWorld(); - BlockEntity tileEntity = world.getBlockEntity(beltLocation); - if (!(tileEntity instanceof SmartTileEntity)) - return; - SmartTileEntity beltTileEntity = (SmartTileEntity) tileEntity; - TransportedItemStackHandlerBehaviour transporter = - beltTileEntity.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE); - if (transporter == null) - return; - transporter.handleCenteredProcessingOnAllItems(.52f, tis -> TransportedResult.removeItem()); - }); - } - - public void stallBeltItem(ElementLink link, boolean stalled) { - addInstruction(scene -> { - BeltItemElement resolve = scene.resolve(link); - if (resolve != null) - resolve.ifPresent(tis -> tis.locked = stalled); - }); - } - - public void changeBeltItemTo(ElementLink link, ItemStack newStack) { - addInstruction(scene -> { - BeltItemElement resolve = scene.resolve(link); - if (resolve != null) - resolve.ifPresent(tis -> tis.stack = newStack); - }); - } - - public void setKineticSpeed(Selection selection, float speed) { - modifyKineticSpeed(selection, f -> speed); - } - - public void multiplyKineticSpeed(Selection selection, float modifier) { - modifyKineticSpeed(selection, f -> f * modifier); - } - - public void modifyKineticSpeed(Selection selection, UnaryOperator speedFunc) { - modifyTileNBT(selection, SpeedGaugeTileEntity.class, nbt -> { - float newSpeed = speedFunc.apply(nbt.getFloat("Speed")); - nbt.putFloat("Value", SpeedGaugeTileEntity.getDialTarget(newSpeed)); - }); - modifyTileNBT(selection, KineticTileEntity.class, nbt -> { - nbt.putFloat("Speed", speedFunc.apply(nbt.getFloat("Speed"))); - }); - } - - public void propagatePipeChange(BlockPos pos) { - modifyTileEntity(pos, PumpTileEntity.class, te -> te.onSpeedChanged(0)); - } - - public void setFilterData(Selection selection, Class teType, ItemStack filter) { - modifyTileNBT(selection, teType, nbt -> { - nbt.put("Filter", filter.serializeNBT()); - }); - } - - public void modifyTileNBT(Selection selection, Class teType, - Consumer consumer) { - modifyTileNBT(selection, teType, consumer, false); - } - - public void modifyTileEntity(BlockPos position, Class teType, Consumer consumer) { - addInstruction(scene -> { - BlockEntity tileEntity = scene.getWorld() - .getBlockEntity(position); - if (teType.isInstance(tileEntity)) - consumer.accept(teType.cast(tileEntity)); - }); - } - - public void modifyTileNBT(Selection selection, Class teType, - Consumer consumer, boolean reDrawBlocks) { - addInstruction(new TileEntityDataInstruction(selection, teType, nbt -> { - consumer.accept(nbt); - return nbt; - }, reDrawBlocks)); - } - - public void instructArm(BlockPos armLocation, ArmTileEntity.Phase phase, ItemStack heldItem, - int targetedPoint) { - modifyTileNBT(scene.getSceneBuildingUtil().select.position(armLocation), ArmTileEntity.class, compound -> { - NBTHelper.writeEnum(compound, "Phase", phase); - compound.put("HeldItem", heldItem.serializeNBT()); - compound.putInt("TargetPointIndex", targetedPoint); - compound.putFloat("MovementProgress", 0); - }); - } - - public void flapFunnel(BlockPos position, boolean outward) { - modifyTileEntity(position, FunnelTileEntity.class, funnel -> funnel.flap(!outward)); - } - - public void setCraftingResult(BlockPos crafter, ItemStack output) { - modifyTileEntity(crafter, MechanicalCrafterTileEntity.class, mct -> mct.setScriptedResult(output)); - } - - public void connectCrafterInvs(BlockPos position1, BlockPos position2) { - addInstruction(s -> { - ConnectedInputHandler.toggleConnection(s.getWorld(), position1, position2); - s.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); - }); - } - - public void toggleControls(BlockPos position) { - cycleBlockProperty(position, ControlsBlock.VIRTUAL); - } - - public void animateTrainStation(BlockPos position, boolean trainPresent) { - modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), StationTileEntity.class, - c -> c.putBoolean("ForceFlag", trainPresent)); - } - - public void conductorBlaze(BlockPos position, boolean conductor) { - modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), BlazeBurnerTileEntity.class, - c -> c.putBoolean("TrainHat", conductor)); - } - - public void changeSignalState(BlockPos position, SignalState state) { - modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), SignalTileEntity.class, - c -> NBTHelper.writeEnum(c, "State", state)); - } - - public void setDisplayBoardText(BlockPos position, int line, Component text) { - modifyTileEntity(position, FlapDisplayTileEntity.class, - t -> t.applyTextManually(line, Component.Serializer.toJson(text))); - } - - public void dyeDisplayBoard(BlockPos position, int line, DyeColor color) { - modifyTileEntity(position, FlapDisplayTileEntity.class, t -> t.setColour(line, color)); - } - - public void flashDisplayLink(BlockPos position) { - modifyTileEntity(position, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2)); - } - - } - - public class DebugInstructions { - - public void debugSchematic() { - addInstruction( - scene -> scene.addElement(new WorldSectionElement(scene.getSceneBuildingUtil().select.everywhere()))); - } - - public void addInstructionInstance(PonderInstruction instruction) { - addInstruction(instruction); - } - - public void enqueueCallback(Consumer callback) { - addInstruction(callback); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuildingUtil.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuildingUtil.java deleted file mode 100644 index 5abc667ad..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuildingUtil.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Vec3i; -import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraft.world.phys.Vec3; - -/** - * Helpful shortcuts for marking boundaries, points or sections inside the scene - */ -public class SceneBuildingUtil { - - public final SelectionUtil select; - public final VectorUtil vector; - public final PositionUtil grid; - - private final BoundingBox sceneBounds; - - SceneBuildingUtil(BoundingBox sceneBounds) { - this.sceneBounds = sceneBounds; - this.select = new SelectionUtil(); - this.vector = new VectorUtil(); - this.grid = new PositionUtil(); - } - - public class PositionUtil { - - public BlockPos at(int x, int y, int z) { - return new BlockPos(x, y, z); - } - - public BlockPos zero() { - return at(0, 0, 0); - } - - } - - public class VectorUtil { - - public Vec3 centerOf(int x, int y, int z) { - return centerOf(grid.at(x, y, z)); - } - - public Vec3 centerOf(BlockPos pos) { - return VecHelper.getCenterOf(pos); - } - - public Vec3 topOf(int x, int y, int z) { - return blockSurface(grid.at(x, y, z), Direction.UP); - } - - public Vec3 topOf(BlockPos pos) { - return blockSurface(pos, Direction.UP); - } - - public Vec3 blockSurface(BlockPos pos, Direction face) { - return blockSurface(pos, face, 0); - } - - public Vec3 blockSurface(BlockPos pos, Direction face, float margin) { - return centerOf(pos).add(Vec3.atLowerCornerOf(face.getNormal()) - .scale(.5f + margin)); - } - - public Vec3 of(double x, double y, double z) { - return new Vec3(x, y, z); - } - - } - - public class SelectionUtil { - - public Selection everywhere() { - return Selection.of(sceneBounds); - } - - public Selection position(int x, int y, int z) { - return position(grid.at(x, y, z)); - } - - public Selection position(BlockPos pos) { - return cuboid(pos, BlockPos.ZERO); - } - - public Selection fromTo(int x, int y, int z, int x2, int y2, int z2) { - return fromTo(new BlockPos(x, y, z), new BlockPos(x2, y2, z2)); - } - - public Selection fromTo(BlockPos pos1, BlockPos pos2) { - return cuboid(pos1, pos2.subtract(pos1)); - } - - public Selection column(int x, int z) { - return cuboid(new BlockPos(x, 1, z), new Vec3i(0, sceneBounds.getYSpan(), 0)); - } - - public Selection layer(int y) { - return layers(y, 1); - } - - public Selection layersFrom(int y) { - return layers(y, sceneBounds.getYSpan() - y); - } - - public Selection layers(int y, int height) { - return cuboid(new BlockPos(0, y, 0), new Vec3i(sceneBounds.getXSpan() - 1, - Math.min(sceneBounds.getYSpan() - y, height) - 1, sceneBounds.getZSpan() - 1)); - } - - public Selection cuboid(BlockPos origin, Vec3i size) { - return Selection.of(BoundingBox.fromCorners(origin, origin.offset(size))); - } - - } - -} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/foundation/ponder/Selection.java b/src/main/java/com/simibubi/create/foundation/ponder/Selection.java deleted file mode 100644 index de4e32d5b..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/Selection.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.simibubi.create.foundation.ponder; - -import java.util.HashSet; -import java.util.Set; -import java.util.function.Consumer; -import java.util.function.Predicate; - -import com.simibubi.create.foundation.utility.outliner.Outline.OutlineParams; -import com.simibubi.create.foundation.utility.outliner.Outliner; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -public abstract class Selection implements Predicate { - - public static Selection of(BoundingBox bb) { - return new Simple(bb); - } - - public abstract Selection add(Selection other); - - public abstract Selection substract(Selection other); - - public abstract Selection copy(); - - public abstract Vec3 getCenter(); - - public abstract void forEach(Consumer callback); - - public abstract OutlineParams makeOutline(Outliner outliner, Object slot); - - public OutlineParams makeOutline(Outliner outliner) { - return makeOutline(outliner, this); - } - - private static class Compound extends Selection { - - Set posSet; - Vec3 center; - - public Compound(Simple initial) { - posSet = new HashSet<>(); - add(initial); - } - - private Compound(Set template) { - posSet = new HashSet<>(template); - } - - @Override - public boolean test(BlockPos t) { - return posSet.contains(t); - } - - @Override - public Selection add(Selection other) { - other.forEach(p -> posSet.add(p.immutable())); - center = null; - return this; - } - - @Override - public Selection substract(Selection other) { - other.forEach(p -> posSet.remove(p.immutable())); - center = null; - return this; - } - - @Override - public void forEach(Consumer callback) { - posSet.forEach(callback); - } - - @Override - public OutlineParams makeOutline(Outliner outliner, Object slot) { - return outliner.showCluster(slot, posSet); - } - - @Override - public Vec3 getCenter() { - return center == null ? center = evalCenter() : center; - } - - private Vec3 evalCenter() { - Vec3 center = Vec3.ZERO; - if (posSet.isEmpty()) - return center; - for (BlockPos blockPos : posSet) - center = center.add(Vec3.atLowerCornerOf(blockPos)); - center = center.scale(1f / posSet.size()); - return center.add(new Vec3(.5, .5, .5)); - } - - @Override - public Selection copy() { - return new Compound(posSet); - } - - } - - private static class Simple extends Selection { - - private BoundingBox bb; - private AABB aabb; - - public Simple(BoundingBox bb) { - this.bb = bb; - this.aabb = getAABB(); - } - - @Override - public boolean test(BlockPos t) { - return bb.isInside(t); - } - - @Override - public Selection add(Selection other) { - return new Compound(this).add(other); - } - - @Override - public Selection substract(Selection other) { - return new Compound(this).substract(other); - } - - @Override - public void forEach(Consumer callback) { - BlockPos.betweenClosedStream(bb) - .forEach(callback); - } - - @Override - public Vec3 getCenter() { - return aabb.getCenter(); - } - - @Override - public OutlineParams makeOutline(Outliner outliner, Object slot) { - return outliner.showAABB(slot, aabb); - } - - private AABB getAABB() { - return new AABB(bb.minX(), bb.minY(), bb.minZ(), bb.maxX() + 1, bb.maxY() + 1, bb.maxZ() + 1); - } - - @Override - public Selection copy() { - return new Simple(new BoundingBox(bb.minX(), bb.minY(), bb.minZ(), bb.maxX(), bb.maxY(), bb.maxZ())); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ArmScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ArmScenes.java index ee25578c2..380cdaa86 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ArmScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ArmScenes.java @@ -1,18 +1,21 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity.Phase; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; + +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.catnip.utility.Pointing; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -24,7 +27,8 @@ import net.minecraft.world.phys.Vec3; public class ArmScenes { - public static void setup(SceneBuilder scene, SceneBuildingUtil util) { + public static void setup(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_arm", "Setting up Mechanical Arms"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -242,7 +246,8 @@ public class ArmScenes { } - public static void filtering(SceneBuilder scene, SceneBuildingUtil util) { + public static void filtering(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_arm_filtering", "Filtering Outputs of the Mechanical Arm"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(0.9f); @@ -263,7 +268,7 @@ public class ArmScenes { scene.idle(2); } } - + scene.world.showSection(util.select.position(6, 1, 1), Direction.WEST); scene.world.showSection(util.select.position(2, 1, 1), Direction.EAST); @@ -380,7 +385,8 @@ public class ArmScenes { scene.idle(120); } - public static void modes(SceneBuilder scene, SceneBuildingUtil util) { + public static void modes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_arm_modes", "Distribution modes of the Mechanical Arm"); scene.configureBasePlate(0, 1, 5); scene.world.setBlock(util.grid.at(3, 1, 0), Blocks.BARRIER.defaultBlockState(), false); @@ -435,7 +441,7 @@ public class ArmScenes { scene.idle(60); scene.overlay.showControls(new InputWindowElement(scrollSlot, Pointing.RIGHT).scroll() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(10); scene.overlay.showText(50) .text("Scrolling with a Wrench will allow you to configure it") @@ -526,7 +532,8 @@ public class ArmScenes { } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_arm_redstone", "Controlling Mechanical Arms with Redstone"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/BearingScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/BearingScenes.java index a15bcc77c..fcc9fe791 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/BearingScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/BearingScenes.java @@ -5,15 +5,17 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.actors.HarvesterTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlock; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; + +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -30,7 +32,8 @@ import net.minecraft.world.phys.Vec3; public class BearingScenes { - public static void windmillsAsSource(SceneBuilder scene, SceneBuildingUtil util) { + public static void windmillsAsSource(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("windmill_source", "Generating Rotational Force using Windmill Bearings"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -150,7 +153,7 @@ public class BearingScenes { Vec3 surface = util.vector.blockSurface(windmill, Direction.WEST); scene.overlay.showControls(new InputWindowElement(surface, Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.overlay.showCenteredScrollInput(windmill, Direction.WEST, 50); scene.overlay.showText(60) .pointAt(surface) @@ -181,7 +184,8 @@ public class BearingScenes { } - public static void windmillsAnyStructure(SceneBuilder scene, SceneBuildingUtil util) { + public static void windmillsAnyStructure(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("windmill_structure", "Windmill Contraptions"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -232,7 +236,8 @@ public class BearingScenes { scene.world.modifyTileEntity(util.grid.at(2, 1, 5), HarvesterTileEntity.class, hte -> hte.setAnimatedSpeed(0)); } - public static void mechanicalBearing(SceneBuilder scene, SceneBuildingUtil util) { + public static void mechanicalBearing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_bearing", "Movings Structures using the Mechanical Bearing"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -323,7 +328,8 @@ public class BearingScenes { scene.world.setKineticSpeed(all, 0); } - public static void bearingModes(SceneBuilder scene, SceneBuildingUtil util) { + public static void bearingModes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("bearing_modes", "Movement Modes of the Mechanical Bearing"); scene.configureBasePlate(1, 1, 6); scene.setSceneOffsetY(-1); @@ -382,7 +388,7 @@ public class BearingScenes { scene.overlay.showCenteredScrollInput(bearingPos, Direction.NORTH, 60); scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(bearingPos, Direction.NORTH), Pointing.DOWN).scroll() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 60); scene.idle(10); scene.overlay.showText(60) @@ -412,7 +418,8 @@ public class BearingScenes { } - public static void stabilizedBearings(SceneBuilder scene, SceneBuildingUtil util) { + public static void stabilizedBearings(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("stabilized_bearings", "Stabilized Contraptions"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -485,7 +492,8 @@ public class BearingScenes { scene.world.setKineticSpeed(beltAndBearing, 0); } - public static void clockwork(SceneBuilder scene, SceneBuildingUtil util) { + public static void clockwork(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("clockwork_bearing", "Animating Structures using Clockwork Bearings"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -638,7 +646,8 @@ public class BearingScenes { sails(scene, util, true); } - private static void sails(SceneBuilder scene, SceneBuildingUtil util, boolean frame) { + private static void sails(SceneBuilder builder, SceneBuildingUtil util, boolean frame) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); String plural = frame ? "Sail Frames" : "Sails"; scene.title(frame ? "sail_frame" : "sail", "Assembling Windmills using " + plural); scene.configureBasePlate(0, 0, 5); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/BeltScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/BeltScenes.java index 9739f37ca..4bf29e884 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/BeltScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/BeltScenes.java @@ -14,20 +14,21 @@ import com.simibubi.create.content.contraptions.relays.belt.BeltPart; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity.Phase; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FaceCursorPose; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FaceCursorPose; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -42,7 +43,8 @@ import net.minecraft.world.phys.Vec3; public class BeltScenes { - public static void beltConnector(SceneBuilder scene, SceneBuildingUtil util) { + public static void beltConnector(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("belt_connector", "Using Mechanical Belts"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -145,7 +147,7 @@ public class BeltScenes { scene.idle(20); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(shaftLocation), Pointing.DOWN).rightClick() - .withWrench(), 50); + .withItem(AllItems.WRENCH.asStack()), 50); scene.idle(7); scene.world.modifyBlock(shaftLocation, s -> s.setValue(BeltBlock.PART, BeltPart.MIDDLE), true); scene.idle(10); @@ -320,7 +322,8 @@ public class BeltScenes { scene.markAsFinished(); } - public static void transport(SceneBuilder scene, SceneBuildingUtil util) { + public static void transport(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("belt_transport", "Using Mechanical Belts for Logistics"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); @@ -472,7 +475,7 @@ public class BeltScenes { scene.overlay .showControls(new InputWindowElement(util.vector.topOf(beltPos.south()), Pointing.DOWN).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.modifyBlock(beltPos.south(), s -> s.setValue(BeltBlock.CASING, false), true); scene.overlay.showText(80) @@ -481,7 +484,8 @@ public class BeltScenes { .pointAt(util.vector.blockSurface(beltPos.south(), Direction.WEST)); } - public static void depot(SceneBuilder scene, SceneBuildingUtil util) { + public static void depot(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("depot", "Using Depots"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java index 90351ed32..6177d3a0c 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java @@ -4,18 +4,19 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssembleRailType; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.MinecartElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.MinecartElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -31,7 +32,8 @@ import net.minecraft.world.phys.Vec3; public class CartAssemblerScenes { - public static void anchor(SceneBuilder scene, SceneBuildingUtil util) { + public static void anchor(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cart_assembler", "Moving Structures using Cart Assemblers"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); @@ -148,7 +150,7 @@ public class CartAssemblerScenes { Vec3 cartCenter = util.vector.centerOf(assemblerPos.north(2)); scene.overlay.showControls(new InputWindowElement(cartCenter, Pointing.LEFT).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.special.moveCart(cart, util.vector.of(0, -100, 4), 0); scene.world.moveSection(anchor, util.vector.of(0, -100, 4), 0); @@ -177,7 +179,8 @@ public class CartAssemblerScenes { scene.world.moveSection(contraption, util.vector.of(0, -.5, 0), 5); } - public static void modes(SceneBuilder scene, SceneBuildingUtil util) { + public static void modes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cart_assembler_modes", "Orientation Settings for Minecart Contraptions"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -259,7 +262,7 @@ public class CartAssemblerScenes { .add(0, 0, -2 / 16f); scene.overlay.showScrollInput(blockSurface, Direction.NORTH, 60); scene.overlay.showControls(new InputWindowElement(blockSurface, Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.idle(10); scene.overlay.showText(60) .pointAt(util.vector.of(3, 1.5, 3)) @@ -413,7 +416,8 @@ public class CartAssemblerScenes { } - public static void rails(SceneBuilder scene, SceneBuildingUtil util) { + public static void rails(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cart_assembler_rails", "Other types of Minecarts and Rails"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(.9f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ChainDriveScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ChainDriveScenes.java index 73984829c..c7b2768d5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ChainDriveScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ChainDriveScenes.java @@ -1,17 +1,19 @@ package com.simibubi.create.foundation.ponder.content; +import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.relays.encased.EncasedBeltBlock; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.TextWindowElement.Builder; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.TextWindowElement.Builder; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -20,7 +22,8 @@ import net.minecraft.world.phys.AABB; public class ChainDriveScenes { - public static void chainDriveAsRelay(SceneBuilder scene, SceneBuildingUtil util) { + public static void chainDriveAsRelay(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("chain_drive", "Relaying rotational force with Chain Drives"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -76,7 +79,7 @@ public class ChainDriveScenes { scene.addKeyframe(); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(rotatedECD), Pointing.DOWN).rightClick() - .withWrench(), 30); + .withItem(AllItems.WRENCH.asStack()), 30); scene.idle(7); scene.world.modifyBlock(rotatedECD, s -> s.setValue(EncasedBeltBlock.AXIS, Axis.Y), true); scene.idle(40); @@ -94,7 +97,8 @@ public class ChainDriveScenes { scene.markAsFinished(); } - public static void adjustableChainGearshift(SceneBuilder scene, SceneBuildingUtil util) { + public static void adjustableChainGearshift(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("chain_gearshift", "Controlling rotational speed with Chain Gearshifts"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); @@ -255,14 +259,14 @@ public class ChainDriveScenes { for (BlockPos gauge : new BlockPos[] { eastGauge, middleGauge, westGauge }) { scene.idle(5); - Builder builder = scene.overlay.showText(180) + Builder textBuilder = scene.overlay.showText(180) .colored(gauge == westGauge ? PonderPalette.SLOW : PonderPalette.MEDIUM) .placeNearTarget() .pointAt(util.vector.blockSurface(gauge, Direction.NORTH)); if (gauge == westGauge) - builder.text("12 RPM"); + textBuilder.text("12 RPM"); else - builder.sharedText(gauge == eastGauge ? "rpm16_source" : "rpm16"); + textBuilder.sharedText(gauge == eastGauge ? "rpm16_source" : "rpm16"); } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ChassisScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ChassisScenes.java index f1fcde366..50bfefa67 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ChassisScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ChassisScenes.java @@ -5,15 +5,16 @@ import org.apache.commons.lang3.mutable.MutableObject; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -24,7 +25,8 @@ import net.minecraft.world.phys.Vec3; public class ChassisScenes { - public static void linearGroup(SceneBuilder scene, SceneBuildingUtil util) { + public static void linearGroup(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("linear_chassis_group", "Moving Linear Chassis in groups"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -89,7 +91,8 @@ public class ChassisScenes { scene.idle(50); } - public static void linearAttachement(SceneBuilder scene, SceneBuildingUtil util) { + public static void linearAttachement(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("linear_chassis_attachment", "Attaching blocks using Linear Chassis"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); @@ -183,7 +186,7 @@ public class ChassisScenes { Vec3 blockSurface = util.vector.blockSurface(chassisPos, Direction.NORTH); scene.overlay.showCenteredScrollInput(chassisPos, Direction.NORTH, 50); scene.overlay.showControls(new InputWindowElement(blockSurface, Pointing.UP).scroll() - .withWrench(), 50); + .withItem(AllItems.WRENCH.asStack()), 50); scene.idle(10); scene.overlay.showOutline(PonderPalette.WHITE, chassis, column3, 20); @@ -216,7 +219,7 @@ public class ChassisScenes { scene.overlay.showCenteredScrollInput(chassisPos, Direction.NORTH, 50); scene.overlay.showControls(new InputWindowElement(blockSurface, Pointing.UP).whileCTRL() .scroll() - .withWrench(), 50); + .withItem(AllItems.WRENCH.asStack()), 50); column1 = util.select.fromTo(1, 3, 2, 3, 3, 2); column2 = util.select.fromTo(1, 3, 2, 3, 4, 2); @@ -291,7 +294,8 @@ public class ChassisScenes { scene.world.rotateSection(chain, 0, 720, 0, 160); } - public static void radial(SceneBuilder scene, SceneBuildingUtil util) { + public static void radial(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("radial_chassis", "Attaching blocks using Radial Chassis"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); @@ -442,7 +446,7 @@ public class ChassisScenes { blockSurface = util.vector.topOf(chassisPos); scene.overlay.showCenteredScrollInput(chassisPos, Direction.UP, 50); scene.overlay.showControls(new InputWindowElement(blockSurface, Pointing.DOWN).scroll() - .withWrench(), 50); + .withItem(AllItems.WRENCH.asStack()), 50); scene.idle(10); scene.overlay.showOutline(PonderPalette.WHITE, chassis, r2, 20); @@ -483,7 +487,8 @@ public class ChassisScenes { .text("Blocks not reachable by any sticky face will not attach"); } - public static void superGlue(SceneBuilder scene, SceneBuildingUtil util) { + public static void superGlue(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("super_glue", "Attaching blocks using Super Glue"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ChuteScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ChuteScenes.java index 61f607240..c0e374e6d 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ChuteScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ChuteScenes.java @@ -7,16 +7,17 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.block.chute.ChuteBlock; import com.simibubi.create.content.logistics.block.chute.ChuteBlock.Shape; import com.simibubi.create.content.logistics.block.chute.SmartChuteTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -28,7 +29,8 @@ import net.minecraft.world.phys.Vec3; public class ChuteScenes { - public static void downward(SceneBuilder scene, SceneBuildingUtil util) { + public static void downward(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("chute", "Transporting Items downward via Chutes"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); @@ -63,7 +65,7 @@ public class ChuteScenes { scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 3, 2), Direction.NORTH), Pointing.RIGHT) .rightClick() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.modifyBlock(util.grid.at(3, 3, 3), s -> s.setValue(ChuteBlock.SHAPE, ChuteBlock.Shape.WINDOW), false); @@ -139,7 +141,8 @@ public class ChuteScenes { scene.markAsFinished(); } - public static void upward(SceneBuilder scene, SceneBuildingUtil util) { + public static void upward(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("chute_upward", "Transporting Items upward via Chutes"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); @@ -189,7 +192,8 @@ public class ChuteScenes { scene.world.createItemOnBeltLike(util.grid.at(1, 2, 2), Direction.EAST, stack); } - public static void smart(SceneBuilder scene, SceneBuildingUtil util) { + public static void smart(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("smart_chute", "Filtering Items using Smart Chutes"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/CrafterScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/CrafterScenes.java index 7bfe68a54..5b8df66d6 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/CrafterScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/CrafterScenes.java @@ -6,15 +6,17 @@ import com.google.common.collect.ImmutableList; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlock; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; + +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.catnip.utility.Couple; +import net.createmod.catnip.utility.Pointing; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -28,7 +30,8 @@ import net.minecraftforge.items.ItemHandlerHelper; public class CrafterScenes { - public static void setup(SceneBuilder scene, SceneBuildingUtil util) { + public static void setup(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_crafter", "Setting up Mechanical Crafters"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -59,7 +62,7 @@ public class CrafterScenes { scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 3, 2), Direction.NORTH), Pointing.RIGHT) .rightClick() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.cycleBlockProperty(util.grid.at(2, 3, 2), MechanicalCrafterBlock.POINTING); @@ -76,7 +79,7 @@ public class CrafterScenes { for (BlockPos pos : positions) { scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(pos, Direction.NORTH), Pointing.RIGHT).rightClick() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 10); scene.idle(7); scene.world.cycleBlockProperty(pos, MechanicalCrafterBlock.POINTING); @@ -234,7 +237,8 @@ public class CrafterScenes { scene.world.toggleRedstonePower(redstone); } - public static void connect(SceneBuilder scene, SceneBuildingUtil util) { + public static void connect(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_crafter_connect", "Connecting Inventories of Crafters"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -285,7 +289,7 @@ public class CrafterScenes { scene.overlay.chaseBoundingBoxOutline(PonderPalette.WHITE, new Object(), bb, 45); scene.overlay.showControls(new InputWindowElement(v, Pointing.LEFT).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.connectCrafterInvs(util.grid.at(2, 2, 2), util.grid.at(1, 2, 2)); scene.idle(40); @@ -296,22 +300,22 @@ public class CrafterScenes { .text("Using the Wrench at their backs, Mechanical Crafter inputs can be combined"); scene.idle(80); scene.overlay.showControls(new InputWindowElement(v.add(0, 1, 0), Pointing.LEFT).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(7); scene.world.connectCrafterInvs(util.grid.at(2, 3, 2), util.grid.at(1, 3, 2)); scene.idle(20); scene.overlay.showControls(new InputWindowElement(v.add(0, -1, 0), Pointing.LEFT).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(7); scene.world.connectCrafterInvs(util.grid.at(2, 1, 2), util.grid.at(1, 1, 2)); scene.idle(20); scene.overlay.showControls(new InputWindowElement(v.add(.5, -.5, 0), Pointing.LEFT).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(7); scene.world.connectCrafterInvs(util.grid.at(2, 1, 2), util.grid.at(2, 2, 2)); scene.idle(10); scene.overlay.showControls(new InputWindowElement(v.add(.5, .5, 0), Pointing.LEFT).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(7); scene.world.connectCrafterInvs(util.grid.at(2, 2, 2), util.grid.at(2, 3, 2)); scene.idle(20); @@ -343,7 +347,9 @@ public class CrafterScenes { } - public static void covers(SceneBuilder scene, SceneBuildingUtil util) { + public static void covers(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); + scene.title("mechanical_crafter_covers", "Covering slots of Mechanical Crafters"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java deleted file mode 100644 index 196bb65a6..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java +++ /dev/null @@ -1,451 +0,0 @@ -package com.simibubi.create.foundation.ponder.content; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllItems; -import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; -import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry.PonderStoryBoard; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.DancePose; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; -import com.tterrag.registrate.util.entry.ItemEntry; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -public class DebugScenes { - - private static int index; - - public static void registerAll() { - index = 1; - add(DebugScenes::coordinateScene); - add(DebugScenes::blocksScene); - add(DebugScenes::fluidsScene); - add(DebugScenes::offScreenScene); - add(DebugScenes::particleScene); - add(DebugScenes::controlsScene); - add(DebugScenes::birbScene); - add(DebugScenes::sectionsScene); - add(DebugScenes::itemScene); - add(DebugScenes::pipeScene); - } - - private static void add(PonderStoryBoard sb) { - ItemEntry item = AllItems.BRASS_HAND; - String schematicPath = "debug/scene_" + index; - PonderIndex.HELPER.addStoryBoard(item, schematicPath, sb) - .highlightAllTags() - .chapter(PonderIndex.HELPER.getOrCreateChapter("debug")); - index++; - } - - public static void empty(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_empty", "Missing Content"); - scene.showBasePlate(); - scene.idle(5); - } - - public static void coordinateScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_coords", "Coordinate Space"); - scene.showBasePlate(); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - - Selection xAxis = util.select.fromTo(2, 1, 1, 4, 1, 1); - Selection yAxis = util.select.fromTo(1, 2, 1, 1, 4, 1); - Selection zAxis = util.select.fromTo(1, 1, 2, 1, 1, 4); - - scene.idle(10); - scene.overlay.showSelectionWithText(xAxis, 20) - .colored(PonderPalette.RED) - .text("Das X axis"); - scene.idle(20); - scene.overlay.showSelectionWithText(yAxis, 20) - .colored(PonderPalette.GREEN) - .text("Das Y axis"); - scene.idle(20); - scene.overlay.showSelectionWithText(zAxis, 20) - .colored(PonderPalette.BLUE) - .text("Das Z axis"); - } - - public static void blocksScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_blocks", "Changing Blocks"); - scene.showBasePlate(); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - scene.idle(10); - scene.overlay.showText(1000) - .independent(10) - .text("Blocks can be modified"); - scene.idle(20); - scene.world.replaceBlocks(util.select.fromTo(1, 1, 3, 2, 2, 4), - AllBlocks.REFINED_RADIANCE_CASING.getDefaultState(), true); - scene.idle(10); - scene.world.replaceBlocks(util.select.position(3, 1, 1), Blocks.GOLD_BLOCK.defaultBlockState(), true); - scene.rotateCameraY(180); - scene.markAsFinished(); - } - - public static void fluidsScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_fluids", "Showing Fluids"); - scene.showBasePlate(); - scene.idle(10); - Vec3 parrotPos = util.vector.topOf(1, 0, 1); - scene.special.createBirb(parrotPos, FacePointOfInterestPose::new); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - scene.overlay.showText(1000) - .text("Fluid rendering test.") - .pointAt(new Vec3(1, 2.5, 4.5)); - scene.markAsFinished(); - - Object outlineSlot = new Object(); - - Vec3 vec1 = util.vector.topOf(1, 0, 0); - Vec3 vec2 = util.vector.topOf(0, 0, 1); - AABB boundingBox1 = new AABB(vec1, vec1).expandTowards(0, 2.5, 0) - .inflate(.15, 0, .15); - AABB boundingBox2 = new AABB(vec2, vec2).expandTowards(0, .125, 0) - .inflate(.45, 0, .45); - Vec3 poi1 = boundingBox1.getCenter(); - Vec3 poi2 = boundingBox2.getCenter(); - - for (int i = 0; i < 10; i++) { - scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, outlineSlot, - i % 2 == 0 ? boundingBox1 : boundingBox2, 15); - scene.idle(3); - scene.special.movePointOfInterest(i % 2 == 0 ? poi1 : poi2); - scene.idle(12); - } - - scene.idle(12); - scene.special.movePointOfInterest(util.grid.at(-4, 5, 4)); - scene.overlay.showText(40) - .colored(PonderPalette.RED) - .text("wut?") - .pointAt(parrotPos.add(-.25f, 0.25f, .25f)); - - } - - public static void offScreenScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_baseplate", "Out of bounds / configureBasePlate"); - scene.configureBasePlate(1, 0, 6); - scene.showBasePlate(); - - Selection out1 = util.select.fromTo(7, 0, 0, 8, 0, 5); - Selection out2 = util.select.fromTo(0, 0, 0, 0, 0, 5); - Selection blocksExceptBasePlate = util.select.layersFrom(1) - .add(out1) - .add(out2); - - scene.idle(10); - scene.world.showSection(blocksExceptBasePlate, Direction.DOWN); - scene.idle(10); - - scene.overlay.showSelectionWithText(out1, 100) - .colored(PonderPalette.BLACK) - .text("Blocks outside of the base plate do not affect scaling"); - scene.overlay.showSelectionWithText(out2, 100) - .colored(PonderPalette.BLACK) - .text("configureBasePlate() makes sure of that."); - scene.markAsFinished(); - } - - public static void particleScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_particles", "Emitting particles"); - scene.showBasePlate(); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - scene.idle(10); - - Vec3 emitterPos = util.vector.of(2.5, 2.25, 2.5); - Emitter emitter = Emitter.simple(ParticleTypes.LAVA, util.vector.of(0, .1, 0)); - Emitter rotation = - Emitter.simple(new RotationIndicatorParticleData(SpeedLevel.MEDIUM.getColor(), 12, 1, 1, 20, 'Y'), - util.vector.of(0, .1, 0)); - - scene.overlay.showText(20) - .text("Incoming...") - .pointAt(emitterPos); - scene.idle(30); - scene.effects.emitParticles(emitterPos, emitter, 1, 60); - scene.effects.emitParticles(emitterPos, rotation, 20, 1); - scene.idle(30); - scene.rotateCameraY(180); - } - - public static void controlsScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_controls", "Basic player interaction"); - scene.showBasePlate(); - scene.idle(10); - scene.world.showSection(util.select.layer(1), Direction.DOWN); - scene.idle(4); - scene.world.showSection(util.select.layer(2), Direction.DOWN); - scene.idle(4); - scene.world.showSection(util.select.layer(3), Direction.DOWN); - scene.idle(10); - - BlockPos shaftPos = util.grid.at(3, 1, 1); - Selection shaftSelection = util.select.position(shaftPos); - scene.overlay.showControls(new InputWindowElement(util.vector.topOf(shaftPos), Pointing.DOWN).rightClick() - .whileSneaking() - .withWrench(), 40); - scene.idle(20); - scene.world.replaceBlocks(shaftSelection, AllBlocks.SHAFT.getDefaultState(), true); - - scene.idle(20); - scene.world.hideSection(shaftSelection, Direction.UP); - - scene.idle(20); - - scene.overlay.showControls(new InputWindowElement(util.vector.of(1, 4.5, 3.5), Pointing.LEFT).rightClick() - .withItem(new ItemStack(Blocks.POLISHED_ANDESITE)), 20); - scene.world.showSection(util.select.layer(4), Direction.DOWN); - - scene.idle(40); - - BlockPos chassis = util.grid.at(1, 1, 3); - Vec3 chassisSurface = util.vector.blockSurface(chassis, Direction.NORTH); - - Object chassisValueBoxHighlight = new Object(); - Object chassisEffectHighlight = new Object(); - - AABB point = new AABB(chassisSurface, chassisSurface); - AABB expanded = point.inflate(1 / 4f, 1 / 4f, 1 / 16f); - - Selection singleBlock = util.select.position(1, 2, 3); - Selection twoBlocks = util.select.fromTo(1, 2, 3, 1, 3, 3); - Selection threeBlocks = util.select.fromTo(1, 2, 3, 1, 4, 3); - - Selection singleRow = util.select.fromTo(1, 2, 3, 3, 2, 3); - Selection twoRows = util.select.fromTo(1, 2, 3, 3, 3, 3); - Selection threeRows = twoRows.copy() - .add(threeBlocks); - - scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, chassisValueBoxHighlight, point, 1); - scene.idle(1); - scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, chassisValueBoxHighlight, expanded, 120); - scene.overlay.showControls(new InputWindowElement(chassisSurface, Pointing.UP).scroll() - .withWrench(), 40); - - PonderPalette white = PonderPalette.WHITE; - scene.overlay.showOutline(white, chassisEffectHighlight, singleBlock, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, twoBlocks, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, threeBlocks, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, twoBlocks, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, singleBlock, 10); - scene.idle(10); - - scene.idle(30); - scene.overlay.showControls(new InputWindowElement(chassisSurface, Pointing.UP).whileCTRL() - .scroll() - .withWrench(), 40); - - scene.overlay.showOutline(white, chassisEffectHighlight, singleRow, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, twoRows, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, threeRows, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, twoRows, 10); - scene.idle(10); - scene.overlay.showOutline(white, chassisEffectHighlight, singleRow, 10); - scene.idle(10); - - scene.markAsFinished(); - } - - public static void birbScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_birbs", "Birbs"); - scene.showBasePlate(); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - scene.idle(10); - - BlockPos pos = new BlockPos(1, 2, 3); - scene.special.birbOnSpinnyShaft(pos); - scene.overlay.showText(100) - .colored(PonderPalette.GREEN) - .text("More birbs = More interesting") - .pointAt(util.vector.topOf(pos)); - - scene.idle(10); - scene.special.createBirb(util.vector.topOf(0, 1, 2), DancePose::new); - scene.idle(10); - - scene.special.createBirb(util.vector.centerOf(3, 1, 3) - .add(0, 0.25f, 0), FacePointOfInterestPose::new); - scene.idle(20); - - BlockPos poi1 = util.grid.at(4, 1, 0); - BlockPos poi2 = util.grid.at(0, 1, 4); - - scene.world.setBlock(poi1, Blocks.GOLD_BLOCK.defaultBlockState(), true); - scene.special.movePointOfInterest(poi1); - scene.idle(20); - - scene.world.setBlock(poi2, Blocks.GOLD_BLOCK.defaultBlockState(), true); - scene.special.movePointOfInterest(poi2); - scene.overlay.showText(20) - .text("Point of Interest") - .pointAt(util.vector.centerOf(poi2)); - scene.idle(20); - - scene.world.destroyBlock(poi1); - scene.special.movePointOfInterest(poi1); - scene.idle(20); - - scene.world.destroyBlock(poi2); - scene.special.movePointOfInterest(poi2); - } - - public static void sectionsScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_sections", "Sections"); - scene.showBasePlate(); - scene.idle(10); - scene.rotateCameraY(95); - - BlockPos mergePos = util.grid.at(1, 1, 1); - BlockPos independentPos = util.grid.at(3, 1, 1); - Selection toMerge = util.select.position(mergePos); - Selection independent = util.select.position(independentPos); - Selection start = util.select.layersFrom(1) - .substract(toMerge) - .substract(independent); - - scene.world.showSection(start, Direction.DOWN); - scene.idle(20); - - scene.world.showSection(toMerge, Direction.DOWN); - ElementLink link = scene.world.showIndependentSection(independent, Direction.DOWN); - - scene.idle(20); - - scene.overlay.showText(40) - .colored(PonderPalette.GREEN) - .text("This Section got merged to base.") - .pointAt(util.vector.topOf(mergePos)); - scene.idle(10); - scene.overlay.showText(40) - .colored(PonderPalette.RED) - .text("This Section renders independently.") - .pointAt(util.vector.topOf(independentPos)); - - scene.idle(40); - - scene.world.hideIndependentSection(link, Direction.DOWN); - scene.world.hideSection(util.select.fromTo(mergePos, util.grid.at(1, 1, 4)), Direction.DOWN); - - scene.idle(20); - - Selection hiddenReplaceArea = util.select.fromTo(2, 1, 2, 4, 1, 4) - .substract(util.select.position(4, 1, 3)) - .substract(util.select.position(2, 1, 3)); - - scene.world.hideSection(hiddenReplaceArea, Direction.UP); - scene.idle(20); - scene.world.setBlocks(hiddenReplaceArea, AllBlocks.REFINED_RADIANCE_CASING.getDefaultState(), false); - scene.world.showSection(hiddenReplaceArea, Direction.DOWN); - scene.idle(20); - scene.overlay.showSelectionWithText(hiddenReplaceArea, 30) - .colored(PonderPalette.BLUE) - .text("Seamless substitution of blocks"); - - scene.idle(40); - - ElementLink helicopter = scene.world.makeSectionIndependent(hiddenReplaceArea); - scene.world.rotateSection(helicopter, 50, 5 * 360, 0, 60); - scene.world.moveSection(helicopter, util.vector.of(0, 4, 5), 50); - scene.overlay.showText(30) - .colored(PonderPalette.BLUE) - .text("Up, up and away.") - .independent(30); - - scene.idle(40); - scene.world.hideIndependentSection(helicopter, Direction.UP); - - } - - public static void itemScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_items", "Manipulating Items"); - scene.configureBasePlate(0, 0, 6); - scene.world.showSection(util.select.layer(0), Direction.UP); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - - ItemStack brassItem = AllItems.BRASS_INGOT.asStack(); - ItemStack copperItem = new ItemStack(Items.COPPER_INGOT); - - for (int z = 4; z >= 2; z--) { - scene.world.createItemEntity(util.vector.centerOf(0, 4, z), Vec3.ZERO, brassItem.copy()); - scene.idle(10); - } - - BlockPos beltPos = util.grid.at(2, 1, 3); - ElementLink itemOnBelt = - scene.world.createItemOnBelt(beltPos, Direction.EAST, copperItem.copy()); - - scene.idle(10); - scene.world.stallBeltItem(itemOnBelt, true); - scene.idle(5); - scene.overlay.showText(40) - .colored(PonderPalette.FAST) - .text("Belt Items can only be force-stalled on the belt they were created on.") - .pointAt(util.vector.topOf(2, 1, 2)); - scene.idle(45); - scene.world.stallBeltItem(itemOnBelt, false); - scene.idle(20); - - scene.world.modifyEntities(ItemEntity.class, entity -> { - if (copperItem.sameItem(entity.getItem())) - entity.setNoGravity(true); - }); - - scene.idle(20); - - scene.world.modifyEntities(ItemEntity.class, entity -> { - if (brassItem.sameItem(entity.getItem())) - entity.setDeltaMovement(util.vector.of(-.15f, .5f, 0)); - }); - - scene.idle(27); - - scene.world.modifyEntities(ItemEntity.class, Entity::discard); - } - - public static void pipeScene(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("debug_pipes", "Manipulating Items"); - scene.configureBasePlate(0, 0, 5); - scene.world.showSection(util.select.layer(0), Direction.UP); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - - - - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DeployerScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DeployerScenes.java index 82205e5b7..e412ca364 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DeployerScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DeployerScenes.java @@ -3,18 +3,19 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.deployer.DeployerTileEntity; import com.simibubi.create.content.curiosities.tools.SandPaperItem; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.BlockParticleOption; @@ -30,7 +31,8 @@ import net.minecraft.world.phys.Vec3; public class DeployerScenes { - public static void filter(SceneBuilder scene, SceneBuildingUtil util) { + public static void filter(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("deployer", "Using the Deployer"); scene.configureBasePlate(0, 0, 5); @@ -234,7 +236,8 @@ public class DeployerScenes { } } - public static void modes(SceneBuilder scene, SceneBuildingUtil util) { + public static void modes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("deployer_modes", "Modes of the Deployer"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -277,7 +280,7 @@ public class DeployerScenes { scene.idle(46); scene.overlay.showControls(new InputWindowElement(frontVec, Pointing.LEFT).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.modifyTileNBT(deployerSelection, DeployerTileEntity.class, nbt -> nbt.putString("Mode", "PUNCH")); scene.idle(45); @@ -307,7 +310,8 @@ public class DeployerScenes { } } - public static void processing(SceneBuilder scene, SceneBuildingUtil util) { + public static void processing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("deployer_processing", "Processing Items using Deployers"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -423,7 +427,8 @@ public class DeployerScenes { scene.world.stallBeltItem(ingot2, false); } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("deployer_redstone", "Controlling Deployers with Redstone"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -489,7 +494,8 @@ public class DeployerScenes { } - public static void contraption(SceneBuilder scene, SceneBuildingUtil util) { + public static void contraption(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("deployer_contraption", "Using Deployers on Contraptions"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(.9f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java index 06fb92e84..8093dcd32 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DisplayScenes.java @@ -2,16 +2,17 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.TextComponent; @@ -24,7 +25,8 @@ import net.minecraft.world.phys.Vec3; public class DisplayScenes { - public static void link(SceneBuilder scene, SceneBuildingUtil util) { + public static void link(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("display_link", "Setting up Display Links"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -156,7 +158,7 @@ public class DisplayScenes { scene.world.moveSection(stressElement, util.vector.of(0, -2, 0), 0); scene.idle(10); scene.world.setDisplayBoardText(board, 1, - new TextComponent(1024 + " ").append(Lang.translateDirect("generic.unit.stress"))); + new TextComponent(1024 + " ").append(CreateLang.translateDirect("generic.unit.stress"))); scene.world.flashDisplayLink(linkPos); scene.idle(40); scene.world.hideIndependentSection(stressElement, Direction.SOUTH); @@ -185,7 +187,7 @@ public class DisplayScenes { scene.world.moveSection(cuckooElement, util.vector.of(0, -1, 0), 0); scene.idle(10); scene.world.setDisplayBoardText(board, 1, - new TextComponent("6:00 ").append(Lang.translateDirect("generic.daytime.pm"))); + new TextComponent("6:00 ").append(CreateLang.translateDirect("generic.daytime.pm"))); scene.world.setDisplayBoardText(board, 2, TextComponent.EMPTY); scene.world.flashDisplayLink(linkPos); scene.idle(90); @@ -225,7 +227,8 @@ public class DisplayScenes { scene.idle(60); } - public static void board(SceneBuilder scene, SceneBuildingUtil util) { + public static void board(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("display_board", "Using Display Boards"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -372,7 +375,8 @@ public class DisplayScenes { } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("display_link_redstone", "Redstone Control"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/EjectorScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/EjectorScenes.java index 08a978e0c..c8fda939b 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/EjectorScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/EjectorScenes.java @@ -1,19 +1,21 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.block.depot.EjectorTileEntity; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -26,7 +28,8 @@ import net.minecraftforge.items.ItemHandlerHelper; public class EjectorScenes { - public static void ejector(SceneBuilder scene, SceneBuildingUtil util) { + public static void ejector(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("weighted_ejector", "Using Weighted Ejectors"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -154,7 +157,7 @@ public class EjectorScenes { Vec3 input = util.vector.of(4.8, 1 + 12 / 16f, 2.5); Vec3 topOfSlot = input.add(0, 2 / 16f, 0); scene.overlay.showControls(new InputWindowElement(topOfSlot, Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.overlay.showFilterSlotInput(input, 80); scene.idle(10); scene.overlay.showText(80) @@ -213,7 +216,8 @@ public class EjectorScenes { } - public static void splitY(SceneBuilder scene, SceneBuildingUtil util) { + public static void splitY(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("weighted_ejector_tunnel", "Splitting item stacks using Weighted Ejectors"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -239,7 +243,7 @@ public class EjectorScenes { BlockPos tunnel = util.grid.at(2, 2, 3); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(tunnel), Pointing.DOWN).scroll() - .withWrench(), 70); + .withItem(AllItems.WRENCH.asStack()), 70); scene.idle(10); scene.overlay.showControls( new InputWindowElement(util.vector.topOf(tunnel), Pointing.UP).showing(AllIcons.I_TUNNEL_PREFER_NEAREST), @@ -257,7 +261,7 @@ public class EjectorScenes { Vec3 input = util.vector.of(2.5, 1 + 12 / 16f, 2.8); Vec3 topOfSlot = input.add(0, 2 / 16f, 0); scene.overlay.showControls(new InputWindowElement(topOfSlot, Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.overlay.showFilterSlotInput(input, 80); scene.idle(10); scene.overlay.showText(80) @@ -290,7 +294,8 @@ public class EjectorScenes { scene.world.multiplyKineticSpeed(util.select.everywhere(), 16f); } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("weighted_ejector_redstone", "Controlling Weighted Ejectors with Redstone"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java index fb01d35ad..19bc952da 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java @@ -2,20 +2,21 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.content.logistics.block.depot.DepotTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FlappyPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FlappyPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -29,7 +30,8 @@ import net.minecraft.world.phys.Vec3; public class FanScenes { - public static void direction(SceneBuilder scene, SceneBuildingUtil util) { + public static void direction(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("fan_direction", "Air flow of Encased Fans"); scene.configureBasePlate(0, 1, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -86,7 +88,8 @@ public class FanScenes { } - public static void processing(SceneBuilder scene, SceneBuildingUtil util) { + public static void processing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("fan_processing", "Processing Items using Encased Fans"); scene.configureBasePlate(1, 0, 5); scene.world.showSection(util.select.layer(0) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java index 554883d2f..bfdabfd5a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java @@ -5,16 +5,17 @@ import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -31,7 +32,8 @@ import net.minecraftforge.items.ItemHandlerHelper; public class FunnelScenes { - public static void intro(SceneBuilder scene, SceneBuildingUtil util) { + public static void intro(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("funnel_intro", "Using funnels"); scene.configureBasePlate(0, 1, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -105,7 +107,8 @@ public class FunnelScenes { scene.markAsFinished(); } - public static void directionality(SceneBuilder scene, SceneBuildingUtil util) { + public static void directionality(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("funnel_direction", "Direction of Transfer"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -165,7 +168,7 @@ public class FunnelScenes { // Wrench interaction InputWindowElement wrenchControls = new InputWindowElement(topSide, Pointing.RIGHT).rightClick() - .withWrench(); + .withItem(AllItems.WRENCH.asStack()); scene.overlay.showControls(wrenchControls, 40); scene.idle(10); scene.world.modifyBlock(topFunnel, s -> s.cycle(FunnelBlock.EXTRACTING), true); @@ -248,7 +251,8 @@ public class FunnelScenes { } } - public static void compat(SceneBuilder scene, SceneBuildingUtil util) { + public static void compat(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("funnel_compat", "Funnel compatibility"); scene.configureBasePlate(0, 0, 5); @@ -348,7 +352,8 @@ public class FunnelScenes { scene.idle(60); } - public static void brass(SceneBuilder scene, SceneBuildingUtil util) { + public static void brass(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("brass_funnel", "The Brass Funnel"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/GantryScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/GantryScenes.java index 0df78ea17..d5b08cec8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/GantryScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/GantryScenes.java @@ -1,16 +1,17 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Blocks; @@ -28,7 +29,8 @@ public class GantryScenes { intro(scene, util, false); } - private static void intro(SceneBuilder scene, SceneBuildingUtil util, boolean pinion) { + private static void intro(SceneBuilder builder, SceneBuildingUtil util, boolean pinion) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); String id = "gantry_" + (pinion ? "carriage" : "shaft"); String title = "Using Gantry " + (pinion ? "Carriages" : "Shafts"); scene.title(id, title); @@ -99,7 +101,8 @@ public class GantryScenes { scene.markAsFinished(); } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("gantry_redstone", "Gantry Power Propagation"); scene.world.modifyKineticSpeed(util.select.everywhere(), f -> -f); @@ -153,7 +156,8 @@ public class GantryScenes { scene.markAsFinished(); } - public static void direction(SceneBuilder scene, SceneBuildingUtil util) { + public static void direction(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("gantry_direction", "Gantry Movement Direction"); scene.configureBasePlate(0, 0, 5); scene.world.modifyKineticSpeed(util.select.everywhere(), f -> -f); @@ -256,7 +260,8 @@ public class GantryScenes { } - public static void subgantry(SceneBuilder scene, SceneBuildingUtil util) { + public static void subgantry(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("gantry_cascaded", "Cascaded Gantries"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ItemVaultScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ItemVaultScenes.java index 2f8bb4988..0b9bc199e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ItemVaultScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ItemVaultScenes.java @@ -2,15 +2,16 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -19,7 +20,8 @@ import net.minecraft.world.phys.Vec3; public class ItemVaultScenes { - public static void storage(SceneBuilder scene, SceneBuildingUtil util) { + public static void storage(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("item_vault_storage", "Storing Items in Vaults"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java index 71cac5317..dde113079 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java @@ -13,16 +13,17 @@ import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.tterrag.registrate.util.entry.BlockEntry; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -37,7 +38,8 @@ import net.minecraft.world.phys.Vec3; public class KineticsScenes { - public static void shaftAsRelay(SceneBuilder scene, SceneBuildingUtil util) { + public static void shaftAsRelay(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("shaft", "Relaying rotational force using Shafts"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -69,7 +71,8 @@ public class KineticsScenes { scene.markAsFinished(); } - public static void shaftsCanBeEncased(SceneBuilder scene, SceneBuildingUtil util) { + public static void shaftsCanBeEncased(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("shaft_casing", "Encasing Shafts"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -110,7 +113,8 @@ public class KineticsScenes { scene.idle(70); } - public static void cogAsRelay(SceneBuilder scene, SceneBuildingUtil util) { + public static void cogAsRelay(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cogwheel", "Relaying rotational force using Cogwheels"); scene.configureBasePlate(0, 0, 5); BlockPos gauge = util.grid.at(4, 1, 1); @@ -151,7 +155,8 @@ public class KineticsScenes { } - public static void largeCogAsRelay(SceneBuilder scene, SceneBuildingUtil util) { + public static void largeCogAsRelay(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("large_cogwheel", "Relaying rotational force using Large Cogwheels"); scene.configureBasePlate(1, 1, 5); scene.world.setBlock(util.grid.at(4, 2, 3), AllBlocks.LARGE_COGWHEEL.getDefaultState() @@ -200,7 +205,8 @@ public class KineticsScenes { } - public static void cogsSpeedUp(SceneBuilder scene, SceneBuildingUtil util) { + public static void cogsSpeedUp(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cog_speedup", "Gearshifting with Cogs"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -293,7 +299,8 @@ public class KineticsScenes { scene.idle(40); } - public static void cogwheelsCanBeEncased(SceneBuilder scene, SceneBuildingUtil util) { + public static void cogwheelsCanBeEncased(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("cogwheel_casing", "Encasing Cogwheels"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -370,7 +377,7 @@ public class KineticsScenes { Vec3 wrenchHere = util.vector.topOf(2, 1, 2) .add(.25, 0, -.25); scene.overlay.showControls(new InputWindowElement(wrenchHere, Pointing.RIGHT).rightClick() - .withWrench(), 25); + .withItem(AllItems.WRENCH.asStack()), 25); scene.idle(7); scene.world.cycleBlockProperty(util.grid.at(2, 1, 2), EncasedCogwheelBlock.TOP_SHAFT); scene.idle(15); @@ -388,13 +395,14 @@ public class KineticsScenes { scene.idle(40); scene.overlay.showControls(new InputWindowElement(wrenchHere, Pointing.RIGHT).rightClick() - .withWrench(), 25); + .withItem(AllItems.WRENCH.asStack()), 25); scene.idle(7); scene.world.cycleBlockProperty(util.grid.at(2, 1, 2), EncasedCogwheelBlock.TOP_SHAFT); scene.world.setKineticSpeed(shaft2, 0); } - public static void gearbox(SceneBuilder scene, SceneBuildingUtil util) { + public static void gearbox(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("gearbox", "Relaying rotational force using Gearboxes"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); @@ -476,7 +484,8 @@ public class KineticsScenes { } - public static void clutch(SceneBuilder scene, SceneBuildingUtil util) { + public static void clutch(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("clutch", "Controlling rotational force using a Clutch"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -528,7 +537,8 @@ public class KineticsScenes { scene.effects.indicateSuccess(gaugePos); } - public static void gearshift(SceneBuilder scene, SceneBuildingUtil util) { + public static void gearshift(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("gearshift", "Controlling rotational force using a Gearshift"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -576,7 +586,8 @@ public class KineticsScenes { } } - public static void creativeMotor(SceneBuilder scene, SceneBuildingUtil util) { + public static void creativeMotor(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("creative_motor", "Generating Rotational Force using Creative Motors"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -622,7 +633,8 @@ public class KineticsScenes { scene.rotateCameraY(-90); } - public static void waterWheel(SceneBuilder scene, SceneBuildingUtil util) { + public static void waterWheel(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("water_wheel", "Generating Rotational Force using Water Wheels"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -735,7 +747,8 @@ public class KineticsScenes { manualSource(scene, util, true); } - public static void valveHandle(SceneBuilder scene, SceneBuildingUtil util) { + public static void valveHandle(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); manualSource(scene, util, false); scene.world.setKineticSpeed(util.select.everywhere(), 0); scene.idle(20); @@ -753,7 +766,8 @@ public class KineticsScenes { .pointAt(centerOf); } - private static void manualSource(SceneBuilder scene, SceneBuildingUtil util, boolean handCrank) { + private static void manualSource(SceneBuilder builder, SceneBuildingUtil util, boolean handCrank) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); String name = handCrank ? "Hand Cranks" : "Valve Handles"; scene.title(handCrank ? "hand_crank" : "valve_handle", "Generating Rotational Force using " + name); scene.configureBasePlate(0, 0, 5); @@ -816,7 +830,8 @@ public class KineticsScenes { scene.idle(90); } - public static void sequencedGearshift(SceneBuilder scene, SceneBuildingUtil util) { + public static void sequencedGearshift(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("sequenced_gearshift", "Controlling Rotational Speed using Sequenced Gearshifts"); scene.configureBasePlate(1, 0, 5); scene.showBasePlate(); @@ -971,7 +986,8 @@ public class KineticsScenes { scene.world.setKineticSpeed(outputKinetics, 0); } - public static void speedController(SceneBuilder scene, SceneBuildingUtil util) { + public static void speedController(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("rotation_speed_controller", "Using the Rotational Speed Controller"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -1049,7 +1065,8 @@ public class KineticsScenes { gauge(scene, util, false); } - private static void gauge(SceneBuilder scene, SceneBuildingUtil util, boolean speed) { + private static void gauge(SceneBuilder builder, SceneBuildingUtil util, boolean speed) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); String component = speed ? "Speedometer" : "Stressometer"; String title = "Monitoring Kinetic information using the " + component; scene.title(speed ? "speedometer" : "stressometer", title); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalDrillScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalDrillScenes.java index 5399be267..feb073154 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalDrillScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalDrillScenes.java @@ -1,14 +1,15 @@ package com.simibubi.create.foundation.ponder.content; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -20,7 +21,8 @@ import net.minecraft.world.phys.Vec3; public class MechanicalDrillScenes { - public static void breaker(SceneBuilder scene, SceneBuildingUtil util) { + public static void breaker(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_drill", "Breaking Blocks with the Mechanical Drill"); scene.configureBasePlate(0, 0, 5); @@ -55,7 +57,7 @@ public class MechanicalDrillScenes { util.vector.of(0, .1f, 0), new ItemStack(Items.OAK_PLANKS)); scene.idle(20); scene.idle(15); - + scene.world.modifyEntity(plankEntity, Entity::discard); scene.world.modifyKineticSpeed(util.select.everywhere(), f -> 4 * f); scene.effects.rotationSpeedIndicator(breakingPos.east(3)); @@ -81,7 +83,8 @@ public class MechanicalDrillScenes { scene.idle(50); } - public static void contraption(SceneBuilder scene, SceneBuildingUtil util) { + public static void contraption(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_drill_contraption", "Using Mechanical Drills on Contraptions"); scene.configureBasePlate(0, 0, 6); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalSawScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalSawScenes.java index 29715ce43..1ce98047b 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalSawScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/MechanicalSawScenes.java @@ -3,16 +3,17 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.saw.SawTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -25,7 +26,8 @@ import net.minecraft.world.phys.Vec3; public class MechanicalSawScenes { - public static void processing(SceneBuilder scene, SceneBuildingUtil util) { + public static void processing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_saw_processing", "Processing Items on the Mechanical Saw"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -171,7 +173,8 @@ public class MechanicalSawScenes { scene.world.modifyEntities(ItemEntity.class, Entity::discard); } - public static void treeCutting(SceneBuilder scene, SceneBuildingUtil util) { + public static void treeCutting(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_saw_breaker", "Cutting Trees with the Mechanical Saw"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); @@ -264,7 +267,8 @@ public class MechanicalSawScenes { } } - public static void contraption(SceneBuilder scene, SceneBuildingUtil util) { + public static void contraption(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_saw_contraption", "Using Mechanical Saws on Contraptions"); scene.configureBasePlate(1, 0, 6); scene.scaleSceneView(.9f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/MovementActorScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/MovementActorScenes.java index 0cd882d02..f39ae5d39 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/MovementActorScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/MovementActorScenes.java @@ -4,18 +4,19 @@ import com.simibubi.create.content.contraptions.components.actors.HarvesterTileE import com.simibubi.create.content.contraptions.components.actors.PortableItemInterfaceTileEntity; import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FlappyPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FlappyPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -29,7 +30,8 @@ import net.minecraft.world.phys.Vec3; public class MovementActorScenes { - public static void psiTransfer(SceneBuilder scene, SceneBuildingUtil util) { + public static void psiTransfer(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("portable_storage_interface", "Contraption Storage Exchange"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(0.95f); @@ -162,7 +164,8 @@ public class MovementActorScenes { scene.world.rotateSection(contraption, 0, 270, 0, 120); } - public static void psiRedstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void psiRedstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("portable_storage_interface_redstone", "Redstone Control"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-1); @@ -203,7 +206,8 @@ public class MovementActorScenes { scene.markAsFinished(); } - public static void harvester(SceneBuilder scene, SceneBuildingUtil util) { + public static void harvester(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_harvester", "Using Mechanical Harvesters on Contraptions"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(0.9f); @@ -334,7 +338,8 @@ public class MovementActorScenes { hte -> hte.setAnimatedSpeed(0)); } - public static void plough(SceneBuilder scene, SceneBuildingUtil util) { + public static void plough(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_plough", "Using Mechanical Ploughs on Contraptions"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(0.9f); @@ -476,10 +481,10 @@ public class MovementActorScenes { scene.idle(15); scene.world.showSectionAndMerge(util.select.fromTo(4, 3, 3, 4, 2, 3), Direction.DOWN, contraption); scene.idle(15); - + BlockPos bearingPos = util.grid.at(4, 3, 4); scene.addKeyframe(); - + scene.world.setKineticSpeed(util.select.position(4, 0, 6), 8); scene.world.setKineticSpeed(util.select.position(5, 1, 6), -16); scene.world.setKineticSpeed(util.select.position(4, 3, 5), -16); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PistonScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PistonScenes.java index a561f1ff8..6211bcd06 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PistonScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PistonScenes.java @@ -2,17 +2,18 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonHeadBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FaceCursorPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FaceCursorPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -24,7 +25,8 @@ import net.minecraft.world.level.block.state.properties.PistonType; public class PistonScenes { - public static void movement(SceneBuilder scene, SceneBuildingUtil util) { + public static void movement(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_piston", "Moving Structures using Mechanical Pistons"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0) @@ -141,7 +143,8 @@ public class PistonScenes { scene.world.moveSection(chassis, util.vector.of(-2, 0, 0), 40); } - public static void poles(SceneBuilder scene, SceneBuildingUtil util) { + public static void poles(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("piston_pole", "Piston Extension Poles"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -207,7 +210,8 @@ public class PistonScenes { } - public static void movementModes(SceneBuilder scene, SceneBuildingUtil util) { + public static void movementModes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_piston_modes", "Movement Modes of the Mechanical Piston"); scene.configureBasePlate(0, 0, 5); Selection rose = util.select.fromTo(0, 2, 2, 0, 1, 2); @@ -272,7 +276,7 @@ public class PistonScenes { scene.world.showIndependentSection(rose, Direction.DOWN); scene.overlay.showCenteredScrollInput(piston, Direction.UP, 60); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(piston), Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.overlay.showText(70) .pointAt(util.vector.topOf(piston)) .placeNearTarget() diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java index bd20d9bbe..d95038d68 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java @@ -13,21 +13,22 @@ import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.EntityElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.IntAttached; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.IntAttached; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.EntityElement; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ItemParticleOption; @@ -43,7 +44,8 @@ import net.minecraft.world.phys.Vec3; public class ProcessingScenes { - public static void millstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void millstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("millstone", "Processing Items in the Millstone"); scene.configureBasePlate(0, 0, 5); @@ -142,7 +144,8 @@ public class ProcessingScenes { scene.idle(60); } - public static void crushingWheels(SceneBuilder scene, SceneBuildingUtil util) { + public static void crushingWheels(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("crushing_wheels", "Processing Items with Crushing Wheels"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(.9f); @@ -268,7 +271,8 @@ public class ProcessingScenes { } } - public static void pressing(SceneBuilder scene, SceneBuildingUtil util) { + public static void pressing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_press", "Processing Items with the Mechanical Press"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); @@ -377,7 +381,8 @@ public class ProcessingScenes { } - public static void mixing(SceneBuilder scene, SceneBuildingUtil util) { + public static void mixing(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_mixer", "Processing Items with the Mechanical Mixer"); scene.configureBasePlate(0, 0, 5); scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.ANDESITE_CASING.getDefaultState(), false); @@ -459,7 +464,8 @@ public class ProcessingScenes { scene.idle(80); } - public static void compacting(SceneBuilder scene, SceneBuildingUtil util) { + public static void compacting(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_press_compacting", "Compacting items with the Mechanical Press"); scene.configureBasePlate(0, 0, 5); scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.ANDESITE_CASING.getDefaultState(), false); @@ -728,7 +734,8 @@ public class ProcessingScenes { scene.idle(90); } - public static void basin(SceneBuilder scene, SceneBuildingUtil util) { + public static void basin(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("basin", "Processing Items in the Basin"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PulleyScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PulleyScenes.java index 482c4f36e..5aa76244f 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PulleyScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PulleyScenes.java @@ -1,22 +1,24 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Blocks; public class PulleyScenes { - public static void movement(SceneBuilder scene, SceneBuildingUtil util) { + public static void movement(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("rope_pulley", "Moving Structures using Rope Pulleys"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(0.95f); @@ -112,7 +114,8 @@ public class PulleyScenes { scene.idle(50); } - public static void movementModes(SceneBuilder scene, SceneBuildingUtil util) { + public static void movementModes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("rope_pulley_modes", "Movement Modes of the Rope Pulley"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(0.95f); @@ -165,7 +168,7 @@ public class PulleyScenes { scene.world.showSection(util.select.position(flowerPos), Direction.DOWN); scene.overlay.showCenteredScrollInput(pulleyPos, Direction.UP, 60); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(pulleyPos), Pointing.DOWN).scroll() - .withWrench(), 60); + .withItem(AllItems.WRENCH.asStack()), 60); scene.overlay.showText(70) .pointAt(util.vector.topOf(pulleyPos)) .placeNearTarget() @@ -188,7 +191,8 @@ public class PulleyScenes { scene.idle(90); } - public static void attachment(SceneBuilder scene, SceneBuildingUtil util) { + public static void attachment(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("rope_pulley_attachment", "Moving Pulleys as part of a Contraption"); scene.configureBasePlate(0, 0, 5); scene.scaleSceneView(0.95f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java index 7e7bb5c1f..97a3453bf 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java @@ -1,6 +1,7 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerTileEntity; import com.simibubi.create.content.logistics.block.diodes.BrassDiodeBlock; @@ -13,16 +14,17 @@ import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -38,7 +40,8 @@ import net.minecraft.world.phys.Vec3; public class RedstoneScenes { - public static void sticker(SceneBuilder scene, SceneBuildingUtil util) { + public static void sticker(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("sticker", "Attaching blocks using the Sticker"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -112,7 +115,8 @@ public class RedstoneScenes { scene.world.rotateSection(sticker, 0, 180 * 3, 0, 80); } - public static void contact(SceneBuilder scene, SceneBuildingUtil util) { + public static void contact(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("redstone_contact", "Redstone Contacts"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -723,7 +727,7 @@ public class RedstoneScenes { scene.idle(60); scene.overlay.showControls(new InputWindowElement(link3Vec, Pointing.UP).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.modifyBlock(link3Pos, s -> s.cycle(RedstoneLinkBlock.RECEIVER), true); scene.idle(10); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes2.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes2.java index fc79d5297..56143bb75 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes2.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes2.java @@ -1,15 +1,16 @@ package com.simibubi.create.foundation.ponder.content; +import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.content.logistics.block.redstone.RoseQuartzLampBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -114,7 +115,7 @@ public class RedstoneScenes2 { scene.overlay .showControls(new InputWindowElement(util.vector.topOf(centerLamp.east(2)), Pointing.DOWN).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(6); scene.world.cycleBlockProperty(centerLamp.east(), RoseQuartzLampBlock.POWERING); scene.world.toggleRedstonePower(comparator); @@ -122,7 +123,7 @@ public class RedstoneScenes2 { scene.idle(20); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(centerLamp), Pointing.DOWN).rightClick() - .withWrench(), 20); + .withItem(AllItems.WRENCH.asStack()), 20); scene.idle(6); scene.world.cycleBlockProperty(centerLamp.west(), RoseQuartzLampBlock.POWERING); scene.world.toggleRedstonePower(comparator); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java b/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java deleted file mode 100644 index aa04c28aa..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.simibubi.create.foundation.ponder.content; - -import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.PonderLocalization; - -import net.minecraft.resources.ResourceLocation; - -public class SharedText { - - public static void gatherText() { - // Add entries used across several ponder scenes (Safe for hotswap) - - add("sneak_and", "Sneak +"); - add("ctrl_and", "Ctrl +"); - - add("rpm8", "8 RPM"); - add("rpm16", "16 RPM"); - add("rpm16_source", "Source: 16 RPM"); - add("rpm32", "32 RPM"); - - add("movement_anchors", "With the help of Super Glue, larger structures can be moved."); - add("behaviour_modify_wrench", "This behaviour can be modified using a Wrench"); - add("storage_on_contraption", "Inventories attached to the Contraption will pick up their drops automatically"); - } - - public static String get(ResourceLocation key) { - return PonderLocalization.getShared(key); - } - - public static void add(ResourceLocation k, String v) { - PonderLocalization.registerShared(k, v); - } - - private static void add(String k, String v) { - add(Create.asResource(k), v); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/SteamScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/SteamScenes.java index bce07dd0f..a957198e5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/SteamScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/SteamScenes.java @@ -7,16 +7,17 @@ import com.simibubi.create.content.contraptions.components.steam.whistle.Whistle import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -140,7 +141,7 @@ public class SteamScenes { rightClick = new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 3, 1), Direction.EAST), Pointing.RIGHT) - .withWrench() + .withItem(AllItems.WRENCH.asStack()) .rightClick(); scene.overlay.showControls(rightClick, 50); @@ -189,7 +190,8 @@ public class SteamScenes { scene.idle(40); } - public static void engine(SceneBuilder scene, SceneBuildingUtil util) { + public static void engine(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("steam_engine", "Setting up Steam Engines"); scene.configureBasePlate(0, 0, 7); scene.setSceneOffsetY(-1); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/TemplateScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/TemplateScenes.java index 714a9b8e9..c4ee7d7d8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/TemplateScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/TemplateScenes.java @@ -1,18 +1,20 @@ package com.simibubi.create.foundation.ponder.content; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; import net.minecraft.core.Direction; public class TemplateScenes { - - public static void templateMethod(SceneBuilder scene, SceneBuildingUtil util) { + + public static void templateMethod(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("", ""); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0), Direction.UP); scene.idle(5); scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); } - + } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/TunnelScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/TunnelScenes.java index 076a44f0e..f6a6cd1ce 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/TunnelScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/TunnelScenes.java @@ -7,19 +7,20 @@ import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.SidedFilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.Entity; @@ -32,7 +33,8 @@ import net.minecraft.world.phys.Vec3; public class TunnelScenes { - public static void andesite(SceneBuilder scene, SceneBuildingUtil util) { + public static void andesite(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("andesite_tunnel", "Using Andesite Tunnels"); scene.configureBasePlate(0, 0, 5); @@ -105,7 +107,8 @@ public class TunnelScenes { scene.world.multiplyKineticSpeed(util.select.everywhere(), 16f); } - public static void brass(SceneBuilder scene, SceneBuildingUtil util) { + public static void brass(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("brass_tunnel", "Using Brass Tunnels"); scene.configureBasePlate(1, 0, 5); scene.world.cycleBlockProperty(util.grid.at(3, 1, 2), BeltBlock.CASING); @@ -228,7 +231,7 @@ public class TunnelScenes { Vec3 tunnelTop = util.vector.topOf(tunnelPos); scene.overlay.showControls(new InputWindowElement(tunnelTop, Pointing.DOWN).scroll() - .withWrench(), 80); + .withItem(AllItems.WRENCH.asStack()), 80); scene.idle(7); scene.overlay.showCenteredScrollInput(tunnelPos, Direction.UP, 120); scene.overlay.showText(120) @@ -344,7 +347,8 @@ public class TunnelScenes { .add(0, 0.3, 0); } - public static void brassModes(SceneBuilder scene, SceneBuildingUtil util) { + public static void brassModes(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("brass_tunnel_modes", "Distribution Modes of the Brass Tunnel"); scene.configureBasePlate(0, 1, 5); BlockState barrier = Blocks.BARRIER.defaultBlockState(); @@ -361,7 +365,7 @@ public class TunnelScenes { Vec3 tunnelTop = util.vector.topOf(util.grid.at(2, 2, 3)); scene.overlay.showControls(new InputWindowElement(tunnelTop, Pointing.DOWN).scroll() - .withWrench(), 80); + .withItem(AllItems.WRENCH.asStack()), 80); scene.idle(7); scene.overlay.showCenteredScrollInput(util.grid.at(2, 2, 3), Direction.UP, 120); scene.overlay.showText(120) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/DrainScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/DrainScenes.java index a5553a79d..9d8dff3f5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/DrainScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/DrainScenes.java @@ -1,15 +1,16 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.content.contraptions.fluids.actors.ItemDrainTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -21,7 +22,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class DrainScenes { - public static void emptying(SceneBuilder scene, SceneBuildingUtil util) { + public static void emptying(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("item_drain", "Emptying Fluid Containers using Item Drains"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidMovementActorScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidMovementActorScenes.java index a0f01576d..39a16ce53 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidMovementActorScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidMovementActorScenes.java @@ -4,15 +4,16 @@ import com.simibubi.create.AllFluids; import com.simibubi.create.content.contraptions.components.actors.PortableFluidInterfaceTileEntity; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -24,7 +25,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class FluidMovementActorScenes { - public static void transfer(SceneBuilder scene, SceneBuildingUtil util) { + public static void transfer(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("portable_fluid_interface", "Contraption Fluid Exchange"); scene.configureBasePlate(0, 0, 6); scene.scaleSceneView(0.95f); @@ -193,7 +195,7 @@ public class FluidMovementActorScenes { scene.idle(15); scene.world.rotateBearing(bearing, 270, 120); scene.world.rotateSection(contraption, 0, 270, 0, 120); - + scene.idle(100); scene.markAsFinished(); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidTankScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidTankScenes.java index aca6c625e..783c53c3f 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidTankScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/FluidTankScenes.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllFluids; +import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; @@ -12,17 +13,18 @@ import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -35,7 +37,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class FluidTankScenes { - public static void storage(SceneBuilder scene, SceneBuildingUtil util) { + public static void storage(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("fluid_tank_storage", "Storing Fluids in Fluid Tanks"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -335,7 +338,7 @@ public class FluidTankScenes { scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(util.grid.at(3, 3, 1), Direction.NORTH), Pointing.RIGHT) .rightClick() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 60); scene.idle(7); scene.world.modifyBlocks(full2, s -> s.setValue(FluidTankBlock.SHAPE, FluidTankBlock.Shape.PLAIN), false); @@ -349,7 +352,8 @@ public class FluidTankScenes { scene.idle(50); } - public static void creative(SceneBuilder scene, SceneBuildingUtil util) { + public static void creative(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("creative_fluid_tank", "Creative Fluid Tanks"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/HosePulleyScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/HosePulleyScenes.java index 9fdfa78f8..96292c8ed 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/HosePulleyScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/HosePulleyScenes.java @@ -6,13 +6,14 @@ import java.util.List; import com.simibubi.create.content.contraptions.fluids.actors.HosePulleyFluidHandler; import com.simibubi.create.content.contraptions.fluids.actors.HosePulleyTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.Blocks; @@ -25,7 +26,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class HosePulleyScenes { - public static void intro(SceneBuilder scene, SceneBuildingUtil util) { + public static void intro(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("hose_pulley", "Source Filling and Draining using Hose Pulleys"); scene.configureBasePlate(0, 0, 3); scene.setSceneOffsetY(-1); @@ -156,7 +158,8 @@ public class HosePulleyScenes { } - public static void level(SceneBuilder scene, SceneBuildingUtil util) { + public static void level(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("hose_pulley_level", "Fill and Drain level of Hose Pulleys"); scene.configureBasePlate(0, 0, 3); scene.setSceneOffsetY(-1.5f); @@ -298,7 +301,8 @@ public class HosePulleyScenes { scene.idle(80); } - public static void infinite(SceneBuilder scene, SceneBuildingUtil util) { + public static void infinite(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("hose_pulley_infinite", "Passively Filling and Draining large bodies of Fluid"); scene.configureBasePlate(0, 0, 5); scene.setSceneOffsetY(-.5f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java index 891b07235..b9512b7ea 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllFluids; +import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.fluids.PumpBlock; import com.simibubi.create.content.contraptions.fluids.actors.ItemDrainTileEntity; import com.simibubi.create.content.contraptions.fluids.pipes.AxisPipeBlock; @@ -13,16 +14,17 @@ import com.simibubi.create.content.contraptions.fluids.pipes.SmartFluidPipeTileE import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.foundation.fluid.FluidHelper; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; -import com.simibubi.create.foundation.utility.Pointing; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -42,7 +44,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class PipeScenes { - public static void flow(SceneBuilder scene, SceneBuildingUtil util) { + public static void flow(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("fluid_pipe_flow", "Moving Fluids using Copper Pipes"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -92,7 +95,7 @@ public class PipeScenes { scene.idle(60); scene.overlay.showControls(new InputWindowElement(util.vector.centerOf(2, 1, 1), Pointing.DOWN).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.restoreBlocks(util.select.position(2, 1, 1)); scene.overlay.showText(70) @@ -103,7 +106,7 @@ public class PipeScenes { scene.idle(40); scene.overlay.showControls(new InputWindowElement(util.vector.centerOf(1, 1, 2), Pointing.DOWN).rightClick() - .withWrench(), 10); + .withItem(AllItems.WRENCH.asStack()), 10); scene.idle(7); scene.world.restoreBlocks(util.select.position(1, 1, 2)); scene.idle(40); @@ -177,7 +180,8 @@ public class PipeScenes { scene.idle(50); } - public static void interaction(SceneBuilder scene, SceneBuildingUtil util) { + public static void interaction(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("fluid_pipe_interaction", "Draining and Filling fluid containers"); scene.configureBasePlate(0, 1, 5); scene.showBasePlate(); @@ -371,7 +375,8 @@ public class PipeScenes { scene.idle(20); } - public static void valve(SceneBuilder scene, SceneBuildingUtil util) { + public static void valve(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("valve_pipe", "Controlling Fluid flow using Valves"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -465,7 +470,8 @@ public class PipeScenes { scene.world.setKineticSpeed(valveKinetics, 0); } - public static void smart(SceneBuilder scene, SceneBuildingUtil util) { + public static void smart(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("smart_pipe", "Controlling Fluid flow using Smart Pipes"); scene.configureBasePlate(1, 0, 5); scene.showBasePlate(); @@ -482,7 +488,7 @@ public class PipeScenes { Selection pump = util.select.position(1, 1, 2); Selection basin = util.select.position(basinPos); BlockPos smartPos = util.grid.at(3, 1, 1); - + scene.world.modifyTileEntity(basinPos, BasinTileEntity.class, te -> te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) .ifPresent(ifh -> ifh.fill(new FluidStack(ForgeMod.MILK.get(), 1000), FluidAction.EXECUTE))); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PumpScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PumpScenes.java index 298af869f..c71ee1d55 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PumpScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PumpScenes.java @@ -1,20 +1,22 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.fluids.PumpBlock; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.content.contraptions.fluids.pipes.GlassFluidPipeBlock; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; @@ -26,7 +28,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class PumpScenes { - public static void flow(SceneBuilder scene, SceneBuildingUtil util) { + public static void flow(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_pump_flow", "Fluid Transportation using Mechanical Pumps"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -143,7 +146,7 @@ public class PumpScenes { scene.idle(55); scene.overlay.showControls(new InputWindowElement(util.vector.topOf(pumpPos), Pointing.DOWN).rightClick() - .withWrench(), 40); + .withItem(AllItems.WRENCH.asStack()), 40); scene.idle(7); scene.world.modifyBlock(pumpPos, s -> s.setValue(PumpBlock.FACING, Direction.EAST), true); scene.overlay.showText(70) @@ -166,7 +169,8 @@ public class PumpScenes { } - public static void speed(SceneBuilder scene, SceneBuildingUtil util) { + public static void speed(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("mechanical_pump_speed", "Throughput of Mechanical Pumps"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -301,13 +305,13 @@ public class PumpScenes { scene.overlay .showControls(new InputWindowElement(util.vector.topOf(pumpPos.south()), Pointing.DOWN).rightClick() - .withWrench(), 30); + .withItem(AllItems.WRENCH.asStack()), 30); scene.idle(7); scene.world.modifyBlock(pumpPos.south(), s -> s.setValue(PumpBlock.FACING, Direction.WEST), true); scene.idle(30); scene.overlay .showControls(new InputWindowElement(util.vector.topOf(pumpPos.north()), Pointing.DOWN).rightClick() - .withWrench(), 30); + .withItem(AllItems.WRENCH.asStack()), 30); scene.idle(7); scene.world.modifyBlock(pumpPos.north(), s -> s.setValue(PumpBlock.FACING, Direction.WEST), true); scene.idle(30); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/SpoutScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/SpoutScenes.java index 8f86f5d70..62afd2935 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/SpoutScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/SpoutScenes.java @@ -6,18 +6,19 @@ import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; import com.simibubi.create.foundation.fluid.FluidHelper; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; import com.simibubi.create.foundation.ponder.element.BeltItemElement; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.Pointing; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.WorldSectionElement; +import net.createmod.ponder.foundation.instruction.EmitParticlesInstruction.Emitter; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleOptions; @@ -28,7 +29,8 @@ import net.minecraftforge.fluids.FluidStack; public class SpoutScenes { - public static void filling(SceneBuilder scene, SceneBuildingUtil util) { + public static void filling(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("spout_filling", "Filling Items using a Spout"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackObserverScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackObserverScenes.java index ddf08e405..4644f4e11 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackObserverScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackObserverScenes.java @@ -2,17 +2,18 @@ package com.simibubi.create.foundation.ponder.content.trains; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.logistics.trains.management.edgePoint.observer.TrackObserverTileEntity; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -21,7 +22,8 @@ import net.minecraft.world.phys.Vec3; public class TrackObserverScenes { - public static void observe(SceneBuilder scene, SceneBuildingUtil util) { + public static void observe(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("track_observer", "Detecting Trains"); scene.configureBasePlate(1, 1, 9); scene.scaleSceneView(.65f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackScenes.java index 4087a6a7e..6faaf9df3 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrackScenes.java @@ -4,17 +4,18 @@ import java.util.List; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Blocks; @@ -257,7 +258,8 @@ public class TrackScenes { scene.world.showSectionAndMerge(util.select.position(2, 8, 3), Direction.DOWN, slopeStart); } - public static void portal(SceneBuilder scene, SceneBuildingUtil util) { + public static void portal(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("track_portal", "Tracks and the Nether"); scene.configureBasePlate(0, 0, 9); scene.scaleSceneView(.65f); @@ -270,7 +272,7 @@ public class TrackScenes { scene.world.showSection(util.select.position(4, 1, i), Direction.DOWN); scene.idle(2); } - + scene.world.toggleControls(util.grid.at(4, 3, 3)); scene.idle(15); @@ -343,14 +345,15 @@ public class TrackScenes { } - public static void chunks(SceneBuilder scene, SceneBuildingUtil util) { + public static void chunks(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("track_chunks", "Traversing unloaded Chunks"); scene.configureBasePlate(0, 0, 9); scene.scaleSceneView(.65f); scene.setSceneOffsetY(-1); - + scene.world.cycleBlockProperty(util.grid.at(5, 3, 4), BlazeBurnerBlock.HEAT_LEVEL); - + ElementLink stationElement = scene.world.showIndependentSection(util.select.fromTo(0, 0, 0, 8, 0, 8), Direction.UP); ElementLink stationTrackElement = diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainScenes.java index fc7bd93b4..792a8ce85 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainScenes.java @@ -3,17 +3,18 @@ package com.simibubi.create.foundation.ponder.content.trains; import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -23,7 +24,8 @@ import net.minecraft.world.phys.Vec3; public class TrainScenes { - public static void controls(SceneBuilder scene, SceneBuildingUtil util) { + public static void controls(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_controls", "Controlling Trains"); scene.configureBasePlate(1, 0, 9); scene.scaleSceneView(.75f); @@ -159,7 +161,8 @@ public class TrainScenes { scene.idle(60); } - public static void schedule(SceneBuilder scene, SceneBuildingUtil util) { + public static void schedule(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_schedule", "Using Train Schedules"); scene.configureBasePlate(1, 0, 9); scene.scaleSceneView(.75f); @@ -167,7 +170,7 @@ public class TrainScenes { scene.showBasePlate(); scene.world.cycleBlockProperty(util.grid.at(3, 3, 4), BlazeBurnerBlock.HEAT_LEVEL); - + for (int i = 10; i >= 0; i--) { scene.world.showSection(util.select.position(i, 1, 4), Direction.DOWN); scene.idle(1); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainSignalScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainSignalScenes.java index 6c35b21d3..2b14c360b 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainSignalScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainSignalScenes.java @@ -4,18 +4,19 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalBlock; import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.SignalState; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.DancePose; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.DancePose; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.phys.AABB; @@ -23,7 +24,8 @@ import net.minecraft.world.phys.Vec3; public class TrainSignalScenes { - public static void placement(SceneBuilder scene, SceneBuildingUtil util) { + public static void placement(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_signal_placement", "Placing Train Signals"); scene.configureBasePlate(1, 0, 12); scene.scaleSceneView(.65f); @@ -48,7 +50,7 @@ public class TrainSignalScenes { Selection secondNixie = util.select.position(8, 2, 9); Selection thirdNixie = util.select.position(9, 4, 8); Selection train = util.select.fromTo(5, 2, 5, 1, 3, 7); - + scene.world.toggleControls(util.grid.at(3, 3, 6)); Vec3 marker = util.vector.topOf(8, 0, 6) @@ -202,7 +204,8 @@ public class TrainSignalScenes { scene.idle(70); } - public static void signaling(SceneBuilder scene, SceneBuildingUtil util) { + public static void signaling(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_signal_signaling", "Collision Prevention with Signals"); scene.configureBasePlate(1, 0, 15); scene.scaleSceneView(.5f); @@ -214,7 +217,7 @@ public class TrainSignalScenes { scene.world.showSection(util.select.position(i, 1, 15 - i), Direction.DOWN); scene.idle(1); } - + scene.world.toggleControls(util.grid.at(13, 3, 7)); scene.world.toggleControls(util.grid.at(13, 3, 1)); scene.world.toggleControls(util.grid.at(13, 3, 4)); @@ -341,7 +344,7 @@ public class TrainSignalScenes { scene.overlay.showControls( new InputWindowElement(util.vector.blockSurface(s1Pos, Direction.EAST), Pointing.RIGHT).rightClick() - .withWrench(), + .withItem(AllItems.WRENCH.asStack()), 80); scene.idle(6); scene.world.cycleBlockProperty(s1Pos, SignalBlock.TYPE); @@ -486,7 +489,8 @@ public class TrainSignalScenes { scene.idle(60); } - public static void redstone(SceneBuilder scene, SceneBuildingUtil util) { + public static void redstone(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_signal_redstone", "Signals & Redstone"); scene.configureBasePlate(0, 0, 9); scene.scaleSceneView(.75f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainStationScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainStationScenes.java index 3e9402552..f5d7f1d7d 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainStationScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/trains/TrainStationScenes.java @@ -3,17 +3,18 @@ package com.simibubi.create.foundation.ponder.content.trains; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationBlock; -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.SceneBuilder; -import com.simibubi.create.foundation.ponder.SceneBuildingUtil; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement; -import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; -import com.simibubi.create.foundation.utility.Pointing; +import com.simibubi.create.foundation.ponder.CreateSceneBuilder; +import net.createmod.catnip.utility.Pointing; +import net.createmod.ponder.foundation.ElementLink; +import net.createmod.ponder.foundation.PonderPalette; +import net.createmod.ponder.foundation.SceneBuilder; +import net.createmod.ponder.foundation.SceneBuildingUtil; +import net.createmod.ponder.foundation.Selection; +import net.createmod.ponder.foundation.element.InputWindowElement; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.createmod.ponder.foundation.element.ParrotElement.FacePointOfInterestPose; +import net.createmod.ponder.foundation.element.WorldSectionElement; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemStack; @@ -25,7 +26,8 @@ import net.minecraft.world.phys.Vec3; public class TrainStationScenes { - public static void assembly(SceneBuilder scene, SceneBuildingUtil util) { + public static void assembly(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("train_assembly", "Assembling Trains"); scene.configureBasePlate(1, 0, 12); scene.scaleSceneView(.65f); @@ -311,7 +313,7 @@ public class TrainStationScenes { Vec3 target = util.vector.topOf(util.grid.at(5, 3, 6)); scene.overlay.showControls(new InputWindowElement(target, Pointing.DOWN).rightClick() - .withWrench(), 75); + .withItem(AllItems.WRENCH.asStack()), 75); scene.idle(15); scene.overlay.showText(70) @@ -324,13 +326,14 @@ public class TrainStationScenes { scene.overlay .showControls(new InputWindowElement(util.vector.topOf(util.grid.at(6, 0, 2)), Pointing.DOWN).rightClick() - .withWrench(), 15); + .withItem(AllItems.WRENCH.asStack()), 15); scene.idle(15); scene.world.moveSection(trainElement3, util.vector.of(0, 0, -4), 5); } - public static void autoSchedule(SceneBuilder scene, SceneBuildingUtil util) { + public static void autoSchedule(SceneBuilder builder, SceneBuildingUtil util) { + CreateSceneBuilder scene = new CreateSceneBuilder(builder); scene.title("auto_schedule", "Stations & Scheduling"); scene.configureBasePlate(1, 0, 12); scene.scaleSceneView(.65f); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedOverlayElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedOverlayElement.java deleted file mode 100644 index 27d1ff57d..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedOverlayElement.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -public abstract class AnimatedOverlayElement extends PonderOverlayElement { - - protected LerpedFloat fade; - - public AnimatedOverlayElement() { - fade = LerpedFloat.linear() - .startWithValue(0); - } - - public void setFade(float fade) { - this.fade.setValue(fade); - } - - @Override - public final void render(PonderScene scene, PonderUI screen, PoseStack ms, float partialTicks) { - float currentFade = fade.getValue(partialTicks); - render(scene, screen, ms, partialTicks, currentFade); - } - - protected abstract void render(PonderScene scene, PonderUI screen, PoseStack ms, float partialTicks, float fade); - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedSceneElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedSceneElement.java deleted file mode 100644 index a8c8b7258..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/AnimatedSceneElement.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec3; - -public abstract class AnimatedSceneElement extends PonderSceneElement { - - protected Vec3 fadeVec; - protected LerpedFloat fade; - - public AnimatedSceneElement() { - fade = LerpedFloat.linear() - .startWithValue(0); - } - - public void forceApplyFade(float fade) { - this.fade.startWithValue(fade); - } - - public void setFade(float fade) { - this.fade.setValue(fade); - } - - public void setFadeVec(Vec3 fadeVec) { - this.fadeVec = fadeVec; - } - - @Override - public final void renderFirst(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt) { - ms.pushPose(); - float currentFade = applyFade(ms, pt); - renderFirst(world, buffer, ms, currentFade, pt); - ms.popPose(); - } - - @Override - public final void renderLayer(PonderWorld world, MultiBufferSource buffer, RenderType type, PoseStack ms, - float pt) { - ms.pushPose(); - float currentFade = applyFade(ms, pt); - renderLayer(world, buffer, type, ms, currentFade, pt); - ms.popPose(); - } - - @Override - public final void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt) { - ms.pushPose(); - float currentFade = applyFade(ms, pt); - renderLast(world, buffer, ms, currentFade, pt); - ms.popPose(); - } - - protected float applyFade(PoseStack ms, float pt) { - float currentFade = fade.getValue(pt); - if (fadeVec != null) - TransformStack.cast(ms) - .translate(fadeVec.scale(-1 + currentFade)); - return currentFade; - } - - protected void renderLayer(PonderWorld world, MultiBufferSource buffer, RenderType type, PoseStack ms, float fade, - float pt) {} - - protected void renderFirst(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) {} - - protected void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) {} - - protected int lightCoordsFromFade(float fade) { - int light = LightTexture.FULL_BRIGHT; - if (fade != 1) { - light = (int) (Mth.lerp(fade, 5, 0xF)); - light = LightTexture.pack(light, light); - } - return light; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/BeltItemElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/BeltItemElement.java index 79640d5bc..2912a56d1 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/BeltItemElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/BeltItemElement.java @@ -2,6 +2,8 @@ package com.simibubi.create.foundation.ponder.element; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; +import net.createmod.ponder.foundation.element.TrackedElement; + public class BeltItemElement extends TrackedElement { public BeltItemElement(TransportedItemStack wrapped) { diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/EntityElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/EntityElement.java deleted file mode 100644 index 3c3d5b30c..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/EntityElement.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import net.minecraft.world.entity.Entity; - -public class EntityElement extends TrackedElement { - - public EntityElement(Entity wrapped) { - super(wrapped); - } - - @Override - protected boolean isStillValid(Entity element) { - return element.isAlive(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/ExpandedParrotElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/ExpandedParrotElement.java new file mode 100644 index 000000000..fc3471588 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/ExpandedParrotElement.java @@ -0,0 +1,48 @@ +package com.simibubi.create.foundation.ponder.element; + +import java.util.function.Supplier; + +import net.createmod.ponder.foundation.PonderScene; +import net.createmod.ponder.foundation.element.ParrotElement; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.phys.Vec3; + +public class ExpandedParrotElement extends ParrotElement { + + protected boolean deferConductor = false; + + protected ExpandedParrotElement(Vec3 location, Supplier pose) { + super(location, pose); + } + + @Override + public void reset(PonderScene scene) { + super.reset(scene); + entity.getPersistentData().remove("TrainHat"); + deferConductor = false; + } + + @Override + public void tick(PonderScene scene) { + boolean wasNull = entity == null; + super.tick(scene); + if (wasNull) { + if (deferConductor) { + setConductor(true); + } + deferConductor = false; + } + } + + public void setConductor(boolean isConductor) { + if (entity == null) { + deferConductor = isConductor; + return; + } + CompoundTag data = entity.getPersistentData(); + if (isConductor) + data.putBoolean("TrainHat", true); + else + data.remove("TrainHat"); + } +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/InputWindowElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/InputWindowElement.java deleted file mode 100644 index cc2fcbbb7..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/InputWindowElement.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllItems; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.ponder.PonderLocalization; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.Pointing; - -import net.minecraft.client.gui.Font; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec2; -import net.minecraft.world.phys.Vec3; - -public class InputWindowElement extends AnimatedOverlayElement { - - private Pointing direction; - ResourceLocation key; - AllIcons icon; - ItemStack item = ItemStack.EMPTY; - private Vec3 sceneSpace; - - public InputWindowElement clone() { - InputWindowElement inputWindowElement = new InputWindowElement(sceneSpace, direction); - inputWindowElement.key = key; - inputWindowElement.icon = icon; - inputWindowElement.item = item.copy(); - return inputWindowElement; - } - - public InputWindowElement(Vec3 sceneSpace, Pointing direction) { - this.sceneSpace = sceneSpace; - this.direction = direction; - } - - public InputWindowElement withItem(ItemStack stack) { - item = stack; - return this; - } - - public InputWindowElement withWrench() { - item = AllItems.WRENCH.asStack(); - return this; - } - - public InputWindowElement scroll() { - icon = AllIcons.I_SCROLL; - return this; - } - - public InputWindowElement rightClick() { - icon = AllIcons.I_RMB; - return this; - } - - public InputWindowElement showing(AllIcons icon) { - this.icon = icon; - return this; - } - - public InputWindowElement leftClick() { - icon = AllIcons.I_LMB; - return this; - } - - public InputWindowElement whileSneaking() { - key = Create.asResource("sneak_and"); - return this; - } - - public InputWindowElement whileCTRL() { - key = Create.asResource("ctrl_and"); - return this; - } - - @Override - protected void render(PonderScene scene, PonderUI screen, PoseStack ms, float partialTicks, float fade) { - Font font = screen.getFontRenderer(); - int width = 0; - int height = 0; - - float xFade = direction == Pointing.RIGHT ? -1 : direction == Pointing.LEFT ? 1 : 0; - float yFade = direction == Pointing.DOWN ? -1 : direction == Pointing.UP ? 1 : 0; - xFade *= 10 * (1 - fade); - yFade *= 10 * (1 - fade); - - boolean hasItem = !item.isEmpty(); - boolean hasText = key != null; - boolean hasIcon = icon != null; - int keyWidth = 0; - String text = hasText ? PonderLocalization.getShared(key) : ""; - - if (fade < 1 / 16f) - return; - Vec2 sceneToScreen = scene.getTransform() - .sceneToScreen(sceneSpace, partialTicks); - - if (hasIcon) { - width += 24; - height = 24; - } - - if (hasText) { - keyWidth = font.width(text); - width += keyWidth; - } - - if (hasItem) { - width += 24; - height = 24; - } - - ms.pushPose(); - ms.translate(sceneToScreen.x + xFade, sceneToScreen.y + yFade, 400); - - PonderUI.renderSpeechBox(ms, 0, 0, width, height, false, direction, true); - - ms.translate(0, 0, 100); - - if (hasText) - font.draw(ms, text, 2, (height - font.lineHeight) / 2f + 2, - PonderPalette.WHITE.getColorObject().scaleAlpha(fade).getRGB()); - - if (hasIcon) { - ms.pushPose(); - ms.translate(keyWidth, 0, 0); - ms.scale(1.5f, 1.5f, 1.5f); - icon.render(ms, 0, 0, screen); - ms.popPose(); - } - - if (hasItem) { - GuiGameElement.of(item) - .at(keyWidth + (hasIcon ? 24 : 0), 0) - .scale(1.5) - .render(ms); - RenderSystem.disableDepthTest(); - } - - ms.popPose(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java deleted file mode 100644 index deded1210..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/MinecartElement.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.vehicle.AbstractMinecart; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.Vec3; - -public class MinecartElement extends AnimatedSceneElement { - - private Vec3 location; - private LerpedFloat rotation; - private AbstractMinecart entity; - private MinecartConstructor constructor; - private float initialRotation; - - public interface MinecartConstructor { - AbstractMinecart create(Level w, double x, double y, double z); - } - - public MinecartElement(Vec3 location, float rotation, MinecartConstructor constructor) { - initialRotation = rotation; - this.location = location.add(0, 1 / 16f, 0); - this.constructor = constructor; - this.rotation = LerpedFloat.angular() - .startWithValue(rotation); - } - - @Override - public void reset(PonderScene scene) { - super.reset(scene); - entity.setPosRaw(0, 0, 0); - entity.xo = 0; - entity.yo = 0; - entity.zo = 0; - entity.xOld = 0; - entity.yOld = 0; - entity.zOld = 0; - rotation.startWithValue(initialRotation); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (entity == null) - entity = constructor.create(scene.getWorld(), 0, 0, 0); - - entity.tickCount++; - entity.setOnGround(true); - entity.xo = entity.getX(); - entity.yo = entity.getY(); - entity.zo = entity.getZ(); - entity.xOld = entity.getX(); - entity.yOld = entity.getY(); - entity.zOld = entity.getZ(); - } - - public void setPositionOffset(Vec3 position, boolean immediate) { - if (entity == null) - return; - entity.setPos(position.x, position.y, position.z); - if (!immediate) - return; - entity.xo = position.x; - entity.yo = position.y; - entity.zo = position.z; - } - - public void setRotation(float angle, boolean immediate) { - if (entity == null) - return; - rotation.setValue(angle); - if (!immediate) - return; - rotation.startWithValue(angle); - } - - public Vec3 getPositionOffset() { - return entity != null ? entity.position() : Vec3.ZERO; - } - - public Vec3 getRotation() { - return new Vec3(0, rotation.getValue(), 0); - } - - @Override - protected void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) { - EntityRenderDispatcher entityrenderermanager = Minecraft.getInstance() - .getEntityRenderDispatcher(); - if (entity == null) - entity = constructor.create(world, 0, 0, 0); - - ms.pushPose(); - ms.translate(location.x, location.y, location.z); - ms.translate(Mth.lerp(pt, entity.xo, entity.getX()), - Mth.lerp(pt, entity.yo, entity.getY()), Mth.lerp(pt, entity.zo, entity.getZ())); - - TransformStack.cast(ms) - .rotateY(rotation.getValue(pt)); - - entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade)); - ms.popPose(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/OutlinerElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/OutlinerElement.java deleted file mode 100644 index 894397474..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/OutlinerElement.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import java.util.function.Function; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.utility.outliner.Outline.OutlineParams; -import com.simibubi.create.foundation.utility.outliner.Outliner; - -public class OutlinerElement extends AnimatedSceneElement { - - private Function outlinerCall; - private int overrideColor; - - public OutlinerElement(Function outlinerCall) { - this.outlinerCall = outlinerCall; - this.overrideColor = -1; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (fade.getValue() < 1/16f) - return; - if (fade.getValue(0) > fade.getValue(1)) - return; - OutlineParams params = outlinerCall.apply(scene.getOutliner()); - if (overrideColor != -1) - params.colored(overrideColor); - } - - public void setColor(int overrideColor) { - this.overrideColor = overrideColor; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java deleted file mode 100644 index 0c4c8fe7a..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/ParrotElement.java +++ /dev/null @@ -1,272 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import java.util.function.Supplier; - -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.Create; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.AngleHelper; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.entity.EntityRenderDispatcher; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.animal.Parrot; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.phys.Vec3; - -public class ParrotElement extends AnimatedSceneElement { - - private Vec3 location; - private Parrot entity; - private ParrotPose pose; - private boolean deferConductor = false; - private Supplier initialPose; - - public static ParrotElement create(Vec3 location, Supplier pose) { - return new ParrotElement(location, pose); - } - - protected ParrotElement(Vec3 location, Supplier pose) { - this.location = location; - initialPose = pose; - setPose(initialPose.get()); - } - - @Override - public void reset(PonderScene scene) { - super.reset(scene); - setPose(initialPose.get()); - entity.setPosRaw(0, 0, 0); - entity.xo = 0; - entity.yo = 0; - entity.zo = 0; - entity.xOld = 0; - entity.yOld = 0; - entity.zOld = 0; - entity.setXRot(entity.xRotO = 0); - entity.setYRot(entity.yRotO = 180); - entity.getPersistentData() - .remove("TrainHat"); - deferConductor = false; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (entity == null) { - entity = pose.create(scene.getWorld()); - entity.setYRot(entity.yRotO = 180); - if (deferConductor) - setConductor(deferConductor); - deferConductor = false; - } - - entity.tickCount++; - entity.yHeadRotO = entity.yHeadRot; - entity.oFlapSpeed = entity.flapSpeed; - entity.oFlap = entity.flap; - entity.setOnGround(true); - - entity.xo = entity.getX(); - entity.yo = entity.getY(); - entity.zo = entity.getZ(); - entity.yRotO = entity.getYRot(); - entity.xRotO = entity.getXRot(); - - pose.tick(scene, entity, location); - - entity.xOld = entity.getX(); - entity.yOld = entity.getY(); - entity.zOld = entity.getZ(); - } - - public void setPositionOffset(Vec3 position, boolean immediate) { - if (entity == null) - return; - entity.setPos(position.x, position.y, position.z); - if (!immediate) - return; - entity.xo = position.x; - entity.yo = position.y; - entity.zo = position.z; - } - - public void setRotation(Vec3 eulers, boolean immediate) { - if (entity == null) - return; - entity.setXRot((float) eulers.x); - entity.setYRot((float) eulers.y); - if (!immediate) - return; - entity.xRotO = entity.getXRot(); - entity.yRotO = entity.getYRot(); - } - - public void setConductor(boolean isConductor) { - if (entity == null) { - deferConductor = isConductor; - return; - } - CompoundTag data = entity.getPersistentData(); - if (isConductor) - data.putBoolean("TrainHat", true); - else - data.remove("TrainHat"); - } - - public Vec3 getPositionOffset() { - return entity != null ? entity.position() : Vec3.ZERO; - } - - public Vec3 getRotation() { - return entity != null ? new Vec3(entity.getXRot(), entity.getYRot(), 0) : Vec3.ZERO; - } - - @Override - protected void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) { - EntityRenderDispatcher entityrenderermanager = Minecraft.getInstance() - .getEntityRenderDispatcher(); - - if (entity == null) { - entity = pose.create(world); - entity.setYRot(entity.yRotO = 180); - } - - ms.pushPose(); - ms.translate(location.x, location.y, location.z); - ms.translate(Mth.lerp(pt, entity.xo, entity.getX()), Mth.lerp(pt, entity.yo, entity.getY()), - Mth.lerp(pt, entity.zo, entity.getZ())); - - TransformStack.cast(ms) - .rotateY(AngleHelper.angleLerp(pt, entity.yRotO, entity.getYRot())); - - entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade)); - ms.popPose(); - } - - public void setPose(ParrotPose pose) { - this.pose = pose; - } - - public static abstract class ParrotPose { - - abstract void tick(PonderScene scene, Parrot entity, Vec3 location); - - Parrot create(PonderWorld world) { - Parrot entity = new Parrot(EntityType.PARROT, world); - int nextInt = Create.RANDOM.nextInt(5); - entity.setVariant(nextInt == 1 ? 0 : nextInt); // blue parrots are kinda hard to see - return entity; - } - - } - - public static class DancePose extends ParrotPose { - - @Override - Parrot create(PonderWorld world) { - Parrot entity = super.create(world); - entity.setRecordPlayingNearby(BlockPos.ZERO, true); - return entity; - } - - @Override - void tick(PonderScene scene, Parrot entity, Vec3 location) { - entity.yRotO = entity.getYRot(); - entity.setYRot(entity.getYRot() - 2); - } - - } - - public static class FlappyPose extends ParrotPose { - - @Override - void tick(PonderScene scene, Parrot entity, Vec3 location) { - double length = entity.position() - .subtract(entity.xOld, entity.yOld, entity.zOld) - .length(); - entity.setOnGround(false); - double phase = Math.min(length * 15, 8); - float f = (float) ((PonderUI.ponderTicks % 100) * phase); - entity.flapSpeed = Mth.sin(f) + 1; - if (length == 0) - entity.flapSpeed = 0; - } - - } - - public static class SpinOnComponentPose extends ParrotPose { - - private BlockPos componentPos; - - public SpinOnComponentPose(BlockPos componentPos) { - this.componentPos = componentPos; - } - - @Override - void tick(PonderScene scene, Parrot entity, Vec3 location) { - BlockEntity tileEntity = scene.getWorld() - .getBlockEntity(componentPos); - if (!(tileEntity instanceof KineticTileEntity)) - return; - float rpm = ((KineticTileEntity) tileEntity).getSpeed(); - entity.yRotO = entity.getYRot(); - entity.setYRot(entity.getYRot() + (rpm * .3f)); - } - - } - - public static abstract class FaceVecPose extends ParrotPose { - - @Override - void tick(PonderScene scene, Parrot entity, Vec3 location) { - Vec3 p_200602_2_ = getFacedVec(scene); - Vec3 Vector3d = location.add(entity.getEyePosition(0)); - double d0 = p_200602_2_.x - Vector3d.x; - double d1 = p_200602_2_.y - Vector3d.y; - double d2 = p_200602_2_.z - Vector3d.z; - double d3 = Mth.sqrt((float) (d0 * d0 + d2 * d2)); - float targetPitch = Mth.wrapDegrees((float) -(Mth.atan2(d1, d3) * (double) (180F / (float) Math.PI))); - float targetYaw = Mth.wrapDegrees((float) -(Mth.atan2(d2, d0) * (double) (180F / (float) Math.PI)) + 90); - - entity.setXRot(AngleHelper.angleLerp(.4f, entity.getXRot(), targetPitch)); - entity.setYRot(AngleHelper.angleLerp(.4f, entity.getYRot(), targetYaw)); - } - - protected abstract Vec3 getFacedVec(PonderScene scene); - - } - - public static class FacePointOfInterestPose extends FaceVecPose { - - @Override - protected Vec3 getFacedVec(PonderScene scene) { - return scene.getPointOfInterest(); - } - - } - - public static class FaceCursorPose extends FaceVecPose { - - @Override - protected Vec3 getFacedVec(PonderScene scene) { - Minecraft minecraft = Minecraft.getInstance(); - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - return scene.getTransform() - .screenToScene(mouseX, mouseY, 300, 0); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/PonderElement.java deleted file mode 100644 index f8f63dc09..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderElement.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public class PonderElement { - - boolean visible = true; - - public void whileSkipping(PonderScene scene) {} - - public void tick(PonderScene scene) {} - - public void reset(PonderScene scene) {} - - public boolean isVisible() { - return visible; - } - - public void setVisible(boolean visible) { - this.visible = visible; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderOverlayElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/PonderOverlayElement.java deleted file mode 100644 index 9808d3d18..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderOverlayElement.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.ui.PonderUI; - -public abstract class PonderOverlayElement extends PonderElement { - - public void tick(PonderScene scene) {} - - public abstract void render(PonderScene scene, PonderUI screen, PoseStack ms, float partialTicks); - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderSceneElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/PonderSceneElement.java deleted file mode 100644 index b5f5211fa..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/PonderSceneElement.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderWorld; - -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; - -public abstract class PonderSceneElement extends PonderElement { - - public abstract void renderFirst(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt); - - public abstract void renderLayer(PonderWorld world, MultiBufferSource buffer, RenderType type, PoseStack ms, float pt); - - public abstract void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt); - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java deleted file mode 100644 index 6d792a8af..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import java.util.List; -import java.util.function.Supplier; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Matrix4f; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.ponder.PonderLocalization; -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.Color; - -import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.Style; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec2; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.gui.GuiUtils; - -public class TextWindowElement extends AnimatedOverlayElement { - - Supplier textGetter = () -> "(?) No text was provided"; - String bakedText; - - // from 0 to 200 - int y; - - Vec3 vec; - - boolean nearScene = false; - int color = PonderPalette.WHITE.getColor(); - - public class Builder { - - private PonderScene scene; - - public Builder(PonderScene scene) { - this.scene = scene; - } - - public Builder colored(PonderPalette color) { - TextWindowElement.this.color = color.getColor(); - return this; - } - - public Builder pointAt(Vec3 vec) { - TextWindowElement.this.vec = vec; - return this; - } - - public Builder independent(int y) { - TextWindowElement.this.y = y; - return this; - } - - public Builder independent() { - return independent(0); - } - - public Builder text(String defaultText) { - textGetter = scene.registerText(defaultText); - return this; - } - - public Builder sharedText(ResourceLocation key) { - textGetter = () -> PonderLocalization.getShared(key); - return this; - } - - public Builder sharedText(String key) { - return sharedText(new ResourceLocation(scene.getNamespace(), key)); - } - - public Builder placeNearTarget() { - TextWindowElement.this.nearScene = true; - return this; - } - - public Builder attachKeyFrame() { - scene.builder() - .addLazyKeyframe(); - return this; - } - - } - - @Override - protected void render(PonderScene scene, PonderUI screen, PoseStack ms, float partialTicks, float fade) { - if (bakedText == null) - bakedText = textGetter.get(); - if (fade < 1 / 16f) - return; - Vec2 sceneToScreen = vec != null ? scene.getTransform() - .sceneToScreen(vec, partialTicks) : new Vec2(screen.width / 2, (screen.height - 200) / 2 + y - 8); - - float yDiff = (screen.height / 2f - sceneToScreen.y - 10) / 100f; - int targetX = (int) (screen.width * Mth.lerp(yDiff * yDiff, 6f / 8, 5f / 8)); - - if (nearScene) - targetX = (int) Math.min(targetX, sceneToScreen.x + 50); - - int textWidth = Math.min(screen.width - targetX, 180); - - List lines = screen.getFontRenderer().getSplitter().splitLines(bakedText, textWidth, Style.EMPTY); - - int boxWidth = 0; - for (FormattedText line : lines) - boxWidth = Math.max(boxWidth, screen.getFontRenderer().width(line)); - - int boxHeight = screen.getFontRenderer() - .wordWrapHeight(bakedText, boxWidth); - - ms.pushPose(); - ms.translate(0, sceneToScreen.y, 400); - - new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.TEXT_WINDOW_BORDER)) - .at(targetX - 10, 3, 100) - .withBounds(boxWidth, boxHeight - 1) - .render(ms); - - //PonderUI.renderBox(ms, targetX - 10, 3, boxWidth, boxHeight - 1, 0xaa000000, 0x30eebb00, 0x10eebb00); - - int brighterColor = Color.mixColors(color, 0xFFffffdd, 1 / 2f); - brighterColor = (0x00ffffff & brighterColor) | 0xff000000; - if (vec != null) { - ms.pushPose(); - ms.translate(sceneToScreen.x, 0, 0); - double lineTarget = (targetX - sceneToScreen.x) * fade; - ms.scale((float) lineTarget, 1, 1); - Matrix4f model = ms.last().pose(); - GuiUtils.drawGradientRect(model, -100, 0, 0, 1, 1, brighterColor, brighterColor); - GuiUtils.drawGradientRect(model, -100, 0, 1, 1, 2, 0xFF494949, 0xFF393939); - ms.popPose(); - } - - ms.translate(0, 0, 400); - for (int i = 0; i < lines.size(); i++) { - screen.getFontRenderer() - .draw(ms, lines.get(i) - .getString(), targetX - 10, 3 + 9 * i, new Color(brighterColor).scaleAlpha(fade).getRGB()); - } - ms.popPose(); - } - - public int getColor() { - return color; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/TrackedElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/TrackedElement.java deleted file mode 100644 index bcf5fa776..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/TrackedElement.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import java.lang.ref.WeakReference; -import java.util.function.Consumer; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.ponder.PonderWorld; - -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; - -public abstract class TrackedElement extends PonderSceneElement { - - private WeakReference reference; - - public TrackedElement(T wrapped) { - this.reference = new WeakReference<>(wrapped); - } - - public void ifPresent(Consumer func) { - if (reference == null) - return; - T resolved = reference.get(); - if (resolved == null) - return; - func.accept(resolved); - } - - protected boolean isStillValid(T element) { - return true; - } - - @Override - public void renderFirst(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt) {} - - @Override - public void renderLayer(PonderWorld world, MultiBufferSource buffer, RenderType type, PoseStack ms, float pt) {} - - @Override - public void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float pt) {} - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java b/src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java deleted file mode 100644 index ad2549630..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java +++ /dev/null @@ -1,462 +0,0 @@ -package com.simibubi.create.foundation.ponder.element; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; -import java.util.function.Consumer; - -import com.jozufozu.flywheel.core.model.ModelUtil; -import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferBuilder; -import com.jozufozu.flywheel.core.model.ShadeSeparatingVertexConsumer; -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.SheetedDecalTextureGenerator; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.blaze3d.vertex.VertexFormat; -import com.simibubi.create.CreateClient; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.render.SuperByteBufferCache; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.render.TileEntityRenderHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.outliner.AABBOutline; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.block.ModelBlockRenderer; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction.Axis; -import net.minecraft.util.Mth; -import net.minecraft.world.level.ClipContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.model.data.EmptyModelData; - -public class WorldSectionElement extends AnimatedSceneElement { - - public static final SuperByteBufferCache.Compartment> DOC_WORLD_SECTION = - new SuperByteBufferCache.Compartment<>(); - - private static final ThreadLocal THREAD_LOCAL_OBJECTS = ThreadLocal.withInitial(ThreadLocalObjects::new); - - List renderedTileEntities; - List>> tickableTileEntities; - Selection section; - boolean redraw; - - Vec3 prevAnimatedOffset = Vec3.ZERO; - Vec3 animatedOffset = Vec3.ZERO; - Vec3 prevAnimatedRotation = Vec3.ZERO; - Vec3 animatedRotation = Vec3.ZERO; - Vec3 centerOfRotation = Vec3.ZERO; - Vec3 stabilizationAnchor = null; - - BlockPos selectedBlock; - - public WorldSectionElement() {} - - public WorldSectionElement(Selection section) { - this.section = section.copy(); - centerOfRotation = section.getCenter(); - } - - public void mergeOnto(WorldSectionElement other) { - setVisible(false); - if (other.isEmpty()) - other.set(section); - else - other.add(section); - } - - public void set(Selection selection) { - applyNewSelection(selection.copy()); - } - - public void add(Selection toAdd) { - applyNewSelection(this.section.add(toAdd)); - } - - public void erase(Selection toErase) { - applyNewSelection(this.section.substract(toErase)); - } - - private void applyNewSelection(Selection selection) { - this.section = selection; - queueRedraw(); - } - - public void setCenterOfRotation(Vec3 center) { - centerOfRotation = center; - } - - public void stabilizeRotation(Vec3 anchor) { - stabilizationAnchor = anchor; - } - - @Override - public void reset(PonderScene scene) { - super.reset(scene); - resetAnimatedTransform(); - resetSelectedBlock(); - } - - public void selectBlock(BlockPos pos) { - selectedBlock = pos; - } - - public void resetSelectedBlock() { - selectedBlock = null; - } - - public void resetAnimatedTransform() { - prevAnimatedOffset = Vec3.ZERO; - animatedOffset = Vec3.ZERO; - prevAnimatedRotation = Vec3.ZERO; - animatedRotation = Vec3.ZERO; - } - - public void queueRedraw() { - redraw = true; - } - - public boolean isEmpty() { - return section == null; - } - - public void setEmpty() { - section = null; - } - - public void setAnimatedRotation(Vec3 eulerAngles, boolean force) { - this.animatedRotation = eulerAngles; - if (force) - prevAnimatedRotation = animatedRotation; - } - - public Vec3 getAnimatedRotation() { - return animatedRotation; - } - - public void setAnimatedOffset(Vec3 offset, boolean force) { - this.animatedOffset = offset; - if (force) - prevAnimatedOffset = animatedOffset; - } - - public Vec3 getAnimatedOffset() { - return animatedOffset; - } - - @Override - public boolean isVisible() { - return super.isVisible() && !isEmpty(); - } - - class WorldSectionRayTraceResult { - Vec3 actualHitVec; - BlockPos worldPos; - } - - public Pair rayTrace(PonderWorld world, Vec3 source, Vec3 target) { - world.setMask(this.section); - Vec3 transformedTarget = reverseTransformVec(target); - BlockHitResult rayTraceBlocks = world.clip(new ClipContext(reverseTransformVec(source), transformedTarget, - ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, null)); - world.clearMask(); - - if (rayTraceBlocks == null) - return null; - if (rayTraceBlocks.getLocation() == null) - return null; - - double t = rayTraceBlocks.getLocation() - .subtract(transformedTarget) - .lengthSqr() - / source.subtract(target) - .lengthSqr(); - Vec3 actualHit = VecHelper.lerp((float) t, target, source); - return Pair.of(actualHit, rayTraceBlocks.getBlockPos()); - } - - private Vec3 reverseTransformVec(Vec3 in) { - float pt = AnimationTickHolder.getPartialTicks(); - in = in.subtract(VecHelper.lerp(pt, prevAnimatedOffset, animatedOffset)); - if (!animatedRotation.equals(Vec3.ZERO) || !prevAnimatedRotation.equals(Vec3.ZERO)) { - if (centerOfRotation == null) - centerOfRotation = section.getCenter(); - double rotX = Mth.lerp(pt, prevAnimatedRotation.x, animatedRotation.x); - double rotZ = Mth.lerp(pt, prevAnimatedRotation.z, animatedRotation.z); - double rotY = Mth.lerp(pt, prevAnimatedRotation.y, animatedRotation.y); - in = in.subtract(centerOfRotation); - in = VecHelper.rotate(in, -rotX, Axis.X); - in = VecHelper.rotate(in, -rotZ, Axis.Z); - in = VecHelper.rotate(in, -rotY, Axis.Y); - in = in.add(centerOfRotation); - if (stabilizationAnchor != null) { - in = in.subtract(stabilizationAnchor); - in = VecHelper.rotate(in, rotX, Axis.X); - in = VecHelper.rotate(in, rotZ, Axis.Z); - in = VecHelper.rotate(in, rotY, Axis.Y); - in = in.add(stabilizationAnchor); - } - } - return in; - } - - public void transformMS(PoseStack ms, float pt) { - TransformStack.cast(ms) - .translate(VecHelper.lerp(pt, prevAnimatedOffset, animatedOffset)); - if (!animatedRotation.equals(Vec3.ZERO) || !prevAnimatedRotation.equals(Vec3.ZERO)) { - if (centerOfRotation == null) - centerOfRotation = section.getCenter(); - double rotX = Mth.lerp(pt, prevAnimatedRotation.x, animatedRotation.x); - double rotZ = Mth.lerp(pt, prevAnimatedRotation.z, animatedRotation.z); - double rotY = Mth.lerp(pt, prevAnimatedRotation.y, animatedRotation.y); - TransformStack.cast(ms) - .translate(centerOfRotation) - .rotateX(rotX) - .rotateZ(rotZ) - .rotateY(rotY) - .translateBack(centerOfRotation); - if (stabilizationAnchor != null) { - TransformStack.cast(ms) - .translate(stabilizationAnchor) - .rotateX(-rotX) - .rotateZ(-rotZ) - .rotateY(-rotY) - .translateBack(stabilizationAnchor); - } - } - } - - public void tick(PonderScene scene) { - prevAnimatedOffset = animatedOffset; - prevAnimatedRotation = animatedRotation; - if (!isVisible()) - return; - loadTEsIfMissing(scene.getWorld()); - renderedTileEntities.removeIf(te -> scene.getWorld() - .getBlockEntity(te.getBlockPos()) != te); - tickableTileEntities.removeIf(te -> scene.getWorld() - .getBlockEntity(te.getFirst() - .getBlockPos()) != te.getFirst()); - tickableTileEntities.forEach(te -> te.getSecond() - .accept(scene.getWorld())); - } - - @Override - public void whileSkipping(PonderScene scene) { - if (redraw) { - renderedTileEntities = null; - tickableTileEntities = null; - } - redraw = false; - } - - protected void loadTEsIfMissing(PonderWorld world) { - if (renderedTileEntities != null) - return; - tickableTileEntities = new ArrayList<>(); - renderedTileEntities = new ArrayList<>(); - section.forEach(pos -> { - BlockEntity tileEntity = world.getBlockEntity(pos); - BlockState blockState = world.getBlockState(pos); - Block block = blockState.getBlock(); - if (tileEntity == null) - return; - if (!(block instanceof EntityBlock)) - return; - tileEntity.setBlockState(world.getBlockState(pos)); - BlockEntityTicker ticker = ((EntityBlock) block).getTicker(world, blockState, tileEntity.getType()); - if (ticker != null) - addTicker(tileEntity, ticker); - renderedTileEntities.add(tileEntity); - }); - } - - @SuppressWarnings("unchecked") - private void addTicker(T tileEntity, BlockEntityTicker ticker) { - tickableTileEntities.add(Pair.of(tileEntity, w -> ((BlockEntityTicker) ticker).tick(w, - tileEntity.getBlockPos(), tileEntity.getBlockState(), tileEntity))); - } - - @Override - public void renderFirst(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) { - int light = -1; - if (fade != 1) - light = (int) (Mth.lerp(fade, 5, 14)); - if (redraw) { - renderedTileEntities = null; - tickableTileEntities = null; - } - - ms.pushPose(); - transformMS(ms, pt); - world.pushFakeLight(light); - renderTileEntities(world, ms, buffer, pt); - world.popLight(); - - Map blockBreakingProgressions = world.getBlockBreakingProgressions(); - PoseStack overlayMS = null; - - for (Entry entry : blockBreakingProgressions.entrySet()) { - BlockPos pos = entry.getKey(); - if (!section.test(pos)) - continue; - if (overlayMS == null) { - overlayMS = new PoseStack(); - world.scene.getTransform() - .apply(overlayMS, pt, true); - transformMS(overlayMS, pt); - } - - ms.pushPose(); - ms.translate(pos.getX(), pos.getY(), pos.getZ()); - VertexConsumer builder = new SheetedDecalTextureGenerator( - buffer.getBuffer(ModelBakery.DESTROY_TYPES.get(entry.getValue())), overlayMS.last() - .pose(), - overlayMS.last() - .normal()); - ModelUtil.VANILLA_RENDERER - .renderBatched(world.getBlockState(pos), pos, world, ms, builder, true, new Random(), - EmptyModelData.INSTANCE); - ms.popPose(); - } - - ms.popPose(); - } - - @Override - protected void renderLayer(PonderWorld world, MultiBufferSource buffer, RenderType type, PoseStack ms, float fade, - float pt) { - SuperByteBufferCache bufferCache = CreateClient.BUFFER_CACHE; - - int code = hashCode() ^ world.hashCode(); - Pair key = Pair.of(code, RenderType.chunkBufferLayers() - .indexOf(type)); - - if (redraw) - bufferCache.invalidate(DOC_WORLD_SECTION, key); - SuperByteBuffer contraptionBuffer = - bufferCache.get(DOC_WORLD_SECTION, key, () -> buildStructureBuffer(world, type)); - if (contraptionBuffer.isEmpty()) - return; - - transformMS(contraptionBuffer.getTransforms(), pt); - int light = lightCoordsFromFade(fade); - contraptionBuffer - .light(light) - .renderInto(ms, buffer.getBuffer(type)); - } - - @Override - protected void renderLast(PonderWorld world, MultiBufferSource buffer, PoseStack ms, float fade, float pt) { - redraw = false; - if (selectedBlock == null) - return; - BlockState blockState = world.getBlockState(selectedBlock); - if (blockState.isAir()) - return; - VoxelShape shape = - blockState.getShape(world, selectedBlock, CollisionContext.of(Minecraft.getInstance().player)); - if (shape.isEmpty()) - return; - - ms.pushPose(); - transformMS(ms, pt); - ms.translate(selectedBlock.getX(), selectedBlock.getY(), selectedBlock.getZ()); - - AABBOutline aabbOutline = new AABBOutline(shape.bounds()); - aabbOutline.getParams() - .lineWidth(1 / 64f) - .colored(0xefefef) - .disableNormals(); - aabbOutline.render(ms, (SuperRenderTypeBuffer) buffer, pt); - - ms.popPose(); - } - - private void renderTileEntities(PonderWorld world, PoseStack ms, MultiBufferSource buffer, float pt) { - loadTEsIfMissing(world); - TileEntityRenderHelper.renderTileEntities(world, renderedTileEntities, ms, buffer, pt); - } - - private SuperByteBuffer buildStructureBuffer(PonderWorld world, RenderType layer) { - BlockRenderDispatcher dispatcher = ModelUtil.VANILLA_RENDERER; - ThreadLocalObjects objects = THREAD_LOCAL_OBJECTS.get(); - - PoseStack poseStack = objects.poseStack; - Random random = objects.random; - ShadeSeparatingVertexConsumer shadeSeparatingWrapper = objects.shadeSeparatingWrapper; - ShadeSeparatedBufferBuilder builder = new ShadeSeparatedBufferBuilder(512); - BufferBuilder unshadedBuilder = objects.unshadedBuilder; - - builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK); - unshadedBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK); - shadeSeparatingWrapper.prepare(builder, unshadedBuilder); - - world.setMask(this.section); - ForgeHooksClient.setRenderType(layer); - ModelBlockRenderer.enableCaching(); - section.forEach(pos -> { - BlockState state = world.getBlockState(pos); - FluidState fluidState = world.getFluidState(pos); - - poseStack.pushPose(); - poseStack.translate(pos.getX(), pos.getY(), pos.getZ()); - - if (state.getRenderShape() == RenderShape.MODEL && ItemBlockRenderTypes.canRenderInLayer(state, layer)) { - BlockEntity tileEntity = world.getBlockEntity(pos); - dispatcher.renderBatched(state, pos, world, poseStack, shadeSeparatingWrapper, true, random, - tileEntity != null ? tileEntity.getModelData() : EmptyModelData.INSTANCE); - } - - if (!fluidState.isEmpty() && ItemBlockRenderTypes.canRenderInLayer(fluidState, layer)) - dispatcher.renderLiquid(pos, world, builder, state, fluidState); - - poseStack.popPose(); - }); - ModelBlockRenderer.clearCache(); - ForgeHooksClient.setRenderType(null); - world.clearMask(); - - shadeSeparatingWrapper.clear(); - unshadedBuilder.end(); - builder.appendUnshadedVertices(unshadedBuilder); - builder.end(); - - return new SuperByteBuffer(builder); - } - - private static class ThreadLocalObjects { - public final PoseStack poseStack = new PoseStack(); - public final Random random = new Random(); - public final ShadeSeparatingVertexConsumer shadeSeparatingWrapper = new ShadeSeparatingVertexConsumer(); - public final BufferBuilder unshadedBuilder = new BufferBuilder(512); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/element/package-info.java b/src/main/java/com/simibubi/create/foundation/ponder/element/package-info.java new file mode 100644 index 000000000..d5ca466a5 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/package-info.java @@ -0,0 +1,9 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package com.simibubi.create.foundation.ponder.element; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateBogeyInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateBogeyInstruction.java deleted file mode 100644 index 7ef25e721..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateBogeyInstruction.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -public class AnimateBogeyInstruction { - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateElementInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateElementInstruction.java deleted file mode 100644 index 9df762631..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateElementInstruction.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.BiConsumer; -import java.util.function.Function; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.element.PonderSceneElement; - -import net.minecraft.world.phys.Vec3; - -public class AnimateElementInstruction extends TickingInstruction { - - protected Vec3 deltaPerTick; - protected Vec3 totalDelta; - protected Vec3 target; - protected ElementLink link; - protected T element; - - private BiConsumer setter; - private Function getter; - - protected AnimateElementInstruction(ElementLink link, Vec3 totalDelta, int ticks, - BiConsumer setter, Function getter) { - super(false, ticks); - this.link = link; - this.setter = setter; - this.getter = getter; - this.deltaPerTick = totalDelta.scale(1d / ticks); - this.totalDelta = totalDelta; - this.target = totalDelta; - } - - @Override - protected final void firstTick(PonderScene scene) { - super.firstTick(scene); - element = scene.resolve(link); - if (element == null) - return; - target = getter.apply(element) - .add(totalDelta); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (element == null) - return; - if (remainingTicks == 0) { - setter.accept(element, target); - setter.accept(element, target); - return; - } - setter.accept(element, getter.apply(element) - .add(deltaPerTick)); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateMinecartInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateMinecartInstruction.java deleted file mode 100644 index 3dc1df60a..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateMinecartInstruction.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.BiConsumer; -import java.util.function.Function; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.element.MinecartElement; - -import net.minecraft.world.phys.Vec3; - -public class AnimateMinecartInstruction extends AnimateElementInstruction { - - public static AnimateMinecartInstruction rotate(ElementLink link, float rotation, int ticks) { - return new AnimateMinecartInstruction(link, new Vec3(0, rotation, 0), ticks, - (wse, v) -> wse.setRotation((float) v.y, ticks == 0), MinecartElement::getRotation); - } - - public static AnimateMinecartInstruction move(ElementLink link, Vec3 offset, int ticks) { - return new AnimateMinecartInstruction(link, offset, ticks, (wse, v) -> wse.setPositionOffset(v, ticks == 0), - MinecartElement::getPositionOffset); - } - - protected AnimateMinecartInstruction(ElementLink link, Vec3 totalDelta, int ticks, - BiConsumer setter, Function getter) { - super(link, totalDelta, ticks, setter, getter); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateParrotInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateParrotInstruction.java deleted file mode 100644 index 27b86461e..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateParrotInstruction.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.BiConsumer; -import java.util.function.Function; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.element.ParrotElement; - -import net.minecraft.world.phys.Vec3; - -public class AnimateParrotInstruction extends AnimateElementInstruction { - - public static AnimateParrotInstruction rotate(ElementLink link, Vec3 rotation, int ticks) { - return new AnimateParrotInstruction(link, rotation, ticks, (wse, v) -> wse.setRotation(v, ticks == 0), - ParrotElement::getRotation); - } - - public static AnimateParrotInstruction move(ElementLink link, Vec3 offset, int ticks) { - return new AnimateParrotInstruction(link, offset, ticks, (wse, v) -> wse.setPositionOffset(v, ticks == 0), - ParrotElement::getPositionOffset); - } - - protected AnimateParrotInstruction(ElementLink link, Vec3 totalDelta, int ticks, - BiConsumer setter, Function getter) { - super(link, totalDelta, ticks, setter, getter); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateTileEntityInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateTileEntityInstruction.java index cd65b8a36..335a29e65 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateTileEntityInstruction.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateTileEntityInstruction.java @@ -8,9 +8,10 @@ import com.simibubi.create.content.contraptions.components.deployer.DeployerTile import com.simibubi.create.content.contraptions.components.structureMovement.bearing.IBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity; import com.simibubi.create.content.logistics.trains.track.StandardBogeyTileEntity; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; +import net.createmod.ponder.foundation.PonderScene; +import net.createmod.ponder.foundation.PonderWorld; +import net.createmod.ponder.foundation.instruction.TickingInstruction; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntity; @@ -21,8 +22,8 @@ public class AnimateTileEntityInstruction extends TickingInstruction { protected double target; protected final BlockPos location; - private BiConsumer setter; - private Function getter; + private final BiConsumer setter; + private final Function getter; public static AnimateTileEntityInstruction bearing(BlockPos location, float totalDelta, int ticks) { return new AnimateTileEntityInstruction(location, totalDelta, ticks, diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateWorldSectionInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateWorldSectionInstruction.java deleted file mode 100644 index afb362a47..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/AnimateWorldSectionInstruction.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.BiConsumer; -import java.util.function.Function; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; - -import net.minecraft.world.phys.Vec3; - -public class AnimateWorldSectionInstruction extends AnimateElementInstruction { - - public static AnimateWorldSectionInstruction rotate(ElementLink link, Vec3 rotation, - int ticks) { - return new AnimateWorldSectionInstruction(link, rotation, ticks, - (wse, v) -> wse.setAnimatedRotation(v, ticks == 0), WorldSectionElement::getAnimatedRotation); - } - - public static AnimateWorldSectionInstruction move(ElementLink link, Vec3 offset, int ticks) { - return new AnimateWorldSectionInstruction(link, offset, ticks, (wse, v) -> wse.setAnimatedOffset(v, ticks == 0), - WorldSectionElement::getAnimatedOffset); - } - - protected AnimateWorldSectionInstruction(ElementLink link, Vec3 totalDelta, int ticks, - BiConsumer setter, Function getter) { - super(link, totalDelta, ticks, setter, getter); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ChaseAABBInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/ChaseAABBInstruction.java deleted file mode 100644 index 9370df375..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ChaseAABBInstruction.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; - -import net.minecraft.world.phys.AABB; - -public class ChaseAABBInstruction extends TickingInstruction { - - private AABB bb; - private Object slot; - private PonderPalette color; - - public ChaseAABBInstruction(PonderPalette color, Object slot, AABB bb, int ticks) { - super(false, ticks); - this.color = color; - this.slot = slot; - this.bb = bb; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - scene.getOutliner() - .chaseAABB(slot, bb) - .lineWidth(1 / 16f) - .colored(color.getColor()); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateMinecartInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateMinecartInstruction.java deleted file mode 100644 index efd187fe4..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateMinecartInstruction.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.element.MinecartElement; - -import net.minecraft.core.Direction; - -public class CreateMinecartInstruction extends FadeIntoSceneInstruction { - - public CreateMinecartInstruction(int fadeInTicks, Direction fadeInFrom, MinecartElement element) { - super(fadeInTicks, fadeInFrom, element); - } - - @Override - protected Class getElementClass() { - return MinecartElement.class; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateParrotInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateParrotInstruction.java deleted file mode 100644 index 32ec9153b..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/CreateParrotInstruction.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.element.ParrotElement; - -import net.minecraft.core.Direction; - -public class CreateParrotInstruction extends FadeIntoSceneInstruction { - - public CreateParrotInstruction(int fadeInTicks, Direction fadeInFrom, ParrotElement element) { - super(fadeInTicks, fadeInFrom, element); - } - - @Override - protected Class getElementClass() { - return ParrotElement.class; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/DelayInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/DelayInstruction.java deleted file mode 100644 index a112b8599..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/DelayInstruction.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -public class DelayInstruction extends TickingInstruction { - - public DelayInstruction(int ticks) { - super(true, ticks); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/DisplayWorldSectionInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/DisplayWorldSectionInstruction.java deleted file mode 100644 index b809239de..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/DisplayWorldSectionInstruction.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.Optional; -import java.util.function.Supplier; - -import javax.annotation.Nullable; - -import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; - -public class DisplayWorldSectionInstruction extends FadeIntoSceneInstruction { - - private Selection initialSelection; - private Optional> mergeOnto; - private BlockPos glue; - - public DisplayWorldSectionInstruction(int fadeInTicks, Direction fadeInFrom, Selection selection, - Optional> mergeOnto) { - this(fadeInTicks, fadeInFrom, selection, mergeOnto, null); - } - - public DisplayWorldSectionInstruction(int fadeInTicks, Direction fadeInFrom, Selection selection, - Optional> mergeOnto, @Nullable BlockPos glue) { - super(fadeInTicks, fadeInFrom, new WorldSectionElement(selection)); - initialSelection = selection; - this.mergeOnto = mergeOnto; - this.glue = glue; - } - - @Override - protected void firstTick(PonderScene scene) { - super.firstTick(scene); - mergeOnto.ifPresent(wse -> element.setAnimatedOffset(wse.get() - .getAnimatedOffset(), true)); - element.set(initialSelection); - element.setVisible(true); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (remainingTicks > 0) - return; - mergeOnto.ifPresent(c -> element.mergeOnto(c.get())); - if (glue != null) - SuperGlueItem.spawnParticles(scene.getWorld(), glue, fadeInFrom, true); - } - - @Override - protected Class getElementClass() { - return WorldSectionElement.class; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/EmitParticlesInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/EmitParticlesInstruction.java deleted file mode 100644 index 6c19f81e0..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/EmitParticlesInstruction.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.Create; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.ParticleEngine; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.world.phys.Vec3; - -public class EmitParticlesInstruction extends TickingInstruction { - - private Vec3 anchor; - private Emitter emitter; - private float runsPerTick; - - @FunctionalInterface - public static interface Emitter { - - public static Emitter simple(T data, Vec3 motion) { - return (w, x, y, z) -> w.addParticle(data, x, y, z, motion.x, motion.y, motion.z); - } - - public static Emitter withinBlockSpace(T data, Vec3 motion) { - return (w, x, y, z) -> w.addParticle(data, Math.floor(x) + Create.RANDOM.nextFloat(), - Math.floor(y) + Create.RANDOM.nextFloat(), Math.floor(z) + Create.RANDOM.nextFloat(), motion.x, - motion.y, motion.z); - } - - static ParticleEngine paticleManager() { - return Minecraft.getInstance().particleEngine; - } - - public void create(PonderWorld world, double x, double y, double z); - - } - - public EmitParticlesInstruction(Vec3 anchor, Emitter emitter, float runsPerTick, int ticks) { - super(false, ticks); - this.anchor = anchor; - this.emitter = emitter; - this.runsPerTick = runsPerTick; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - int runs = (int) runsPerTick; - if (Create.RANDOM.nextFloat() < (runsPerTick - runs)) - runs++; - for (int i = 0; i < runs; i++) - emitter.create(scene.getWorld(), anchor.x, anchor.y, anchor.z); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeInOutInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeInOutInstruction.java deleted file mode 100644 index 6860d2565..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeInOutInstruction.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public abstract class FadeInOutInstruction extends TickingInstruction { - - protected static final int fadeTime = 5; - - public FadeInOutInstruction(int duration) { - super(false, duration + 2 * fadeTime); - } - - protected abstract void show(PonderScene scene); - - protected abstract void hide(PonderScene scene); - - protected abstract void applyFade(PonderScene scene, float fade); - - @Override - protected void firstTick(PonderScene scene) { - super.firstTick(scene); - show(scene); - applyFade(scene, 0); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - int elapsed = totalTicks - remainingTicks; - - if (elapsed < fadeTime) { - float fade = (elapsed / (float) fadeTime); - applyFade(scene, fade * fade); - - } else if (remainingTicks < fadeTime) { - float fade = (remainingTicks / (float) fadeTime); - applyFade(scene, fade * fade); - - } else - applyFade(scene, 1); - - if (remainingTicks == 0) { - applyFade(scene, 0); - hide(scene); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeIntoSceneInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeIntoSceneInstruction.java deleted file mode 100644 index 267345998..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeIntoSceneInstruction.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.element.AnimatedSceneElement; - -import net.minecraft.core.Direction; -import net.minecraft.world.phys.Vec3; - -public abstract class FadeIntoSceneInstruction extends TickingInstruction { - - protected Direction fadeInFrom; - protected T element; - private ElementLink elementLink; - - public FadeIntoSceneInstruction(int fadeInTicks, Direction fadeInFrom, T element) { - super(false, fadeInTicks); - this.fadeInFrom = fadeInFrom; - this.element = element; - } - - @Override - protected void firstTick(PonderScene scene) { - super.firstTick(scene); - scene.addElement(element); - element.setVisible(true); - element.setFade(0); - element.setFadeVec(fadeInFrom == null ? Vec3.ZERO - : Vec3.atLowerCornerOf(fadeInFrom.getNormal()) - .scale(.5f)); - if (elementLink != null) - scene.linkElement(element, elementLink); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - float fade = totalTicks == 0 ? 1 : (remainingTicks / (float) totalTicks); - element.setFade(1 - fade * fade); - if (remainingTicks == 0) { - if (totalTicks == 0) - element.setFade(1); - element.setFade(1); - } - } - - public ElementLink createLink(PonderScene scene) { - elementLink = new ElementLink<>(getElementClass()); - scene.linkElement(element, elementLink); - return elementLink; - } - - protected abstract Class getElementClass(); - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeOutOfSceneInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeOutOfSceneInstruction.java deleted file mode 100644 index fdd2589f0..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/FadeOutOfSceneInstruction.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.ElementLink; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.element.AnimatedSceneElement; - -import net.minecraft.core.Direction; -import net.minecraft.world.phys.Vec3; - -public class FadeOutOfSceneInstruction extends TickingInstruction { - - private Direction fadeOutTo; - private ElementLink link; - private T element; - - public FadeOutOfSceneInstruction(int fadeOutTicks, Direction fadeOutTo, ElementLink link) { - super(false, fadeOutTicks); - this.fadeOutTo = fadeOutTo == null ? null : fadeOutTo.getOpposite(); - this.link = link; - } - - @Override - protected void firstTick(PonderScene scene) { - super.firstTick(scene); - element = scene.resolve(link); - if (element == null) - return; - element.setVisible(true); - element.setFade(1); - element.setFadeVec(fadeOutTo == null ? Vec3.ZERO - : Vec3.atLowerCornerOf(fadeOutTo.getNormal()) - .scale(.5f)); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (element == null) - return; - float fade = (remainingTicks / (float) totalTicks); - element.setFade(1 - (1 - fade) * (1 - fade)); - if (remainingTicks == 0) { - element.setVisible(false); - element.setFade(0); - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/HideAllInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/HideAllInstruction.java deleted file mode 100644 index 89ea2a8fb..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/HideAllInstruction.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.element.AnimatedOverlayElement; -import com.simibubi.create.foundation.ponder.element.AnimatedSceneElement; - -import net.minecraft.core.Direction; -import net.minecraft.world.phys.Vec3; - -public class HideAllInstruction extends TickingInstruction { - - private Direction fadeOutTo; - - public HideAllInstruction(int fadeOutTicks, Direction fadeOutTo) { - super(false, fadeOutTicks); - this.fadeOutTo = fadeOutTo; - } - - @Override - protected void firstTick(PonderScene scene) { - super.firstTick(scene); - scene.getElements() - .forEach(element -> { - if (element instanceof AnimatedSceneElement) { - AnimatedSceneElement animatedSceneElement = (AnimatedSceneElement) element; - animatedSceneElement.setFade(1); - animatedSceneElement - .setFadeVec(fadeOutTo == null ? null : Vec3.atLowerCornerOf(fadeOutTo.getNormal()).scale(.5f)); - } else if (element instanceof AnimatedOverlayElement) { - AnimatedOverlayElement animatedSceneElement = (AnimatedOverlayElement) element; - animatedSceneElement.setFade(1); - } else - element.setVisible(false); - }); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - float fade = (remainingTicks / (float) totalTicks); - - scene.forEach(AnimatedSceneElement.class, ase -> { - ase.setFade(fade * fade); - if (remainingTicks == 0) - ase.setFade(0); - }); - - scene.forEach(AnimatedOverlayElement.class, aoe -> { - aoe.setFade(fade * fade); - if (remainingTicks == 0) - aoe.setFade(0); - }); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/HighlightValueBoxInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/HighlightValueBoxInstruction.java deleted file mode 100644 index 0af8b6ad7..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/HighlightValueBoxInstruction.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; - -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -public class HighlightValueBoxInstruction extends TickingInstruction { - - private Vec3 vec; - private Vec3 expands; - - public HighlightValueBoxInstruction(Vec3 vec, Vec3 expands, int duration) { - super(false, duration); - this.vec = vec; - this.expands = expands; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - AABB point = new AABB(vec, vec); - AABB expanded = point.inflate(expands.x, expands.y, expands.z); - scene.getOutliner() - .chaseAABB(vec, remainingTicks == totalTicks ? point : expanded) - .lineWidth(1 / 32f) - .colored(PonderPalette.WHITE.getColor()); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/KeyframeInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/KeyframeInstruction.java deleted file mode 100644 index 765e5efe1..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/KeyframeInstruction.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public class KeyframeInstruction extends PonderInstruction { - - public static final KeyframeInstruction IMMEDIATE = new KeyframeInstruction(false); - public static final KeyframeInstruction DELAYED = new KeyframeInstruction(true); - - private boolean delayed; - - private KeyframeInstruction(boolean delayed) { - this.delayed = delayed; - } - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { } - - @Override - public void onScheduled(PonderScene scene) { - scene.markKeyframe(delayed ? 6 : 0); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/LineInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/LineInstruction.java deleted file mode 100644 index 92b2cc258..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/LineInstruction.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; - -import net.minecraft.world.phys.Vec3; - -public class LineInstruction extends TickingInstruction { - - private PonderPalette color; - private Vec3 start; - private Vec3 end; - private boolean big; - - public LineInstruction(PonderPalette color, Vec3 start, Vec3 end, int ticks, boolean big) { - super(false, ticks); - this.color = color; - this.start = start; - this.end = end; - this.big = big; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - scene.getOutliner() - .showLine(start, start, end) - .lineWidth(big ? 1 / 8f : 1 / 16f) - .colored(color.getColor()); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/MarkAsFinishedInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/MarkAsFinishedInstruction.java deleted file mode 100644 index 31d3a17c7..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/MarkAsFinishedInstruction.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public class MarkAsFinishedInstruction extends PonderInstruction { - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { - scene.setFinished(true); - } - - @Override - public void onScheduled(PonderScene scene) { - scene.stopCounting(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/MovePoiInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/MovePoiInstruction.java deleted file mode 100644 index 4b4391341..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/MovePoiInstruction.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; - -import net.minecraft.world.phys.Vec3; - -public class MovePoiInstruction extends PonderInstruction { - - private Vec3 poi; - - public MovePoiInstruction(Vec3 poi) { - this.poi = poi; - } - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { - scene.setPointOfInterest(poi); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/OutlineSelectionInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/OutlineSelectionInstruction.java deleted file mode 100644 index 85510775b..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/OutlineSelectionInstruction.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderPalette; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.Selection; - -public class OutlineSelectionInstruction extends TickingInstruction { - - private PonderPalette color; - private Object slot; - private Selection selection; - - public OutlineSelectionInstruction(PonderPalette color, Object slot, Selection selection, int ticks) { - super(false, ticks); - this.color = color; - this.slot = slot; - this.selection = selection; - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - selection.makeOutline(scene.getOutliner(), slot) - .lineWidth(1 / 16f) - .colored(color.getColor()); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/PonderInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/PonderInstruction.java deleted file mode 100644 index 48bcb49b2..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/PonderInstruction.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.Consumer; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public abstract class PonderInstruction { - - public boolean isBlocking() { - return false; - } - - public void reset(PonderScene scene) {} - - public abstract boolean isComplete(); - - public void onScheduled(PonderScene scene) {} - - public abstract void tick(PonderScene scene); - - public static PonderInstruction simple(Consumer callback) { - return new Simple(callback); - } - - private static class Simple extends PonderInstruction { - - private Consumer callback; - - public Simple(Consumer callback) { - this.callback = callback; - } - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { - callback.accept(scene); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ReplaceBlocksInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/ReplaceBlocksInstruction.java deleted file mode 100644 index 219ad9bfd..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ReplaceBlocksInstruction.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.UnaryOperator; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.Selection; - -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; - -public class ReplaceBlocksInstruction extends WorldModifyInstruction { - - private UnaryOperator stateToUse; - private boolean replaceAir; - private boolean spawnParticles; - - public ReplaceBlocksInstruction(Selection selection, UnaryOperator stateToUse, boolean replaceAir, - boolean spawnParticles) { - super(selection); - this.stateToUse = stateToUse; - this.replaceAir = replaceAir; - this.spawnParticles = spawnParticles; - } - - @Override - protected void runModification(Selection selection, PonderScene scene) { - PonderWorld world = scene.getWorld(); - selection.forEach(pos -> { - if (!world.getBounds() - .isInside(pos)) - return; - BlockState prevState = world.getBlockState(pos); - if (!replaceAir && prevState == Blocks.AIR.defaultBlockState()) - return; - if (spawnParticles) - world.addBlockDestroyEffects(pos, prevState); - world.setBlockAndUpdate(pos, stateToUse.apply(prevState)); - }); - } - - @Override - protected boolean needsRedraw() { - return true; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/RotateSceneInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/RotateSceneInstruction.java deleted file mode 100644 index ade54ac01..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/RotateSceneInstruction.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderScene.SceneTransform; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; - -public class RotateSceneInstruction extends PonderInstruction { - - private float xRot; - private float yRot; - private boolean relative; - - public RotateSceneInstruction(float xRot, float yRot, boolean relative) { - this.xRot = xRot; - this.yRot = yRot; - this.relative = relative; - } - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { - SceneTransform transform = scene.getTransform(); - float targetX = relative ? transform.xRotation.getChaseTarget() + xRot : xRot; - float targetY = relative ? transform.yRotation.getChaseTarget() + yRot : yRot; - transform.xRotation.chase(targetX, .1f, Chaser.EXP); - transform.yRotation.chase(targetY, .1f, Chaser.EXP); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ShowInputInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/ShowInputInstruction.java deleted file mode 100644 index b94ddbadd..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/ShowInputInstruction.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.element.InputWindowElement; - -public class ShowInputInstruction extends FadeInOutInstruction { - - private InputWindowElement element; - - public ShowInputInstruction(InputWindowElement element, int ticks) { - super(ticks); - this.element = element; - } - - @Override - protected void show(PonderScene scene) { - scene.addElement(element); - element.setVisible(true); - } - - @Override - protected void hide(PonderScene scene) { - element.setVisible(false); - } - - @Override - protected void applyFade(PonderScene scene, float fade) { - element.setFade(fade); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TextInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/TextInstruction.java deleted file mode 100644 index 2b81b5805..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TextInstruction.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.OutlinerElement; -import com.simibubi.create.foundation.ponder.element.TextWindowElement; - -public class TextInstruction extends FadeInOutInstruction { - - private TextWindowElement element; - private OutlinerElement outline; - - public TextInstruction(TextWindowElement element, int duration) { - super(duration); - this.element = element; - } - - public TextInstruction(TextWindowElement element, int duration, Selection selection) { - this(element, duration); - outline = new OutlinerElement(o -> selection.makeOutline(o) - .lineWidth(1 / 16f)); - } - - @Override - public void tick(PonderScene scene) { - super.tick(scene); - if (outline != null) - outline.setColor(element.getColor()); - } - - @Override - protected void show(PonderScene scene) { - scene.addElement(element); - element.setVisible(true); - if (outline != null) { - scene.addElement(outline); - outline.setFade(1); - outline.setVisible(true); - } - } - - @Override - protected void hide(PonderScene scene) { - element.setVisible(false); - if (outline != null) { - outline.setFade(0); - outline.setVisible(false); - } - } - - @Override - protected void applyFade(PonderScene scene, float fade) { - element.setFade(fade); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TickingInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/TickingInstruction.java deleted file mode 100644 index fc5549b50..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TickingInstruction.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; - -public abstract class TickingInstruction extends PonderInstruction { - - private boolean blocking; - protected int totalTicks; - protected int remainingTicks; - - public TickingInstruction(boolean blocking, int ticks) { - this.blocking = blocking; - remainingTicks = totalTicks = ticks; - } - - @Override - public void reset(PonderScene scene) { - super.reset(scene); - remainingTicks = totalTicks; - } - - protected void firstTick(PonderScene scene) {} - - @Override - public void onScheduled(PonderScene scene) { - super.onScheduled(scene); - if (isBlocking()) - scene.addToSceneTime(totalTicks); - } - - @Override - public void tick(PonderScene scene) { - if (remainingTicks == totalTicks) - firstTick(scene); - if (remainingTicks > 0) - remainingTicks--; - } - - @Override - public boolean isComplete() { - return remainingTicks == 0; - } - - @Override - public boolean isBlocking() { - return blocking; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TileEntityDataInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/TileEntityDataInstruction.java deleted file mode 100644 index e42ef5ddf..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/TileEntityDataInstruction.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import java.util.function.UnaryOperator; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.tileEntity.SyncedTileEntity; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.entity.BlockEntity; - -public class TileEntityDataInstruction extends WorldModifyInstruction { - - private boolean redraw; - private UnaryOperator data; - private Class type; - - public TileEntityDataInstruction(Selection selection, Class type, - UnaryOperator data, boolean redraw) { - super(selection); - this.type = type; - this.data = data; - this.redraw = redraw; - } - - @Override - protected void runModification(Selection selection, PonderScene scene) { - PonderWorld world = scene.getWorld(); - selection.forEach(pos -> { - if (!world.getBounds() - .isInside(pos)) - return; - BlockEntity tileEntity = world.getBlockEntity(pos); - if (!type.isInstance(tileEntity)) - return; - CompoundTag apply = data.apply(tileEntity.saveWithFullMetadata()); - if (tileEntity instanceof SyncedTileEntity) - ((SyncedTileEntity) tileEntity).readClient(apply); - tileEntity.load(apply); - }); - } - - @Override - protected boolean needsRedraw() { - return redraw; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/WorldModifyInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/WorldModifyInstruction.java deleted file mode 100644 index 3640fcc40..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/instruction/WorldModifyInstruction.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.simibubi.create.foundation.ponder.instruction; - -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.Selection; -import com.simibubi.create.foundation.ponder.element.WorldSectionElement; - -public abstract class WorldModifyInstruction extends PonderInstruction { - - private Selection selection; - - public WorldModifyInstruction(Selection selection) { - this.selection = selection; - } - - @Override - public boolean isComplete() { - return true; - } - - @Override - public void tick(PonderScene scene) { - runModification(selection, scene); - if (needsRedraw()) - scene.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); - } - - protected abstract void runModification(Selection selection, PonderScene scene); - - protected abstract boolean needsRedraw(); - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instruction/package-info.java b/src/main/java/com/simibubi/create/foundation/ponder/instruction/package-info.java new file mode 100644 index 000000000..b2be52faa --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/instruction/package-info.java @@ -0,0 +1,9 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package com.simibubi.create.foundation.ponder.instruction; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/package-info.java b/src/main/java/com/simibubi/create/foundation/ponder/package-info.java new file mode 100644 index 000000000..a782f5617 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/package-info.java @@ -0,0 +1,9 @@ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +@FieldsAreNonnullByDefault +package com.simibubi.create.foundation.ponder; + +import javax.annotation.ParametersAreNonnullByDefault; + +import net.minecraft.FieldsAreNonnullByDefault; +import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java deleted file mode 100644 index b32dbfe97..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/ChapterLabel.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import java.util.function.BiConsumer; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget; -import com.simibubi.create.foundation.ponder.PonderChapter; - -import net.minecraft.client.Minecraft; - -public class ChapterLabel extends AbstractSimiWidget { - - private final PonderChapter chapter; - private final PonderButton button; - - public ChapterLabel(PonderChapter chapter, int x, int y, BiConsumer onClick) { - super(x, y, 175, 38); - - this.button = new PonderButton(x + 4, y + 4, 30, 30) - .showing(chapter) - .withCallback(onClick); - - this.chapter = chapter; - } - - @Override - public void render(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - UIRenderHelper.streak(ms, 0, x, y + height / 2, height - 2, width); - Minecraft.getInstance().font.draw(ms, chapter.getTitle(), x + 50, - y + 20, Theme.i(Theme.Key.TEXT_ACCENT_SLIGHT)); - - button.renderButton(ms, mouseX, mouseY, partialTicks); - super.render(ms, mouseX, mouseY, partialTicks); - } - - @Override - public void onClick(double x, double y) { - if (!button.isMouseOver(x, y)) - return; - - button.runCallback(x, y); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/LayoutHelper.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/LayoutHelper.java deleted file mode 100644 index f815220b9..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/LayoutHelper.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import net.minecraft.client.renderer.Rect2i; - -public interface LayoutHelper { - - static LayoutHelper centeredHorizontal(int itemCount, int rows, int width, int height, int spacing) { - return new CenteredHorizontalLayoutHelper(itemCount, rows, width, height, spacing); - } - - int getX(); - - int getY(); - - void next(); - - int getTotalWidth(); - - int getTotalHeight(); - - default Rect2i getArea() { - int lWidth = getTotalWidth(); - int lHeight = getTotalHeight(); - return new Rect2i(-lWidth / 2, -lHeight / 2, lWidth, lHeight); - } - - class CenteredHorizontalLayoutHelper implements LayoutHelper { - - int itemCount; - int rows; - int width; - int height; - int spacing; - - int currentColumn = 0; - int currentRow = 0; - int[] rowCounts; - int x = 0, y = 0; - - CenteredHorizontalLayoutHelper(int itemCount, int rows, int width, int height, int spacing) { - this.itemCount = itemCount; - this.rows = rows; - this.width = width; - this.height = height; - this.spacing = spacing; - - rowCounts = new int[rows]; - int itemsPerRow = itemCount / rows; - int itemDiff = itemCount - itemsPerRow * rows; - for (int i = 0; i < rows; i++) { - rowCounts[i] = itemsPerRow; - if (itemDiff > 0) { - rowCounts[i]++; - itemDiff--; - } - } - - init(); - } - - @Override - public int getX() { - return x; - } - - @Override - public int getY() { - return y; - } - - @Override - public void next() { - currentColumn++; - if (currentColumn >= rowCounts[currentRow]) { - // nextRow - if (++currentRow >= rows) { - x = 0; - y = 0; - return; - } - - currentColumn = 0; - prepareX(); - y += height + spacing; - return; - } - - x += width + spacing; - } - - private void init() { - prepareX(); - prepareY(); - } - - private void prepareX() { - int rowWidth = rowCounts[currentRow] * width + (rowCounts[currentRow] - 1) * spacing; - x = -(rowWidth / 2); - } - - private void prepareY() { - int totalHeight = rows * height + (rows > 1 ? ((rows - 1) * spacing) : 0); - y = -(totalHeight / 2); - } - - @Override - public int getTotalWidth() { - return rowCounts[0] * width + (rowCounts[0] - 1) * spacing; - } - - @Override - public int getTotalHeight() { - return rows * height + (rows > 1 ? ((rows - 1) * spacing) : 0); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java deleted file mode 100644 index 2b1bb4682..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java +++ /dev/null @@ -1,255 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.mutable.MutableBoolean; -import org.apache.commons.lang3.mutable.MutableInt; -import org.lwjgl.glfw.GLFW; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.AbstractSimiScreen; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.ponder.PonderLocalization; -import com.simibubi.create.foundation.ponder.PonderTooltipHandler; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.util.Mth; - -public abstract class NavigatableSimiScreen extends AbstractSimiScreen { - - public static final String THINK_BACK = PonderLocalization.LANG_PREFIX + "think_back"; - - protected int depthPointX, depthPointY; - public final LerpedFloat transition = LerpedFloat.linear() - .startWithValue(0) - .chase(0, .1f, LerpedFloat.Chaser.LINEAR); - protected final LerpedFloat arrowAnimation = LerpedFloat.linear() - .startWithValue(0) - .chase(0, 0.075f, LerpedFloat.Chaser.LINEAR); - protected PonderButton backTrack; - - public NavigatableSimiScreen() { - Window window = Minecraft.getInstance().getWindow(); - depthPointX = window.getGuiScaledWidth() / 2; - depthPointY = window.getGuiScaledHeight() / 2; - } - - @Override - public void onClose() { - ScreenOpener.clearStack(); - super.onClose(); - } - - @Override - public void tick() { - super.tick(); - transition.tickChaser(); - arrowAnimation.tickChaser(); - } - - @Override - protected void init() { - super.init(); - - backTrack = null; - List screenHistory = ScreenOpener.getScreenHistory(); - if (screenHistory.isEmpty()) - return; - if (!(screenHistory.get(0) instanceof NavigatableSimiScreen)) - return; - - NavigatableSimiScreen screen = (NavigatableSimiScreen) screenHistory.get(0); - - addRenderableWidget(backTrack = new PonderButton(31, height - 31 - 20).enableFade(0, 5) - .withCallback(() -> ScreenOpener.openPreviousScreen(this, Optional.empty()))); - backTrack.fade(1); - - screen.initBackTrackIcon(backTrack); - } - - /** - * Called when {@code this} represents the previous screen to - * initialize the {@code backTrack} icon of the current screen. - * - * @param backTrack The backTrack button of the current screen. - */ - protected abstract void initBackTrackIcon(PonderButton backTrack); - - @Override - public void render(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - super.render(ms, mouseX, mouseY, partialTicks); -// renderZeloBreadcrumbs(ms, mouseX, mouseY, partialTicks); - if (backTrack == null) - return; - - ms.pushPose(); - ms.translate(0, 0, 500); - if (backTrack.isHoveredOrFocused()) { - TranslatableComponent translate = Lang.translateDirect(backTrackingLangKey()); - font.draw(ms, translate, 41 - font.width(translate) / 2, height - 16, - Theme.i(Theme.Key.TEXT_DARKER)); - if (Mth.equal(arrowAnimation.getValue(), arrowAnimation.getChaseTarget())) { - arrowAnimation.setValue(1); - arrowAnimation.setValue(1);// called twice to also set the previous value to 1 - } - } - ms.popPose(); - } - - protected String backTrackingLangKey() { - return THINK_BACK; - } - - @Override - protected void renderWindowBackground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - if (backTrack != null) { - int x = (int) Mth.lerp(arrowAnimation.getValue(partialTicks), -9, 21); - int maxX = backTrack.x + backTrack.getWidth(); - - if (x + 30 < backTrack.x) - UIRenderHelper.breadcrumbArrow(ms, x + 30, height - 51, 0, maxX - (x + 30), 20, 5, - Theme.p(Theme.Key.PONDER_BACK_ARROW)); - - UIRenderHelper.breadcrumbArrow(ms, x, height - 51, 0, 30, 20, 5, Theme.p(Theme.Key.PONDER_BACK_ARROW)); - UIRenderHelper.breadcrumbArrow(ms, x - 30, height - 51, 0, 30, 20, 5, Theme.p(Theme.Key.PONDER_BACK_ARROW)); - } - - if (transition.getChaseTarget() == 0 || transition.settled()) { - renderBackground(ms); - return; - } - - renderBackground(ms); - - Screen lastScreen = ScreenOpener.getPreviouslyRenderedScreen(); - float transitionValue = transition.getValue(partialTicks); - float scale = 1 + 0.5f * transitionValue; - - // draw last screen into buffer - if (lastScreen != null && lastScreen != this && !transition.settled()) { - ms.pushPose(); - UIRenderHelper.framebuffer.clear(Minecraft.ON_OSX); - ms.translate(0, 0, -1000); - UIRenderHelper.framebuffer.bindWrite(true); - PonderTooltipHandler.enable = false; - lastScreen.render(ms, mouseX, mouseY, partialTicks); - PonderTooltipHandler.enable = true; - - ms.popPose(); - ms.pushPose(); - - // use the buffer texture - minecraft.getMainRenderTarget() - .bindWrite(true); - - Window window = minecraft.getWindow(); - int dpx = window.getGuiScaledWidth() / 2; - int dpy = window.getGuiScaledHeight() / 2; - if (lastScreen instanceof NavigatableSimiScreen navigableScreen) { - dpx = navigableScreen.depthPointX; - dpy = navigableScreen.depthPointY; - } - - ms.translate(dpx, dpy, 0); - ms.scale(scale, scale, 1); - ms.translate(-dpx, -dpy, 0); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - UIRenderHelper.drawFramebuffer(1f - Math.abs(transitionValue)); - RenderSystem.disableBlend(); - ms.popPose(); - } - - // modify current screen as well - scale = transitionValue > 0 ? 1 - 0.5f * (1 - transitionValue) : 1 + .5f * (1 + transitionValue); - ms.translate(depthPointX, depthPointY, 0); - ms.scale(scale, scale, 1); - ms.translate(-depthPointX, -depthPointY, 0); - } - - @Override - public boolean keyPressed(int code, int p_keyPressed_2_, int p_keyPressed_3_) { - if (code == GLFW.GLFW_KEY_BACKSPACE) { - ScreenOpener.openPreviousScreen(this, Optional.empty()); - return true; - } - return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); - } - - public void centerScalingOn(int x, int y) { - depthPointX = x; - depthPointY = y; - } - - public void centerScalingOnMouse() { - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - centerScalingOn((int) mouseX, (int) mouseY); - } - - public boolean isEquivalentTo(NavigatableSimiScreen other) { - return false; - } - - public void shareContextWith(NavigatableSimiScreen other) {} - - protected void renderZeloBreadcrumbs(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - List history = ScreenOpener.getScreenHistory(); - if (history.isEmpty()) - return; - - history.add(0, minecraft.screen); - int spacing = 20; - - List names = history.stream() - .map(NavigatableSimiScreen::screenTitle) - .collect(Collectors.toList()); - - int bWidth = names.stream() - .mapToInt(s -> font.width(s) + spacing) - .sum(); - - MutableInt x = new MutableInt(width - bWidth); - MutableInt y = new MutableInt(height - 18); - MutableBoolean first = new MutableBoolean(true); - - if (x.getValue() < 25) - x.setValue(25); - - ms.pushPose(); - ms.translate(0, 0, 600); - names.forEach(s -> { - int sWidth = font.width(s); - UIRenderHelper.breadcrumbArrow(ms, x.getValue(), y.getValue(), 0, sWidth + spacing, 14, spacing / 2, - new Color(0xdd101010), new Color(0x44101010)); - font.draw(ms, s, x.getValue() + 5, y.getValue() + 3, first.getValue() ? 0xffeeffee : 0xffddeeff); - first.setFalse(); - - x.add(sWidth + spacing); - }); - ms.popPose(); - } - - private static String screenTitle(Screen screen) { - if (screen instanceof NavigatableSimiScreen) - return ((NavigatableSimiScreen) screen).getBreadcrumbTitle(); - return "<"; - } - - protected String getBreadcrumbTitle() { - return this.getClass() - .getSimpleName(); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java deleted file mode 100644 index 2639f2b34..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderButton.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.Theme.Key; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.gui.element.RenderElement; -import com.simibubi.create.foundation.gui.widget.BoxWidget; -import com.simibubi.create.foundation.gui.widget.ElementWidget; -import com.simibubi.create.foundation.ponder.PonderTag; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.KeyMapping; -import net.minecraft.client.Minecraft; -import net.minecraft.util.Mth; -import net.minecraft.world.item.ItemStack; - -public class PonderButton extends BoxWidget { - - protected ItemStack item; - protected PonderTag tag; - protected KeyMapping shortcut; - protected LerpedFloat flash = LerpedFloat.linear().startWithValue(0).chase(0, 0.1f, LerpedFloat.Chaser.EXP); - - public PonderButton(int x, int y) { - this(x, y, 20, 20); - } - - public PonderButton(int x, int y, int width, int height) { - super(x, y, width, height); - z = 420; - paddingX = 2; - paddingY = 2; - } - - public T withShortcut(KeyMapping key) { - this.shortcut = key; - //noinspection unchecked - return (T) this; - } - - public T showingTag(PonderTag tag) { - return showing(this.tag = tag); - } - - public T showing(ItemStack item) { - this.item = item; - return super.showingElement(GuiGameElement.of(item) - .scale(1.5f) - .at(-4, -4)); - } - - @Override - public T showingElement(RenderElement element) { - return super.showingElement(element); - } - - public void flash() { - flash.updateChaseTarget(1); - } - - public void dim() { - flash.updateChaseTarget(0); - } - - @Override - public void tick() { - super.tick(); - flash.tickChaser(); - } - - @Override - protected void beforeRender(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - super.beforeRender(ms, mouseX, mouseY, partialTicks); - - float flashValue = flash.getValue(partialTicks); - if (flashValue > .1f) { - float sin = 0.5f + 0.5f * Mth.sin((AnimationTickHolder.getTicks(true) + partialTicks) / 5f); - sin *= flashValue; - Color nc1 = new Color(255, 255, 255, Mth.clamp(gradientColor1.getAlpha() + 150, 0, 255)); - Color nc2 = new Color(155, 155, 155, Mth.clamp(gradientColor2.getAlpha() + 150, 0, 255)); - gradientColor1 = gradientColor1.mixWith(nc1, sin); - gradientColor2 = gradientColor2.mixWith(nc2, sin); - } - } - - @Override - public void renderButton(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - super.renderButton(ms, mouseX, mouseY, partialTicks); - float fadeValue = fade.getValue(); - - if (fadeValue < .1f) - return; - - if (shortcut != null) { - ms.pushPose(); - ms.translate(0, 0, z + 10); - drawCenteredString(ms, Minecraft.getInstance().font, shortcut.getTranslatedKeyMessage(), x + width / 2 + 8, y + height - 6, Theme.c(Theme.Key.TEXT_DARKER).scaleAlpha(fadeValue).getRGB()); - ms.popPose(); - } - } - - public ItemStack getItem() { - return item; - } - - public PonderTag getTag() { - return tag; - } - - @Override - public Key getDisabledTheme() { - return Theme.Key.PONDER_BUTTON_DISABLE; - } - - @Override - public Key getIdleTheme() { - return Theme.Key.PONDER_BUTTON_IDLE; - } - - @Override - public Key getHoverTheme() { - return Theme.Key.PONDER_BUTTON_HOVER; - } - - @Override - public Key getClickTheme() { - return Theme.Key.PONDER_BUTTON_CLICK; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderIndexScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderIndexScreen.java deleted file mode 100644 index 17e337439..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderIndexScreen.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllItems; -import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.ponder.PonderChapter; -import com.simibubi.create.foundation.ponder.PonderRegistry; - -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.client.renderer.Rect2i; -import net.minecraft.util.Mth; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.registries.ForgeRegistries; - -public class PonderIndexScreen extends NavigatableSimiScreen { - - protected final List chapters; - private final double chapterXmult = 0.5; - private final double chapterYmult = 0.3; - protected Rect2i chapterArea; - - protected final List items; - private final double itemXmult = 0.5; - private double itemYmult = 0.75; - protected Rect2i itemArea; - - private ItemStack hoveredItem = ItemStack.EMPTY; - - public PonderIndexScreen() { - chapters = new ArrayList<>(); - items = new ArrayList<>(); - } - - @Override - protected void init() { - super.init(); - - chapters.clear(); - // chapters.addAll(PonderRegistry.CHAPTERS.getAllChapters()); - - items.clear(); - PonderRegistry.ALL.keySet() - .stream() - .map(key -> { - Item item = ForgeRegistries.ITEMS.getValue(key); - if (item == null) { - Block b = ForgeRegistries.BLOCKS.getValue(key); - if (b != null) - item = b.asItem(); - } - return item; - }) - .filter(Objects::nonNull) - .filter(PonderIndexScreen::exclusions) - .forEach(items::add); - - boolean hasChapters = !chapters.isEmpty(); - - // setup chapters - LayoutHelper layout = LayoutHelper.centeredHorizontal(chapters.size(), - Mth.clamp((int) Math.ceil(chapters.size() / 4f), 1, 4), 200, 38, 16); - chapterArea = layout.getArea(); - int chapterCenterX = (int) (width * chapterXmult); - int chapterCenterY = (int) (height * chapterYmult); - - // todo at some point pagination or horizontal scrolling may be needed for - // chapters/items - for (PonderChapter chapter : chapters) { - ChapterLabel label = new ChapterLabel(chapter, chapterCenterX + layout.getX(), - chapterCenterY + layout.getY(), (mouseX, mouseY) -> { - centerScalingOn(mouseX, mouseY); - ScreenOpener.transitionTo(PonderUI.of(chapter)); - }); - - addRenderableWidget(label); - layout.next(); - } - - // setup items - if (!hasChapters) { - itemYmult = 0.5; - } - - int maxItemRows = hasChapters ? 4 : 7; - layout = LayoutHelper.centeredHorizontal(items.size(), - Mth.clamp((int) Math.ceil(items.size() / 11f), 1, maxItemRows), 28, 28, 8); - itemArea = layout.getArea(); - int itemCenterX = (int) (width * itemXmult); - int itemCenterY = (int) (height * itemYmult); - - for (Item item : items) { - PonderButton b = new PonderButton(itemCenterX + layout.getX() + 4, itemCenterY + layout.getY() + 4) - .showing(new ItemStack(item)) - .withCallback((x, y) -> { - if (!PonderRegistry.ALL.containsKey(item.getRegistryName())) - return; - - centerScalingOn(x, y); - ScreenOpener.transitionTo(PonderUI.of(new ItemStack(item))); - }); - - addRenderableWidget(b); - layout.next(); - } - - } - - @Override - protected void initBackTrackIcon(PonderButton backTrack) { - backTrack.showing(AllItems.WRENCH.asStack()); - } - - private static boolean exclusions(Item item) { - if (item instanceof BlockItem) { - Block block = ((BlockItem) item).getBlock(); - if (block instanceof ValveHandleBlock && !AllBlocks.COPPER_VALVE_HANDLE.is(item)) - return false; - } - - return true; - } - - @Override - public void tick() { - super.tick(); - PonderUI.ponderTicks++; - - hoveredItem = ItemStack.EMPTY; - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - for (GuiEventListener child : children()) { - if (child instanceof PonderButton button) { - if (button.isMouseOver(mouseX, mouseY)) { - hoveredItem = button.getItem(); - } - } - } - } - - @Override - protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - int x = (int) (width * chapterXmult); - int y = (int) (height * chapterYmult); - - if (!chapters.isEmpty()) { - ms.pushPose(); - ms.translate(x, y, 0); - - UIRenderHelper.streak(ms, 0, chapterArea.getX() - 10, chapterArea.getY() - 20, 20, 220); - font.draw(ms, "Topics to Ponder about", chapterArea.getX() - 5, chapterArea.getY() - 25, Theme.i(Theme.Key.TEXT)); - - ms.popPose(); - } - - x = (int) (width * itemXmult); - y = (int) (height * itemYmult); - - ms.pushPose(); - ms.translate(x, y, 0); - - UIRenderHelper.streak(ms, 0, itemArea.getX() - 10, itemArea.getY() - 20, 20, 220); - font.draw(ms, "Items to inspect", itemArea.getX() - 5, itemArea.getY() - 25, Theme.i(Theme.Key.TEXT)); - - ms.popPose(); - } - - @Override - protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - if (hoveredItem.isEmpty()) - return; - - ms.pushPose(); - ms.translate(0, 0, 200); - - renderTooltip(ms, hoveredItem, mouseX, mouseY); - - ms.popPose(); - } - - /*@Override - public boolean mouseClicked(double x, double y, int button) { - MutableBoolean handled = new MutableBoolean(false); - widgets.forEach(w -> { - if (handled.booleanValue()) - return; - if (!w.isMouseOver(x, y)) - return; - if (w instanceof PonderButton) { - PonderButton btn = (PonderButton) w; - btn.runCallback(x, y); - handled.setTrue(); - } - }); - - if (handled.booleanValue()) - return true; - return super.mouseClicked(x, y, button); - }*/ - - @Override - public boolean isEquivalentTo(NavigatableSimiScreen other) { - return other instanceof PonderIndexScreen; - } - - public ItemStack getHoveredTooltipItem() { - return hoveredItem; - } - - @Override - public boolean isPauseScreen() { - return true; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java deleted file mode 100644 index ab3e5b0e9..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import javax.annotation.Nonnull; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.widget.AbstractSimiWidget; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Font; -import net.minecraft.client.sounds.SoundManager; -import net.minecraftforge.client.gui.GuiUtils; - -public class PonderProgressBar extends AbstractSimiWidget { - - LerpedFloat progress; - - PonderUI ponder; - - public PonderProgressBar(PonderUI ponder, int xIn, int yIn, int widthIn, int heightIn) { - super(xIn, yIn, widthIn, heightIn); - - this.ponder = ponder; - progress = LerpedFloat.linear() - .startWithValue(0); - } - - public void tick() { - progress.chase(ponder.getActiveScene() - .getSceneProgress(), .5f, LerpedFloat.Chaser.EXP); - progress.tickChaser(); - } - - @Override - protected boolean clicked(double mouseX, double mouseY) { - return this.active && this.visible && ponder.getActiveScene().getKeyframeCount() > 0 - && mouseX >= (double) this.x && mouseX < (double) (this.x + this.width + 4) && mouseY >= (double) this.y - 3 - && mouseY < (double) (this.y + this.height + 20); - } - - @Override - public void onClick(double mouseX, double mouseY) { - PonderScene activeScene = ponder.getActiveScene(); - - int keyframeIndex = getHoveredKeyframeIndex(activeScene, mouseX); - - if (keyframeIndex == -1) - ponder.seekToTime(0); - else if (keyframeIndex == activeScene.getKeyframeCount()) - ponder.seekToTime(activeScene.getTotalTime()); - else - ponder.seekToTime(activeScene.getKeyframeTime(keyframeIndex)); - } - - public int getHoveredKeyframeIndex(PonderScene activeScene, double mouseX) { - int totalTime = activeScene.getTotalTime(); - int clickedAtTime = (int) ((mouseX - x) / ((double) width + 4) * totalTime); - - { - int lastKeyframeTime = activeScene.getKeyframeTime(activeScene.getKeyframeCount() - 1); - - int diffToEnd = totalTime - clickedAtTime; - int diffToLast = clickedAtTime - lastKeyframeTime; - - if (diffToEnd > 0 && diffToEnd < diffToLast / 2) { - return activeScene.getKeyframeCount(); - } - } - - int index = -1; - - for (int i = 0; i < activeScene.getKeyframeCount(); i++) { - int keyframeTime = activeScene.getKeyframeTime(i); - - if (keyframeTime > clickedAtTime) - break; - - index = i; - } - - return index; - } - - @Override - public void renderButton(@Nonnull PoseStack ms, int mouseX, int mouseY, float partialTicks) { - - isHovered = clicked(mouseX, mouseY); - - new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(x, y, 400) - .withBounds(width, height) - .render(ms); - - ms.pushPose(); - ms.translate(x - 2, y - 2, 100); - - ms.pushPose(); - ms.scale((width + 4) * progress.getValue(partialTicks), 1, 1); - int c1 = Theme.i(Theme.Key.PONDER_PROGRESSBAR, true); - int c2 = Theme.i(Theme.Key.PONDER_PROGRESSBAR, false); - GuiUtils.drawGradientRect(ms.last().pose(), 310, 0, 3, 1, 4, c1, c1); - GuiUtils.drawGradientRect(ms.last().pose(), 310, 0, 4, 1, 5, c2, c2); - ms.popPose(); - - renderKeyframes(ms, mouseX, partialTicks); - - ms.popPose(); - } - - private void renderKeyframes(PoseStack ms, int mouseX, float partialTicks) { - PonderScene activeScene = ponder.getActiveScene(); - - int hoverStartColor = Theme.i(Theme.Key.PONDER_HOVER, true) | 0xa0_000000; - int hoverEndColor = Theme.i(Theme.Key.PONDER_HOVER, false) | 0xa0_000000; - int idleStartColor = Theme.i(Theme.Key.PONDER_IDLE, true) | 0x40_000000; - int idleEndColor = Theme.i(Theme.Key.PONDER_IDLE, false) | 0x40_000000; - int hoverIndex; - - if (isHovered) { - hoverIndex = getHoveredKeyframeIndex(activeScene, mouseX); - } else { - hoverIndex = -2; - } - - if (hoverIndex == -1) - drawKeyframe(ms, activeScene, true, 0, 0, hoverStartColor, hoverEndColor, 8); - else if (hoverIndex == activeScene.getKeyframeCount()) - drawKeyframe(ms, activeScene, true, activeScene.getTotalTime(), width + 4, hoverStartColor, hoverEndColor, 8); - - for (int i = 0; i < activeScene.getKeyframeCount(); i++) { - int keyframeTime = activeScene.getKeyframeTime(i); - int keyframePos = (int) (((float) keyframeTime) / ((float) activeScene.getTotalTime()) * (width + 4)); - - boolean selected = i == hoverIndex; - int startColor = selected ? hoverStartColor : idleStartColor; - int endColor = selected ? hoverEndColor : idleEndColor; - int height = selected ? 8 : 4; - - drawKeyframe(ms, activeScene, selected, keyframeTime, keyframePos, startColor, endColor, height); - - } - } - - private void drawKeyframe(PoseStack ms, PonderScene activeScene, boolean selected, int keyframeTime, int keyframePos, int startColor, int endColor, int height) { - if (selected) { - Font font = Minecraft.getInstance().font; - GuiUtils.drawGradientRect(ms.last() - .pose(), 600, keyframePos, 10, keyframePos + 1, 10 + height, endColor, startColor); - ms.pushPose(); - ms.translate(0, 0, 200); - String text; - int offset; - if (activeScene.getCurrentTime() < keyframeTime) { - text = ">"; - offset = -1 - font.width(text); - } else { - text = "<"; - offset = 3; - } - font.draw(ms, text, keyframePos + offset, 10, endColor); - ms.popPose(); - } - - GuiUtils.drawGradientRect(ms.last() - .pose(), 400, keyframePos, -1, keyframePos + 1, 2 + height, startColor, endColor); - } - - @Override - public void playDownSound(SoundManager handler) { - - } -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java deleted file mode 100644 index c7bd9bc8b..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import java.util.List; -import java.util.Optional; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.item.TooltipHelper; -import com.simibubi.create.foundation.ponder.PonderLocalization; -import com.simibubi.create.foundation.ponder.PonderRegistry; -import com.simibubi.create.foundation.ponder.PonderTag; -import com.simibubi.create.foundation.utility.FontHelper; -import com.simibubi.create.foundation.utility.Lang; - -import net.minecraft.ChatFormatting; -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.client.renderer.Rect2i; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.util.Mth; - -public class PonderTagIndexScreen extends NavigatableSimiScreen { - - public static final String EXIT = PonderLocalization.LANG_PREFIX + "exit"; - public static final String TITLE = PonderLocalization.LANG_PREFIX + "index_title"; - public static final String WELCOME = PonderLocalization.LANG_PREFIX + "welcome"; - public static final String CATEGORIES = PonderLocalization.LANG_PREFIX + "categories"; - public static final String DESCRIPTION = PonderLocalization.LANG_PREFIX + "index_description"; - - private final double itemXmult = 0.5; - protected Rect2i itemArea; - protected Rect2i chapterArea; - private final double mainYmult = 0.15; - - private PonderTag hoveredItem = null; - - // The ponder entry point from the menu. May be changed to include general - // chapters in the future - public PonderTagIndexScreen() {} - - @Override - protected void init() { - super.init(); - - List tags = PonderRegistry.TAGS.getListedTags(); - int rowCount = Mth.clamp((int) Math.ceil(tags.size() / 11d), 1, 3); - LayoutHelper layout = LayoutHelper.centeredHorizontal(tags.size(), rowCount, 28, 28, 8); - itemArea = layout.getArea(); - int itemCenterX = (int) (width * itemXmult); - int itemCenterY = getItemsY(); - - for (PonderTag i : tags) { - PonderButton b = - new PonderButton(itemCenterX + layout.getX() + 4, itemCenterY + layout.getY() + 4).showingTag(i) - .withCallback((mouseX, mouseY) -> { - centerScalingOn(mouseX, mouseY); - ScreenOpener.transitionTo(new PonderTagScreen(i)); - }); - addRenderableWidget(b); - layout.next(); - } - - addRenderableWidget(backTrack = new PonderButton(31, height - 31 - 20).enableFade(0, 5) - .showing(AllIcons.I_MTD_CLOSE) - .withCallback(() -> ScreenOpener.openPreviousScreen(this, Optional.empty()))); - backTrack.fade(1); - } - - @Override - protected void initBackTrackIcon(PonderButton backTrack) { - backTrack.showing(AllItems.WRENCH.asStack()); - } - - @Override - public void tick() { - super.tick(); - PonderUI.ponderTicks++; - - hoveredItem = null; - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - for (GuiEventListener child : children()) { - if (child == backTrack) - continue; - if (child instanceof PonderButton button) - if (button.isMouseOver(mouseX, mouseY)) - hoveredItem = button.getTag(); - } - } - - @Override - protected String backTrackingLangKey() { - return EXIT; - } - - @Override - protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - renderItems(ms, mouseX, mouseY, partialTicks); - - ms.pushPose(); - ms.translate(width / 2 - 120, height * mainYmult - 40, 0); - - ms.pushPose(); - // ms.translate(0, 0, 800); - int x = 31 + 20 + 8; - int y = 31; - - String title = Lang.translateDirect(WELCOME) - .getString(); - - int streakHeight = 35; - UIRenderHelper.streak(ms, 0, x - 4, y - 12 + streakHeight / 2, streakHeight, 240); - // PonderUI.renderBox(ms, 21, 21, 30, 30, false); - new BoxElement().withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(21, 21, 100) - .withBounds(30, 30) - .render(ms); - - font.draw(ms, title, x + 8, y + 1, Theme.i(Theme.Key.TEXT)); -// y += 8; -// x += 0; -// ms.translate(x, y, 0); -// ms.translate(0, 0, 5); -// textRenderer.draw(ms, title, 0, 0, Theme.i(Theme.Key.TEXT)); - ms.popPose(); - - ms.pushPose(); - ms.translate(23, 23, 10); - ms.scale(1.66f, 1.66f, 1.66f); - ms.translate(-4, -4, 0); - ms.scale(1.5f, 1.5f, 1.5f); - GuiGameElement.of(AllItems.WRENCH.asStack()) - .render(ms); - ms.popPose(); - ms.popPose(); - - ms.pushPose(); - int w = (int) (width * .45); - x = (width - w) / 2; - y = getItemsY() - 10 + Math.max(itemArea.getHeight(), 48); - - String desc = Lang.translateDirect(DESCRIPTION) - .getString(); - int h = font.wordWrapHeight(desc, w); - - // PonderUI.renderBox(ms, x - 3, y - 3, w + 6, h + 6, false); - new BoxElement().withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(x - 3, y - 3, 90) - .withBounds(w + 6, h + 6) - .render(ms); - - ms.translate(0, 0, 100); - FontHelper.drawSplitString(ms, font, desc, x, y, w, Theme.i(Theme.Key.TEXT)); - ms.popPose(); - } - - protected void renderItems(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - List tags = PonderRegistry.TAGS.getListedTags(); - if (tags.isEmpty()) - return; - - int x = (int) (width * itemXmult); - int y = getItemsY(); - - String relatedTitle = Lang.translateDirect(CATEGORIES) - .getString(); - int stringWidth = font.width(relatedTitle); - - ms.pushPose(); - ms.translate(x, y, 0); - // PonderUI.renderBox(ms, (sWidth - stringWidth) / 2 - 5, itemArea.getY() - 21, - // stringWidth + 10, 10, false); - new BoxElement().withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at((windowWidth - stringWidth) / 2f - 5, itemArea.getY() - 21, 100) - .withBounds(stringWidth + 10, 10) - .render(ms); - - ms.translate(0, 0, 200); - -// UIRenderHelper.streak(0, itemArea.getX() - 10, itemArea.getY() - 20, 20, 180, 0x101010); - drawCenteredString(ms, font, relatedTitle, windowWidth / 2, itemArea.getY() - 20, Theme.i(Theme.Key.TEXT)); - - ms.translate(0, 0, -200); - - UIRenderHelper.streak(ms, 0, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75); - UIRenderHelper.streak(ms, 180, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75); - - ms.popPose(); - - } - - public int getItemsY() { - return (int) (mainYmult * height + 85); - } - - @Override - protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - RenderSystem.disableDepthTest(); - ms.pushPose(); - ms.translate(0, 0, 200); - - if (hoveredItem != null) { - List list = TooltipHelper.cutStringTextComponent(hoveredItem.getDescription(), - ChatFormatting.GRAY, ChatFormatting.GRAY); - list.add(0, new TextComponent(hoveredItem.getTitle())); - renderComponentTooltip(ms, list, mouseX, mouseY); - } - - ms.popPose(); - RenderSystem.enableDepthTest(); - } - - @Override - protected String getBreadcrumbTitle() { - return Lang.translateDirect(TITLE) - .getString(); - } - - @Override - public boolean isPauseScreen() { - return true; - } - - @Override - public void removed() { - super.removed(); - hoveredItem = null; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagScreen.java deleted file mode 100644 index 854026875..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagScreen.java +++ /dev/null @@ -1,363 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.ponder.PonderChapter; -import com.simibubi.create.foundation.ponder.PonderLocalization; -import com.simibubi.create.foundation.ponder.PonderRegistry; -import com.simibubi.create.foundation.ponder.PonderTag; -import com.simibubi.create.foundation.utility.FontHelper; -import com.simibubi.create.foundation.utility.Lang; - -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.client.renderer.Rect2i; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.registries.ForgeRegistries; - -public class PonderTagScreen extends NavigatableSimiScreen { - - public static final String ASSOCIATED = PonderLocalization.LANG_PREFIX + "associated"; - - private final PonderTag tag; - protected final List items; - private final double itemXmult = 0.5; - protected Rect2i itemArea; - protected final List chapters; - private final double chapterXmult = 0.5; - private final double chapterYmult = 0.75; - protected Rect2i chapterArea; - private final double mainYmult = 0.15; - - private ItemStack hoveredItem = ItemStack.EMPTY; - - public PonderTagScreen(PonderTag tag) { - this.tag = tag; - items = new ArrayList<>(); - chapters = new ArrayList<>(); - } - - @Override - protected void init() { - super.init(); - - // items - items.clear(); - PonderRegistry.TAGS.getItems(tag) - .stream() - .map(key -> { - Item item = ForgeRegistries.ITEMS.getValue(key); - if (item == null) { - Block b = ForgeRegistries.BLOCKS.getValue(key); - if (b != null) - item = b.asItem(); - } - return item; - }) - .filter(Objects::nonNull) - .forEach(items::add); - - if (!tag.getMainItem().isEmpty()) - items.remove(tag.getMainItem().getItem()); - - int rowCount = Mth.clamp((int) Math.ceil(items.size() / 11d), 1, 3); - LayoutHelper layout = LayoutHelper.centeredHorizontal(items.size(), rowCount, 28, 28, 8); - itemArea = layout.getArea(); - int itemCenterX = (int) (width * itemXmult); - int itemCenterY = getItemsY(); - - for (Item i : items) { - PonderButton b = new PonderButton(itemCenterX + layout.getX() + 4, itemCenterY + layout.getY() + 4) - .showing(new ItemStack(i)); - - if (PonderRegistry.ALL.containsKey(i.getRegistryName())) { - b.withCallback((mouseX, mouseY) -> { - centerScalingOn(mouseX, mouseY); - ScreenOpener.transitionTo(PonderUI.of(new ItemStack(i), tag)); - }); - } else { - if (i.getRegistryName() - .getNamespace() - .equals(Create.ID)) - b.withBorderColors(Theme.p(Theme.Key.PONDER_MISSING_CREATE)) - .animateColors(false); - else - b.withBorderColors(Theme.p(Theme.Key.PONDER_MISSING_VANILLA)) - .animateColors(false); - } - - addRenderableWidget(b); - layout.next(); - } - - if (!tag.getMainItem().isEmpty()) { - ResourceLocation registryName = tag.getMainItem() - .getItem() - .getRegistryName(); - - PonderButton b = new PonderButton(itemCenterX - layout.getTotalWidth() / 2 - 48, itemCenterY - 10) - .showing(tag.getMainItem()); - b.withCustomBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_IMPORTANT)); - - if (PonderRegistry.ALL.containsKey(registryName)) { - b.withCallback((mouseX, mouseY) -> { - centerScalingOn(mouseX, mouseY); - ScreenOpener.transitionTo(PonderUI.of(tag.getMainItem(), tag)); - }); - } else { - if (registryName.getNamespace() - .equals(Create.ID)) - b.withBorderColors(Theme.p(Theme.Key.PONDER_MISSING_CREATE)) - .animateColors(false); - else - b.withBorderColors(Theme.p(Theme.Key.PONDER_MISSING_VANILLA)) - .animateColors(false); - } - - addRenderableWidget(b); - } - - // chapters - chapters.clear(); - chapters.addAll(PonderRegistry.TAGS.getChapters(tag)); - - rowCount = Mth.clamp((int) Math.ceil(chapters.size() / 3f), 1, 3); - layout = LayoutHelper.centeredHorizontal(chapters.size(), rowCount, 200, 38, 16); - chapterArea = layout.getArea(); - int chapterCenterX = (int) (width * chapterXmult); - int chapterCenterY = (int) (height * chapterYmult); - - for (PonderChapter chapter : chapters) { - ChapterLabel label = new ChapterLabel(chapter, chapterCenterX + layout.getX(), - chapterCenterY + layout.getY(), (mouseX, mouseY) -> { - centerScalingOn(mouseX, mouseY); - ScreenOpener.transitionTo(PonderUI.of(chapter)); - }); - - addRenderableWidget(label); - layout.next(); - } - - } - - @Override - protected void initBackTrackIcon(PonderButton backTrack) { - backTrack.showing(tag); - } - - @Override - public void tick() { - super.tick(); - PonderUI.ponderTicks++; - - hoveredItem = ItemStack.EMPTY; - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - for (GuiEventListener child : children()) { - if (child == backTrack) - continue; - if (child instanceof PonderButton button) - if (button.isMouseOver(mouseX, mouseY)) { - hoveredItem = button.getItem(); - } - } - } - - @Override - protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - renderItems(ms, mouseX, mouseY, partialTicks); - - renderChapters(ms, mouseX, mouseY, partialTicks); - - ms.pushPose(); - ms.translate(width / 2 - 120, height * mainYmult - 40, 0); - - ms.pushPose(); - //ms.translate(0, 0, 800); - int x = 31 + 20 + 8; - int y = 31; - - String title = tag.getTitle(); - - int streakHeight = 35; - UIRenderHelper.streak(ms, 0, x - 4, y - 12 + streakHeight / 2, streakHeight, 240); - //PonderUI.renderBox(ms, 21, 21, 30, 30, false); - new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(21, 21, 100) - .withBounds(30, 30) - .render(ms); - - font.draw(ms, Lang.translateDirect(PonderUI.PONDERING), x, y - 6, Theme.i(Theme.Key.TEXT_DARKER)); - y += 8; - x += 0; - ms.translate(x, y, 0); - ms.translate(0, 0, 5); - font.draw(ms, title, 0, 0, Theme.i(Theme.Key.TEXT)); - ms.popPose(); - - ms.pushPose(); - ms.translate(23, 23, 10); - ms.scale(1.66f, 1.66f, 1.66f); - tag.render(ms, 0, 0); - ms.popPose(); - ms.popPose(); - - ms.pushPose(); - int w = (int) (width * .45); - x = (width - w) / 2; - y = getItemsY() - 10 + Math.max(itemArea.getHeight(), 48); - - String desc = tag.getDescription(); - int h = font.wordWrapHeight(desc, w); - - - //PonderUI.renderBox(ms, x - 3, y - 3, w + 6, h + 6, false); - new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(x - 3, y - 3, 90) - .withBounds(w + 6, h + 6) - .render(ms); - - ms.translate(0, 0, 100); - FontHelper.drawSplitString(ms, font, desc, x, y, w, Theme.i(Theme.Key.TEXT)); - ms.popPose(); - } - - protected void renderItems(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - if (items.isEmpty()) - return; - - int x = (int) (width * itemXmult); - int y = getItemsY(); - - String relatedTitle = Lang.translateDirect(ASSOCIATED).getString(); - int stringWidth = font.width(relatedTitle); - - ms.pushPose(); - ms.translate(x, y, 0); - //PonderUI.renderBox(ms, (sWidth - stringWidth) / 2 - 5, itemArea.getY() - 21, stringWidth + 10, 10, false); - new BoxElement() - .withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at((windowWidth - stringWidth) / 2f - 5, itemArea.getY() - 21, 100) - .withBounds(stringWidth + 10, 10) - .render(ms); - - ms.translate(0, 0, 200); - -// UIRenderHelper.streak(0, itemArea.getX() - 10, itemArea.getY() - 20, 20, 180, 0x101010); - drawCenteredString(ms, font, relatedTitle, windowWidth / 2, itemArea.getY() - 20, Theme.i(Theme.Key.TEXT)); - - ms.translate(0,0, -200); - - UIRenderHelper.streak(ms, 0, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75); - UIRenderHelper.streak(ms, 180, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75); - - ms.popPose(); - - } - - public int getItemsY() { - return (int) (mainYmult * height + 85); - } - - protected void renderChapters(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - if (chapters.isEmpty()) - return; - - int chapterX = (int) (width * chapterXmult); - int chapterY = (int) (height * chapterYmult); - - ms.pushPose(); - ms.translate(chapterX, chapterY, 0); - - UIRenderHelper.streak(ms, 0, chapterArea.getX() - 10, chapterArea.getY() - 20, 20, 220); - font.draw(ms, "More Topics to Ponder about", chapterArea.getX() - 5, chapterArea.getY() - 25, Theme.i(Theme.Key.TEXT_ACCENT_SLIGHT)); - - ms.popPose(); - } - - @Override - protected void renderWindowForeground(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - RenderSystem.disableDepthTest(); - ms.pushPose(); - ms.translate(0, 0, 200); - - if (!hoveredItem.isEmpty()) { - renderTooltip(ms, hoveredItem, mouseX, mouseY); - } - - ms.popPose(); - RenderSystem.enableDepthTest(); - } - - @Override - protected String getBreadcrumbTitle() { - return tag.getTitle(); - } - - public ItemStack getHoveredTooltipItem() { - return hoveredItem; - } - - /*@Override - public boolean mouseClicked(double x, double y, int button) { - MutableBoolean handled = new MutableBoolean(false); - widgets.forEach(w -> { - if (handled.booleanValue()) - return; - if (!w.isMouseOver(x, y)) - return; - if (w instanceof PonderButton) { - PonderButton mtdButton = (PonderButton) w; - mtdButton.runCallback(x, y); - handled.setTrue(); - return; - } - }); - - if (handled.booleanValue()) - return true; - return super.mouseClicked(x, y, button); - }*/ - - @Override - public boolean isEquivalentTo(NavigatableSimiScreen other) { - if (other instanceof PonderTagScreen) - return tag == ((PonderTagScreen) other).tag; - return super.isEquivalentTo(other); - } - - @Override - public boolean isPauseScreen() { - return true; - } - - public PonderTag getTag() { - return tag; - } - - @Override - public void removed() { - super.removed(); - hoveredItem = ItemStack.EMPTY; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java deleted file mode 100644 index b0258e403..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java +++ /dev/null @@ -1,1026 +0,0 @@ -package com.simibubi.create.foundation.ponder.ui; - -import static com.simibubi.create.foundation.ponder.PonderLocalization.LANG_PREFIX; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Random; -import java.util.stream.IntStream; - -import com.mojang.blaze3d.platform.ClipboardManager; -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Matrix4f; -import com.mojang.math.Vector3f; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.gui.ScreenOpener; -import com.simibubi.create.foundation.gui.Theme; -import com.simibubi.create.foundation.gui.UIRenderHelper; -import com.simibubi.create.foundation.gui.element.BoxElement; -import com.simibubi.create.foundation.gui.element.GuiGameElement; -import com.simibubi.create.foundation.ponder.PonderChapter; -import com.simibubi.create.foundation.ponder.PonderRegistry; -import com.simibubi.create.foundation.ponder.PonderScene; -import com.simibubi.create.foundation.ponder.PonderScene.SceneTransform; -import com.simibubi.create.foundation.ponder.PonderStoryBoardEntry; -import com.simibubi.create.foundation.ponder.PonderTag; -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.content.DebugScenes; -import com.simibubi.create.foundation.ponder.content.PonderIndex; -import com.simibubi.create.foundation.ponder.element.TextWindowElement; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Couple; -import com.simibubi.create.foundation.utility.FontHelper; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.Pointing; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; - -import net.minecraft.ChatFormatting; -import net.minecraft.client.Minecraft; -import net.minecraft.client.Options; -import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.components.events.GuiEventListener; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; -import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.gui.GuiUtils; -import net.minecraftforge.registries.ForgeRegistries; - -public class PonderUI extends NavigatableSimiScreen { - - public static int ponderTicks; - public static float ponderPartialTicksPaused; - - public static final String PONDERING = LANG_PREFIX + "pondering"; - public static final String IDENTIFY_MODE = LANG_PREFIX + "identify_mode"; - public static final String IN_CHAPTER = LANG_PREFIX + "in_chapter"; - public static final String IDENTIFY = LANG_PREFIX + "identify"; - public static final String PREVIOUS = LANG_PREFIX + "previous"; - public static final String CLOSE = LANG_PREFIX + "close"; - public static final String NEXT = LANG_PREFIX + "next"; - public static final String NEXT_UP = LANG_PREFIX + "next_up"; - public static final String REPLAY = LANG_PREFIX + "replay"; - public static final String SLOW_TEXT = LANG_PREFIX + "slow_text"; - - private List scenes; - private List tags; - private List tagButtons; - private List tagFades; - private LerpedFloat fadeIn; - ItemStack stack; - PonderChapter chapter = null; - - private boolean userViewMode; - private boolean identifyMode; - private ItemStack hoveredTooltipItem; - private BlockPos hoveredBlockPos; - - private ClipboardManager clipboardHelper; - private BlockPos copiedBlockPos; - - private LerpedFloat finishingFlash; - private LerpedFloat nextUp; - private int finishingFlashWarmup = 0; - private int nextUpWarmup = 0; - - private LerpedFloat lazyIndex; - private int index = 0; - private PonderTag referredToByTag; - - private PonderButton left, right, scan, chap, userMode, close, replay, slowMode; - private int skipCooling = 0; - - private int extendedTickLength = 0; - private int extendedTickTimer = 0; - - public static PonderUI of(ResourceLocation id) { - return new PonderUI(PonderRegistry.compile(id)); - } - - public static PonderUI of(ItemStack item) { - return new PonderUI(PonderRegistry.compile(item.getItem() - .getRegistryName())); - } - - public static PonderUI of(ItemStack item, PonderTag tag) { - PonderUI ponderUI = new PonderUI(PonderRegistry.compile(item.getItem() - .getRegistryName())); - ponderUI.referredToByTag = tag; - return ponderUI; - } - - public static PonderUI of(PonderChapter chapter) { - PonderUI ui = new PonderUI(PonderRegistry.compile(chapter)); - ui.chapter = chapter; - return ui; - } - - PonderUI(List scenes) { - ResourceLocation component = scenes.get(0) - .getComponent(); - if (ForgeRegistries.ITEMS.containsKey(component)) - stack = new ItemStack(ForgeRegistries.ITEMS.getValue(component)); - else - stack = new ItemStack(ForgeRegistries.BLOCKS.getValue(component)); - - tags = new ArrayList<>(PonderRegistry.TAGS.getTags(component)); - this.scenes = scenes; - if (scenes.isEmpty()) { - List l = Collections.singletonList(new PonderStoryBoardEntry(DebugScenes::empty, - Create.ID, "debug/scene_1", new ResourceLocation("minecraft", "stick"))); - scenes.addAll(PonderRegistry.compile(l)); - } - lazyIndex = LerpedFloat.linear() - .startWithValue(index); - fadeIn = LerpedFloat.linear() - .startWithValue(0) - .chase(1, .1f, Chaser.EXP); - clipboardHelper = new ClipboardManager(); - finishingFlash = LerpedFloat.linear() - .startWithValue(0) - .chase(0, .1f, Chaser.EXP); - nextUp = LerpedFloat.linear() - .startWithValue(0) - .chase(0, .4f, Chaser.EXP); - } - - @Override - protected void init() { - super.init(); - - tagButtons = new ArrayList<>(); - tagFades = new ArrayList<>(); - - tags.forEach(t -> { - int i = tagButtons.size(); - int x = 31; - int y = 81 + i * 30; - - PonderButton b2 = new PonderButton(x, y).showing(t) - .withCallback((mX, mY) -> { - centerScalingOn(mX, mY); - ScreenOpener.transitionTo(new PonderTagScreen(t)); - }); - - addRenderableWidget(b2); - tagButtons.add(b2); - - LerpedFloat chase = LerpedFloat.linear() - .startWithValue(0) - .chase(0, .05f, Chaser.exp(.1)); - tagFades.add(chase); - - }); - - /* - * if (chapter != null) { widgets.add(chap = new PonderButton(width - 31 - 24, - * 31, () -> { }).showing(chapter)); } - */ - - Options bindings = minecraft.options; - int spacing = 8; - int bX = (width - 20) / 2 - (70 + 2 * spacing); - int bY = height - 20 - 31; - - { - int pX = (width / 2) - 110; - int pY = bY + 20 + 4; - int pW = width - 2 * pX; - addRenderableWidget(new PonderProgressBar(this, pX, pY, pW, 1)); - } - - addRenderableWidget(scan = new PonderButton(bX, bY).withShortcut(bindings.keyDrop) - .showing(AllIcons.I_MTD_SCAN) - .enableFade(0, 5) - .withCallback(() -> { - identifyMode = !identifyMode; - if (!identifyMode) - scenes.get(index) - .deselect(); - else - ponderPartialTicksPaused = minecraft.getFrameTime(); - })); - scan.atZLevel(600); - - addRenderableWidget(slowMode = new PonderButton(width - 20 - 31, bY).showing(AllIcons.I_MTD_SLOW_MODE) - .enableFade(0, 5) - .withCallback(() -> setComfyReadingEnabled(!isComfyReadingEnabled()))); - - if (PonderIndex.editingModeActive()) { - addRenderableWidget(userMode = new PonderButton(width - 50 - 31, bY).showing(AllIcons.I_MTD_USER_MODE) - .enableFade(0, 5) - .withCallback(() -> userViewMode = !userViewMode)); - } - - bX += 50 + spacing; - addRenderableWidget(left = new PonderButton(bX, bY).withShortcut(bindings.keyLeft) - .showing(AllIcons.I_MTD_LEFT) - .enableFade(0, 5) - .withCallback(() -> this.scroll(false))); - - bX += 20 + spacing; - addRenderableWidget(close = new PonderButton(bX, bY).withShortcut(bindings.keyInventory) - .showing(AllIcons.I_MTD_CLOSE) - .enableFade(0, 5) - .withCallback(this::onClose)); - - bX += 20 + spacing; - addRenderableWidget(right = new PonderButton(bX, bY).withShortcut(bindings.keyRight) - .showing(AllIcons.I_MTD_RIGHT) - .enableFade(0, 5) - .withCallback(() -> this.scroll(true))); - - bX += 50 + spacing; - addRenderableWidget(replay = new PonderButton(bX, bY).withShortcut(bindings.keyDown) - .showing(AllIcons.I_MTD_REPLAY) - .enableFade(0, 5) - .withCallback(this::replay)); - } - - @Override - protected void initBackTrackIcon(PonderButton backTrack) { - backTrack.showing(stack); - } - - @Override - public void tick() { - super.tick(); - - if (skipCooling > 0) - skipCooling--; - - if (referredToByTag != null) { - for (int i = 0; i < scenes.size(); i++) { - PonderScene ponderScene = scenes.get(i); - if (!ponderScene.getTags() - .contains(referredToByTag)) - continue; - if (i == index) - break; - scenes.get(index) - .fadeOut(); - index = i; - scenes.get(index) - .begin(); - lazyIndex.chase(index, 1 / 4f, Chaser.EXP); - identifyMode = false; - break; - } - referredToByTag = null; - } - - lazyIndex.tickChaser(); - fadeIn.tickChaser(); - finishingFlash.tickChaser(); - nextUp.tickChaser(); - PonderScene activeScene = scenes.get(index); - - extendedTickLength = 0; - if (isComfyReadingEnabled()) - activeScene.forEachVisible(TextWindowElement.class, twe -> extendedTickLength = 2); - - if (extendedTickTimer == 0) { - if (!identifyMode) { - ponderTicks++; - if (skipCooling == 0) - activeScene.tick(); - } - - if (!identifyMode) { - float lazyIndexValue = lazyIndex.getValue(); - if (Math.abs(lazyIndexValue - index) > 1 / 512f) - scenes.get(lazyIndexValue < index ? index - 1 : index + 1) - .tick(); - } - extendedTickTimer = extendedTickLength; - } else - extendedTickTimer--; - - if (activeScene.getCurrentTime() == activeScene.getTotalTime() - 1) { - finishingFlashWarmup = 30; - nextUpWarmup = 50; - } - - if (finishingFlashWarmup > 0) { - finishingFlashWarmup--; - if (finishingFlashWarmup == 0) { - finishingFlash.setValue(1); - finishingFlash.setValue(1); - } - } - - if (nextUpWarmup > 0) { - nextUpWarmup--; - if (nextUpWarmup == 0) - nextUp.updateChaseTarget(1); - } - - updateIdentifiedItem(activeScene); - } - - public PonderScene getActiveScene() { - return scenes.get(index); - } - - public void seekToTime(int time) { - if (getActiveScene().getCurrentTime() > time) - replay(); - - getActiveScene().seekToTime(time); - if (time != 0) - coolDownAfterSkip(); - } - - public void updateIdentifiedItem(PonderScene activeScene) { - hoveredTooltipItem = ItemStack.EMPTY; - hoveredBlockPos = null; - if (!identifyMode) - return; - - Window w = minecraft.getWindow(); - double mouseX = minecraft.mouseHandler.xpos() * w.getGuiScaledWidth() / w.getScreenWidth(); - double mouseY = minecraft.mouseHandler.ypos() * w.getGuiScaledHeight() / w.getScreenHeight(); - SceneTransform t = activeScene.getTransform(); - Vec3 vec1 = t.screenToScene(mouseX, mouseY, 1000, 0); - Vec3 vec2 = t.screenToScene(mouseX, mouseY, -100, 0); - Pair pair = activeScene.rayTraceScene(vec1, vec2); - hoveredTooltipItem = pair.getFirst(); - hoveredBlockPos = pair.getSecond(); - } - - @Override - public boolean mouseScrolled(double mouseX, double mouseY, double delta) { - if (scroll(delta > 0)) - return true; - return super.mouseScrolled(mouseX, mouseY, delta); - } - - protected void replay() { - identifyMode = false; - PonderScene scene = scenes.get(index); - - if (hasShiftDown()) { - List list = PonderRegistry.ALL.get(scene.getComponent()); - PonderStoryBoardEntry sb = list.get(index); - StructureTemplate activeTemplate = PonderRegistry.loadSchematic(sb.getSchematicLocation()); - PonderWorld world = new PonderWorld(BlockPos.ZERO, Minecraft.getInstance().level); - activeTemplate.placeInWorld(world, BlockPos.ZERO, BlockPos.ZERO, new StructurePlaceSettings(), new Random(), - Block.UPDATE_CLIENTS); - world.createBackup(); - scene = PonderRegistry.compileScene(index, sb, world); - scene.begin(); - scenes.set(index, scene); - } - - scene.begin(); - } - - protected boolean scroll(boolean forward) { - int prevIndex = index; - index = forward ? index + 1 : index - 1; - index = Mth.clamp(index, 0, scenes.size() - 1); - if (prevIndex != index) {// && Math.abs(index - lazyIndex.getValue()) < 1.5f) { - scenes.get(prevIndex) - .fadeOut(); - scenes.get(index) - .begin(); - lazyIndex.chase(index, 1 / 4f, Chaser.EXP); - identifyMode = false; - return true; - } else - index = prevIndex; - return false; - } - - @Override - protected void renderWindow(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - partialTicks = getPartialTicks(); - RenderSystem.enableBlend(); - renderVisibleScenes(ms, mouseX, mouseY, - skipCooling > 0 ? 0 : identifyMode ? ponderPartialTicksPaused : partialTicks); - renderWidgets(ms, mouseX, mouseY, identifyMode ? ponderPartialTicksPaused : partialTicks); - } - - @Override - public void renderBackground(PoseStack ms) { - super.renderBackground(ms); - } - - protected void renderVisibleScenes(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - renderScene(ms, mouseX, mouseY, index, partialTicks); - float lazyIndexValue = lazyIndex.getValue(partialTicks); - if (Math.abs(lazyIndexValue - index) > 1 / 512f) - renderScene(ms, mouseX, mouseY, lazyIndexValue < index ? index - 1 : index + 1, partialTicks); - } - - protected void renderScene(PoseStack ms, int mouseX, int mouseY, int i, float partialTicks) { - SuperRenderTypeBuffer buffer = SuperRenderTypeBuffer.getInstance(); - PonderScene story = scenes.get(i); - double value = lazyIndex.getValue(minecraft.getFrameTime()); - double diff = i - value; - double slide = Mth.lerp(diff * diff, 200, 600) * diff; - - RenderSystem.enableBlend(); - RenderSystem.enableDepthTest(); - RenderSystem.backupProjectionMatrix(); - - // has to be outside of MS transforms, important for vertex sorting - Matrix4f matrix4f = new Matrix4f(RenderSystem.getProjectionMatrix()); - matrix4f.multiplyWithTranslation(0, 0, 800); - RenderSystem.setProjectionMatrix(matrix4f); - - ms.pushPose(); - ms.translate(0, 0, -800); - story.getTransform() - .updateScreenParams(width, height, slide); - story.getTransform() - .apply(ms, partialTicks, false); - story.getTransform() - .updateSceneRVE(partialTicks); - story.renderScene(buffer, ms, partialTicks); - buffer.draw(); - - BoundingBox bounds = story.getBounds(); - ms.pushPose(); - - // kool shadow fx - { - RenderSystem.enableCull(); - RenderSystem.enableDepthTest(); - ms.pushPose(); - ms.translate(story.getBasePlateOffsetX(), 0, story.getBasePlateOffsetZ()); - UIRenderHelper.flipForGuiRender(ms); - - float flash = finishingFlash.getValue(partialTicks) * .9f; - float alpha = flash; - flash *= flash; - flash = ((flash * 2) - 1); - flash *= flash; - flash = 1 - flash; - - for (int f = 0; f < 4; f++) { - ms.translate(story.getBasePlateSize(), 0, 0); - ms.pushPose(); - ms.translate(0, 0, -1 / 1024f); - if (flash > 0) { - ms.pushPose(); - ms.scale(1, .5f + flash * .75f, 1); - GuiUtils.drawGradientRect(ms.last() - .pose(), 0, 0, -1, -story.getBasePlateSize(), 0, 0x00_c6ffc9, - new Color(0xaa_c6ffc9).scaleAlpha(alpha) - .getRGB()); - ms.popPose(); - } - ms.translate(0, 0, 2 / 1024f); - GuiUtils.drawGradientRect(ms.last() - .pose(), 0, 0, 0, -story.getBasePlateSize(), 4, 0x66_000000, 0x00_000000); - ms.popPose(); - ms.mulPose(Vector3f.YP.rotationDegrees(-90)); - } - ms.popPose(); - RenderSystem.disableCull(); - RenderSystem.disableDepthTest(); - } - - // coords for debug - if (PonderIndex.editingModeActive() && !userViewMode) { - - ms.scale(-1, -1, 1); - ms.scale(1 / 16f, 1 / 16f, 1 / 16f); - ms.translate(1, -8, -1 / 64f); - - // X AXIS - ms.pushPose(); - ms.translate(4, -3, 0); - ms.translate(0, 0, -2 / 1024f); - for (int x = 0; x <= bounds.getXSpan(); x++) { - ms.translate(-16, 0, 0); - font.draw(ms, x == bounds.getXSpan() ? "x" : "" + x, 0, 0, 0xFFFFFFFF); - } - ms.popPose(); - - // Z AXIS - ms.pushPose(); - ms.scale(-1, 1, 1); - ms.translate(0, -3, -4); - ms.mulPose(Vector3f.YP.rotationDegrees(-90)); - ms.translate(-8, -2, 2 / 64f); - for (int z = 0; z <= bounds.getZSpan(); z++) { - ms.translate(16, 0, 0); - font.draw(ms, z == bounds.getZSpan() ? "z" : "" + z, 0, 0, 0xFFFFFFFF); - } - ms.popPose(); - - // DIRECTIONS - ms.pushPose(); - ms.translate(bounds.getXSpan() * -8, 0, bounds.getZSpan() * 8); - ms.mulPose(Vector3f.YP.rotationDegrees(-90)); - for (Direction d : Iterate.horizontalDirections) { - ms.mulPose(Vector3f.YP.rotationDegrees(90)); - ms.pushPose(); - ms.translate(0, 0, bounds.getZSpan() * 16); - ms.mulPose(Vector3f.XP.rotationDegrees(-90)); - font.draw(ms, d.name() - .substring(0, 1), 0, 0, 0x66FFFFFF); - font.draw(ms, "|", 2, 10, 0x44FFFFFF); - font.draw(ms, ".", 2, 14, 0x22FFFFFF); - ms.popPose(); - } - ms.popPose(); - buffer.draw(); - } - - ms.popPose(); - ms.popPose(); - RenderSystem.restoreProjectionMatrix(); - } - - protected void renderWidgets(PoseStack ms, int mouseX, int mouseY, float partialTicks) { - RenderSystem.disableDepthTest(); - - float fade = fadeIn.getValue(partialTicks); - float lazyIndexValue = lazyIndex.getValue(partialTicks); - float indexDiff = Math.abs(lazyIndexValue - index); - PonderScene activeScene = scenes.get(index); - PonderScene nextScene = scenes.size() > index + 1 ? scenes.get(index + 1) : null; - - boolean noWidgetsHovered = true; - for (GuiEventListener child : children()) - noWidgetsHovered &= !child.isMouseOver(mouseX, mouseY); - - int tooltipColor = Theme.i(Theme.Key.TEXT_DARKER); - { - // Chapter title - ms.pushPose(); - ms.translate(0, 0, 400); - int x = 31 + 20 + 8; - int y = 31; - - String title = activeScene.getTitle(); - int wordWrappedHeight = font.wordWrapHeight(title, left.x - 51); - - int streakHeight = 35 - 9 + wordWrappedHeight; - UIRenderHelper.streak(ms, 0, x - 4, y - 12 + streakHeight / 2, streakHeight, (int) (150 * fade)); - UIRenderHelper.streak(ms, 180, x - 4, y - 12 + streakHeight / 2, streakHeight, (int) (30 * fade)); - new BoxElement().withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(Theme.p(Theme.Key.PONDER_IDLE)) - .at(21, 21, 100) - .withBounds(30, 30) - .render(ms); - - GuiGameElement.of(stack) - .scale(2) - .at(x - 39, y - 11) - .render(ms); - - font.draw(ms, Lang.translateDirect(PONDERING), x, y - 6, tooltipColor); - y += 8; - x += 0; - ms.translate(x, y, 0); - ms.mulPose(Vector3f.XN.rotationDegrees(indexDiff * -75)); - ms.translate(0, 0, 5); - FontHelper.drawSplitString(ms, font, title, 0, 0, left.x - 51, Theme.c(Theme.Key.TEXT) - .scaleAlpha(1 - indexDiff) - .getRGB()); - ms.popPose(); - - if (chapter != null) { - ms.pushPose(); - - ms.translate(chap.x - 4 - 4, chap.y, 0); - UIRenderHelper.streak(ms, 180, 4, 10, 26, (int) (150 * fade)); - - drawRightAlignedString(font, ms, Lang.translateDirect(IN_CHAPTER) - .getString(), 0, 0, tooltipColor); - drawRightAlignedString(font, ms, chapter.getTitle(), 0, 12, Theme.i(Theme.Key.TEXT)); - - ms.popPose(); - } - - Color c1 = Theme.c(Theme.Key.PONDER_BACK_ARROW) - .setAlpha(0x40); - Color c2 = Theme.c(Theme.Key.PONDER_BACK_ARROW) - .setAlpha(0x20); - Color c3 = Theme.c(Theme.Key.PONDER_BACK_ARROW) - .setAlpha(0x10); - UIRenderHelper.breadcrumbArrow(ms, width / 2 - 20, height - 51, 0, 20, 20, 5, c1, c2); - UIRenderHelper.breadcrumbArrow(ms, width / 2 + 20, height - 51, 0, -20, 20, -5, c1, c2); - UIRenderHelper.breadcrumbArrow(ms, width / 2 - 90, height - 51, 0, 70, 20, 5, c1, c3); - UIRenderHelper.breadcrumbArrow(ms, width / 2 + 90, height - 51, 0, -70, 20, -5, c1, c3); - } - - if (identifyMode) { - if (noWidgetsHovered && mouseY < height - 80) { - ms.pushPose(); - ms.translate(mouseX, mouseY, 100); - if (hoveredTooltipItem.isEmpty()) { - MutableComponent text = Lang - .translateDirect(IDENTIFY_MODE, - ((MutableComponent) minecraft.options.keyDrop.getTranslatedKeyMessage()) - .withStyle(ChatFormatting.WHITE)) - .withStyle(ChatFormatting.GRAY); - - // renderOrderedTooltip(ms, textRenderer.wrapLines(text, width / 3), 0, 0); - renderComponentTooltip(ms, font.getSplitter() - .splitLines(text, width / 3, Style.EMPTY), 0, 0, font); - /* - * String tooltip = Lang .createTranslationTextComponent(IDENTIFY_MODE, - * client.gameSettings.keyBindDrop.getBoundKeyLocalizedText().applyTextStyle( - * TextFormatting.WHITE)) .applyTextStyle(TextFormatting.GRAY) - * .getFormattedText(); renderTooltip(font.listFormattedStringToWidth(tooltip, - * width / 3), 0, 0); - */ - } else - renderTooltip(ms, hoveredTooltipItem, 0, 0); - if (hoveredBlockPos != null && PonderIndex.editingModeActive() && !userViewMode) { - ms.translate(0, -15, 0); - boolean copied = copiedBlockPos != null && hoveredBlockPos.equals(copiedBlockPos); - MutableComponent coords = new TextComponent( - hoveredBlockPos.getX() + ", " + hoveredBlockPos.getY() + ", " + hoveredBlockPos.getZ()) - .withStyle(copied ? ChatFormatting.GREEN : ChatFormatting.GOLD); - renderTooltip(ms, coords, 0, 0); - } - ms.popPose(); - } - scan.flash(); - } else { - scan.dim(); - } - - if (PonderIndex.editingModeActive()) { - if (userViewMode) - userMode.flash(); - else - userMode.dim(); - } - - if (isComfyReadingEnabled()) - slowMode.flash(); - else - slowMode.dim(); - - { - // Scene overlay - float scenePT = skipCooling > 0 ? 0 : partialTicks; - ms.pushPose(); - ms.translate(0, 0, 100); - renderOverlay(ms, index, scenePT); - if (indexDiff > 1 / 512f) - renderOverlay(ms, lazyIndexValue < index ? index - 1 : index + 1, scenePT); - ms.popPose(); - } - - boolean finished = activeScene.isFinished(); - - // Next up: - if (finished && nextScene != null && nextUp.getValue() > 1 / 16f && !nextScene.getId() - .equals(Create.asResource("creative_motor_mojang"))) { - ms.pushPose(); - ms.translate(right.x + 10, right.y - 6 + nextUp.getValue(partialTicks) * 5, 400); - int boxWidth = (Math.max(font.width(nextScene.getTitle()), font.width(Lang.translateDirect(NEXT_UP))) + 5); - renderSpeechBox(ms, 0, 0, boxWidth, 20, right.isHoveredOrFocused(), Pointing.DOWN, false); - ms.translate(0, -29, 100); - drawCenteredString(ms, font, Lang.translateDirect(NEXT_UP), 0, 0, Theme.i(Theme.Key.TEXT_DARKER)); - drawCenteredString(ms, font, nextScene.getTitle(), 0, 10, Theme.i(Theme.Key.TEXT)); - ms.popPose(); - } - - // Widgets - renderables.forEach(w -> { - if (w instanceof PonderButton button) { - button.fade() - .startWithValue(fade); - } - }); - - if (index == 0 || index == 1 && lazyIndexValue < index) - left.fade() - .startWithValue(lazyIndexValue); - if (index == scenes.size() - 1 || index == scenes.size() - 2 && lazyIndexValue > index) - right.fade() - .startWithValue(scenes.size() - lazyIndexValue - 1); - - if (finished) - right.flash(); - else { - right.dim(); - nextUp.updateChaseTarget(0); - } - - // Tags - List sceneTags = activeScene.getTags(); - boolean highlightAll = sceneTags.contains(PonderTag.Highlight.ALL); - double s = Minecraft.getInstance() - .getWindow() - .getGuiScale(); - IntStream.range(0, tagButtons.size()) - .forEach(i -> { - ms.pushPose(); - LerpedFloat chase = tagFades.get(i); - PonderButton button = tagButtons.get(i); - if (button.isMouseOver(mouseX, mouseY)) { - chase.updateChaseTarget(1); - } else - chase.updateChaseTarget(0); - - chase.tickChaser(); - - if (highlightAll) - button.flash(); - else - button.dim(); - - int x = button.x + button.getWidth() + 4; - int y = button.y - 2; - ms.translate(x, y + 5 * (1 - fade), 800); - - float fadedWidth = 200 * chase.getValue(partialTicks); - UIRenderHelper.streak(ms, 0, 0, 12, 26, (int) fadedWidth); - - RenderSystem.enableScissor((int) (x * s), 0, (int) (fadedWidth * s), (int) (height * s)); - - String tagName = this.tags.get(i) - .getTitle(); - font.draw(ms, tagName, 3, 8, Theme.i(Theme.Key.TEXT_ACCENT_SLIGHT)); - - RenderSystem.disableScissor(); - - ms.popPose(); - }); - - ms.pushPose(); - ms.translate(0, 0, 500); - int tooltipY = height - 16; - if (scan.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(IDENTIFY), scan.x + 10, tooltipY, tooltipColor); - if (index != 0 && left.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(PREVIOUS), left.x + 10, tooltipY, tooltipColor); - if (close.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(CLOSE), close.x + 10, tooltipY, tooltipColor); - if (index != scenes.size() - 1 && right.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(NEXT), right.x + 10, tooltipY, tooltipColor); - if (replay.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(REPLAY), replay.x + 10, tooltipY, tooltipColor); - if (slowMode.isHoveredOrFocused()) - drawCenteredString(ms, font, Lang.translateDirect(SLOW_TEXT), slowMode.x + 5, tooltipY, tooltipColor); - if (PonderIndex.editingModeActive() && userMode.isHoveredOrFocused()) - drawCenteredString(ms, font, "Editor View", userMode.x + 10, tooltipY, tooltipColor); - ms.popPose(); - - RenderSystem.enableDepthTest(); - } - - private void renderOverlay(PoseStack ms, int i, float partialTicks) { - if (identifyMode) - return; - ms.pushPose(); - PonderScene story = scenes.get(i); - story.renderOverlay(this, ms, skipCooling > 0 ? 0 : identifyMode ? ponderPartialTicksPaused : partialTicks); - ms.popPose(); - } - - @Override - public boolean mouseClicked(double x, double y, int button) { - if (identifyMode && hoveredBlockPos != null && PonderIndex.editingModeActive()) { - long handle = minecraft.getWindow() - .getWindow(); - if (copiedBlockPos != null && button == 1) { - clipboardHelper.setClipboard(handle, - "util.select.fromTo(" + copiedBlockPos.getX() + ", " + copiedBlockPos.getY() + ", " - + copiedBlockPos.getZ() + ", " + hoveredBlockPos.getX() + ", " + hoveredBlockPos.getY() + ", " - + hoveredBlockPos.getZ() + ")"); - copiedBlockPos = hoveredBlockPos; - return true; - } - - if (hasShiftDown()) - clipboardHelper.setClipboard(handle, "util.select.position(" + hoveredBlockPos.getX() + ", " - + hoveredBlockPos.getY() + ", " + hoveredBlockPos.getZ() + ")"); - else - clipboardHelper.setClipboard(handle, "util.grid.at(" + hoveredBlockPos.getX() + ", " - + hoveredBlockPos.getY() + ", " + hoveredBlockPos.getZ() + ")"); - copiedBlockPos = hoveredBlockPos; - return true; - } - - return super.mouseClicked(x, y, button); - } - - @Override - public boolean keyPressed(int code, int p_keyPressed_2_, int p_keyPressed_3_) { - Options settings = Minecraft.getInstance().options; - int sCode = settings.keyDown.getKey() - .getValue(); - int aCode = settings.keyLeft.getKey() - .getValue(); - int dCode = settings.keyRight.getKey() - .getValue(); - int qCode = settings.keyDrop.getKey() - .getValue(); - - if (code == sCode) { - replay(); - return true; - } - - if (code == aCode) { - scroll(false); - return true; - } - - if (code == dCode) { - scroll(true); - return true; - } - - if (code == qCode) { - identifyMode = !identifyMode; - if (!identifyMode) - scenes.get(index) - .deselect(); - return true; - } - - return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); - } - - @Override - protected String getBreadcrumbTitle() { - if (chapter != null) - return chapter.getTitle(); - - return stack.getItem() - .getDescription() - .getString(); - } - - public Font getFontRenderer() { - return font; - } - - protected boolean isMouseOver(double mouseX, double mouseY, int x, int y, int w, int h) { - boolean hovered = !(mouseX < x || mouseX > x + w); - hovered &= !(mouseY < y || mouseY > y + h); - return hovered; - } - - public static void renderSpeechBox(PoseStack ms, int x, int y, int w, int h, boolean highlighted, Pointing pointing, - boolean returnWithLocalTransform) { - if (!returnWithLocalTransform) - ms.pushPose(); - - int boxX = x; - int boxY = y; - int divotX = x; - int divotY = y; - int divotRotation = 0; - int divotSize = 8; - int distance = 1; - int divotRadius = divotSize / 2; - Couple borderColors = Theme.p(highlighted ? Theme.Key.PONDER_BUTTON_HOVER : Theme.Key.PONDER_IDLE); - Color c; - - switch (pointing) { - default: - case DOWN: - divotRotation = 0; - boxX -= w / 2; - boxY -= h + divotSize + 1 + distance; - divotX -= divotRadius; - divotY -= divotSize + distance; - c = borderColors.getSecond(); - break; - case LEFT: - divotRotation = 90; - boxX += divotSize + 1 + distance; - boxY -= h / 2; - divotX += distance; - divotY -= divotRadius; - c = Color.mixColors(borderColors, 0.5f); - break; - case RIGHT: - divotRotation = 270; - boxX -= w + divotSize + 1 + distance; - boxY -= h / 2; - divotX -= divotSize + distance; - divotY -= divotRadius; - c = Color.mixColors(borderColors, 0.5f); - break; - case UP: - divotRotation = 180; - boxX -= w / 2; - boxY += divotSize + 1 + distance; - divotX -= divotRadius; - divotY += distance; - c = borderColors.getFirst(); - break; - } - - new BoxElement().withBackground(Theme.c(Theme.Key.PONDER_BACKGROUND_FLAT)) - .gradientBorder(borderColors) - .at(boxX, boxY, 100) - .withBounds(w, h) - .render(ms); - - ms.pushPose(); - ms.translate(divotX + divotRadius, divotY + divotRadius, 10); - ms.mulPose(Vector3f.ZP.rotationDegrees(divotRotation)); - ms.translate(-divotRadius, -divotRadius, 0); - AllGuiTextures.SPEECH_TOOLTIP_BACKGROUND.render(ms, 0, 0); - AllGuiTextures.SPEECH_TOOLTIP_COLOR.render(ms, 0, 0, c); - ms.popPose(); - - if (returnWithLocalTransform) { - ms.translate(boxX, boxY, 0); - return; - } - - ms.popPose(); - - } - - public ItemStack getHoveredTooltipItem() { - return hoveredTooltipItem; - } - - public ItemStack getSubject() { - return stack; - } - - @Override - public boolean isEquivalentTo(NavigatableSimiScreen other) { - if (other instanceof PonderUI) - return stack.sameItem(((PonderUI) other).stack); - return super.isEquivalentTo(other); - } - - @Override - public void shareContextWith(NavigatableSimiScreen other) { - if (other instanceof PonderUI) { - PonderUI ponderUI = (PonderUI) other; - ponderUI.referredToByTag = referredToByTag; - } - } - - public static float getPartialTicks() { - float renderPartialTicks = Minecraft.getInstance() - .getFrameTime(); - - if (Minecraft.getInstance().screen instanceof PonderUI) { - PonderUI ui = (PonderUI) Minecraft.getInstance().screen; - if (ui.identifyMode) - return ponderPartialTicksPaused; - - return (renderPartialTicks + (ui.extendedTickLength - ui.extendedTickTimer)) / (ui.extendedTickLength + 1); - } - - return renderPartialTicks; - } - - @Override - public boolean isPauseScreen() { - return true; - } - - public void coolDownAfterSkip() { - skipCooling = 15; - } - - @Override - public void removed() { - super.removed(); - hoveredTooltipItem = ItemStack.EMPTY; - } - - public void drawRightAlignedString(Font fontRenderer, PoseStack ms, String string, int x, int y, int color) { - fontRenderer.draw(ms, string, (float) (x - fontRenderer.width(string)), (float) y, color); - } - - public boolean isComfyReadingEnabled() { - return AllConfigs.CLIENT.comfyReading.get(); - } - - public void setComfyReadingEnabled(boolean slowTextMode) { - AllConfigs.CLIENT.comfyReading.set(slowTextMode); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java b/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java index 278f51c43..de205a5f6 100644 --- a/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java +++ b/src/main/java/com/simibubi/create/foundation/render/CachedBufferer.java @@ -11,8 +11,8 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.render.SuperByteBufferCache.Compartment; -import com.simibubi.create.foundation.utility.AngleHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/foundation/render/RenderTypes.java b/src/main/java/com/simibubi/create/foundation/render/RenderTypes.java index a3cb7035f..b86325117 100644 --- a/src/main/java/com/simibubi/create/foundation/render/RenderTypes.java +++ b/src/main/java/com/simibubi/create/foundation/render/RenderTypes.java @@ -4,7 +4,6 @@ import java.io.IOException; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; -import com.simibubi.create.AllSpecialTextures; import com.simibubi.create.Create; import net.minecraft.client.renderer.RenderStateShard; @@ -23,33 +22,6 @@ public class RenderTypes extends RenderStateShard { public static final RenderStateShard.ShaderStateShard GLOWING_SHADER = new RenderStateShard.ShaderStateShard(() -> Shaders.glowingShader); - private static final RenderType OUTLINE_SOLID = - RenderType.create(createLayerName("outline_solid"), DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, false, - false, RenderType.CompositeState.builder() - .setShaderState(RENDERTYPE_ENTITY_SOLID_SHADER) - .setTextureState(new RenderStateShard.TextureStateShard(AllSpecialTextures.BLANK.getLocation(), false, false)) - .setCullState(CULL) - .setLightmapState(LIGHTMAP) - .setOverlayState(OVERLAY) - .createCompositeState(false)); - - public static RenderType getOutlineSolid() { - return OUTLINE_SOLID; - } - - public static RenderType getOutlineTranslucent(ResourceLocation texture, boolean cull) { - return RenderType.create(createLayerName("outline_translucent" + (cull ? "_cull" : "")), - DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, false, true, RenderType.CompositeState.builder() - .setShaderState(cull ? RENDERTYPE_ENTITY_TRANSLUCENT_CULL_SHADER : RENDERTYPE_ENTITY_TRANSLUCENT_SHADER) - .setTextureState(new RenderStateShard.TextureStateShard(texture, false, false)) - .setTransparencyState(TRANSLUCENT_TRANSPARENCY) - .setCullState(cull ? CULL : NO_CULL) - .setLightmapState(LIGHTMAP) - .setOverlayState(OVERLAY) - .setWriteMaskState(COLOR_WRITE) - .createCompositeState(false)); - } - public static RenderType getGlowingSolid(ResourceLocation texture) { return RenderType.create(createLayerName("glowing_solid"), DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, true, false, RenderType.CompositeState.builder() @@ -125,19 +97,6 @@ public class RenderTypes extends RenderStateShard { return ITEM_PARTIAL_TRANSLUCENT; } - private static final RenderType FLUID = RenderType.create(createLayerName("fluid"), - DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, false, true, RenderType.CompositeState.builder() - .setShaderState(RENDERTYPE_ENTITY_TRANSLUCENT_CULL_SHADER) - .setTextureState(BLOCK_SHEET_MIPPED) - .setTransparencyState(TRANSLUCENT_TRANSPARENCY) - .setLightmapState(LIGHTMAP) - .setOverlayState(OVERLAY) - .createCompositeState(true)); - - public static RenderType getFluid() { - return FLUID; - } - private static String createLayerName(String name) { return Create.ID + ":" + name; } diff --git a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java index 089029191..85897cf5a 100644 --- a/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java +++ b/src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java @@ -19,10 +19,10 @@ import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; import com.mojang.math.Vector4f; import com.simibubi.create.foundation.block.render.SpriteShiftEntry; -import com.simibubi.create.foundation.utility.Color; import it.unimi.dsi.fastutil.longs.Long2IntMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LightTexture; diff --git a/src/main/java/com/simibubi/create/foundation/render/SuperRenderTypeBuffer.java b/src/main/java/com/simibubi/create/foundation/render/SuperRenderTypeBuffer.java deleted file mode 100644 index 57716c382..000000000 --- a/src/main/java/com/simibubi/create/foundation/render/SuperRenderTypeBuffer.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.simibubi.create.foundation.render; - -import java.util.SortedMap; - -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.VertexConsumer; - -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import net.minecraft.Util; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.Sheets; -import net.minecraft.client.resources.model.ModelBakery; - -public class SuperRenderTypeBuffer implements MultiBufferSource { - - private static final SuperRenderTypeBuffer INSTANCE = new SuperRenderTypeBuffer(); - - public static SuperRenderTypeBuffer getInstance() { - return INSTANCE; - } - - private SuperRenderTypeBufferPhase earlyBuffer; - private SuperRenderTypeBufferPhase defaultBuffer; - private SuperRenderTypeBufferPhase lateBuffer; - - public SuperRenderTypeBuffer() { - earlyBuffer = new SuperRenderTypeBufferPhase(); - defaultBuffer = new SuperRenderTypeBufferPhase(); - lateBuffer = new SuperRenderTypeBufferPhase(); - } - - public VertexConsumer getEarlyBuffer(RenderType type) { - return earlyBuffer.bufferSource.getBuffer(type); - } - - @Override - public VertexConsumer getBuffer(RenderType type) { - return defaultBuffer.bufferSource.getBuffer(type); - } - - public VertexConsumer getLateBuffer(RenderType type) { - return lateBuffer.bufferSource.getBuffer(type); - } - - public void draw() { - earlyBuffer.bufferSource.endBatch(); - defaultBuffer.bufferSource.endBatch(); - lateBuffer.bufferSource.endBatch(); - } - - public void draw(RenderType type) { - earlyBuffer.bufferSource.endBatch(type); - defaultBuffer.bufferSource.endBatch(type); - lateBuffer.bufferSource.endBatch(type); - } - - private static class SuperRenderTypeBufferPhase { - - // Visible clones from RenderBuffers - private final ChunkBufferBuilderPack fixedBufferPack = new ChunkBufferBuilderPack(); - private final SortedMap fixedBuffers = Util.make(new Object2ObjectLinkedOpenHashMap<>(), map -> { - map.put(Sheets.solidBlockSheet(), fixedBufferPack.builder(RenderType.solid())); - map.put(Sheets.cutoutBlockSheet(), fixedBufferPack.builder(RenderType.cutout())); - map.put(Sheets.bannerSheet(), fixedBufferPack.builder(RenderType.cutoutMipped())); - map.put(Sheets.translucentCullBlockSheet(), fixedBufferPack.builder(RenderType.translucent())); - put(map, Sheets.shieldSheet()); - put(map, Sheets.bedSheet()); - put(map, Sheets.shulkerBoxSheet()); - put(map, Sheets.signSheet()); - put(map, Sheets.chestSheet()); - put(map, RenderType.translucentNoCrumbling()); - put(map, RenderType.armorGlint()); - put(map, RenderType.armorEntityGlint()); - put(map, RenderType.glint()); - put(map, RenderType.glintDirect()); - put(map, RenderType.glintTranslucent()); - put(map, RenderType.entityGlint()); - put(map, RenderType.entityGlintDirect()); - put(map, RenderType.waterMask()); - put(map, RenderTypes.getOutlineSolid()); - ModelBakery.DESTROY_TYPES.forEach((p_173062_) -> { - put(map, p_173062_); - }); - }); - private final MultiBufferSource.BufferSource bufferSource = MultiBufferSource.immediateWithBuffers(fixedBuffers, new BufferBuilder(256)); - - private static void put(Object2ObjectLinkedOpenHashMap map, RenderType type) { - map.put(type, new BufferBuilder(type.bufferSize())); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/render/TileEntityRenderHelper.java b/src/main/java/com/simibubi/create/foundation/render/TileEntityRenderHelper.java index 70bde02e9..b8d322de4 100644 --- a/src/main/java/com/simibubi/create/foundation/render/TileEntityRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/render/TileEntityRenderHelper.java @@ -14,8 +14,8 @@ import com.mojang.math.Matrix4f; import com.mojang.math.Vector4f; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/com/simibubi/create/foundation/sound/RepeatingSound.java b/src/main/java/com/simibubi/create/foundation/sound/RepeatingSound.java index 5356c9685..bb9815a55 100644 --- a/src/main/java/com/simibubi/create/foundation/sound/RepeatingSound.java +++ b/src/main/java/com/simibubi/create/foundation/sound/RepeatingSound.java @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.sound; -import com.simibubi.create.foundation.utility.AnimationTickHolder; - +import net.createmod.catnip.utility.AnimationTickHolder; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.sounds.SoundEvent; diff --git a/src/main/java/com/simibubi/create/foundation/sound/SoundScape.java b/src/main/java/com/simibubi/create/foundation/sound/SoundScape.java index 2c7b8efb2..7a1d07181 100644 --- a/src/main/java/com/simibubi/create/foundation/sound/SoundScape.java +++ b/src/main/java/com/simibubi/create/foundation/sound/SoundScape.java @@ -6,8 +6,8 @@ import java.util.List; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup; import com.simibubi.create.foundation.sound.SoundScapes.PitchGroup; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/foundation/sound/SoundScapes.java b/src/main/java/com/simibubi/create/foundation/sound/SoundScapes.java index d3025d397..1f0302690 100644 --- a/src/main/java/com/simibubi/create/foundation/sound/SoundScapes.java +++ b/src/main/java/com/simibubi/create/foundation/sound/SoundScapes.java @@ -12,9 +12,9 @@ import java.util.function.BiFunction; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Pair; +import net.createmod.catnip.utility.AnimationTickHolder; +import net.createmod.catnip.utility.Pair; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvents; @@ -60,7 +60,7 @@ public class SoundScapes { .repeating(AllSoundEvents.CRUSHING_2.getMainEvent(), 0.425f, .75f, 2) .repeating(AllSoundEvents.CRUSHING_3.getMainEvent(), 2f, 1.75f, 2); } - + private static SoundScape milling(float pitch, AmbienceGroup group) { return new SoundScape(pitch, group).repeating(AllSoundEvents.CRUSHING_1.getMainEvent(), 1.545f, .75f, 1) .repeating(AllSoundEvents.CRUSHING_2.getMainEvent(), 0.425f, .75f, 2); diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java index 1c91eeda8..de046fd47 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SmartTileEntity.java @@ -15,6 +15,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; import com.simibubi.create.foundation.utility.IInteractionChecker; import com.simibubi.create.foundation.utility.IPartialSafeNBT; +import net.createmod.ponder.foundation.VirtualTileEntity; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; @@ -26,7 +27,7 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; -public abstract class SmartTileEntity extends CachedRenderBBTileEntity implements IPartialSafeNBT, IInteractionChecker, ISpecialBlockEntityItemRequirement { +public abstract class SmartTileEntity extends CachedRenderBBTileEntity implements IPartialSafeNBT, IInteractionChecker, ISpecialBlockEntityItemRequirement, VirtualTileEntity { private final Map, TileEntityBehaviour> behaviours = new HashMap<>(); private boolean initialized = false; @@ -195,10 +196,12 @@ public abstract class SmartTileEntity extends CachedRenderBBTileEntity implement this.lazyTickCounter = slowTickRate; } + @Override public void markVirtual() { virtualMode = true; } + @Override public boolean isVirtual() { return virtualMode; } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/CenteredSideValueBoxTransform.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/CenteredSideValueBoxTransform.java index 634cd4204..f042b42e3 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/CenteredSideValueBoxTransform.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/CenteredSideValueBoxTransform.java @@ -2,8 +2,7 @@ package com.simibubi.create.foundation.tileEntity.behaviour; import java.util.function.BiPredicate; -import com.simibubi.create.foundation.utility.VecHelper; - +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; @@ -15,7 +14,7 @@ public class CenteredSideValueBoxTransform extends ValueBoxTransform.Sided { public CenteredSideValueBoxTransform() { this((b, d) -> true); } - + public CenteredSideValueBoxTransform(BiPredicate allowedDirections) { this.allowedDirections = allowedDirections; } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java index e50ad52c2..6fec54f08 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBox.java @@ -1,15 +1,17 @@ package com.simibubi.create.foundation.tileEntity.behaviour; +import javax.annotation.Nonnull; + import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.foundation.gui.AllIcons; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.outliner.ChasingAABBOutline; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.render.SuperRenderTypeBuffer; +import net.createmod.catnip.utility.outliner.ChasingAABBOutline; +import net.createmod.catnip.utility.theme.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.LightTexture; @@ -76,7 +78,7 @@ public class ValueBox extends ChasingAABBOutline { } @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { + public void render(@Nonnull PoseStack ms, @Nonnull SuperRenderTypeBuffer buffer, float pt) { boolean hasTransform = transform != null; if (transform instanceof Sided && params.getHighlightedFace() != null) ((Sided) transform).fromSide(params.getHighlightedFace()); @@ -87,9 +89,6 @@ public class ValueBox extends ChasingAABBOutline { ms.translate(pos.getX(), pos.getY(), pos.getZ()); if (hasTransform) transform.transform(blockState, ms); - transformNormals = ms.last() - .normal() - .copy(); params.colored(isPassive ? passiveColor : highlightColor); super.render(ms, buffer, pt); @@ -198,7 +197,7 @@ public class ValueBox extends ChasingAABBOutline { public IconValueBox(Component label, INamedIconOptions iconValue, AABB bb, BlockPos pos) { super(label, bb, pos); - subLabel(Lang.translateDirect(iconValue.getTranslationKey())); + subLabel(CreateLang.translateDirect(iconValue.getTranslationKey())); icon = iconValue.getIcon(); } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxTransform.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxTransform.java index 9158b824d..bd63ddc22 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxTransform.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxTransform.java @@ -6,9 +6,9 @@ import org.apache.commons.lang3.tuple.Pair; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.world.level.block.state.BlockState; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/belt/TransportedItemStackHandlerBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/belt/TransportedItemStackHandlerBehaviour.java index 869e52ad0..9e745a472 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/belt/TransportedItemStackHandlerBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/belt/TransportedItemStackHandlerBehaviour.java @@ -10,8 +10,8 @@ import com.simibubi.create.content.contraptions.relays.belt.transport.Transporte import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.Vec3; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionHandler.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionHandler.java index 4ec901624..96cb61e8a 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionHandler.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionHandler.java @@ -5,9 +5,9 @@ import java.util.List; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.utility.BlockHelper; -import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.RaycastHelper; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionRenderer.java index d801e692d..1a841d45a 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/edgeInteraction/EdgeInteractionRenderer.java @@ -3,11 +3,11 @@ package com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction; import java.util.List; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -84,7 +84,7 @@ public class EdgeInteractionRenderer { .withColors(0x7A6A2C, 0xB79D64) .passive(!hit); - CreateClient.OUTLINER.showValueBox("edge", box) + CatnipClient.OUTLINER.showOutline("edge", box) .lineWidth(1 / 64f) .withFaceTexture(hit ? AllSpecialTextures.THIN_CHECKERED : null) .highlightFace(face); diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java index 332a688f8..8fc291364 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringBehaviour.java @@ -10,8 +10,8 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.VecHelper; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.item.ItemEntity; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java index 88ecece52..d259e406d 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringHandler.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.RaycastHelper; import net.minecraft.ChatFormatting; @@ -73,7 +73,7 @@ public class FilteringHandler { return; if (AllBlocks.MECHANICAL_ARM.isIn(toApply)) return; - + if (event.getSide() != LogicalSide.CLIENT) { if (!player.isCreative()) { if (toApply.getItem() instanceof FilterItem) @@ -97,7 +97,7 @@ public class FilteringHandler { Component formattedText = world.getBlockState(pos) .getBlock() .getName(); - player.displayClientMessage(Lang.translateDirect("logistics.filter." + feedback, formattedText) + player.displayClientMessage(CreateLang.translateDirect("logistics.filter." + feedback, formattedText) .withStyle(ChatFormatting.WHITE), true); } @@ -132,14 +132,14 @@ public class FilteringHandler { ((Sided) filtering.slotPositioning).fromSide(result.getDirection()); if (!filtering.testHit(objectMouseOver.getLocation())) return false; - + ItemStack filterItem = filtering.getFilter(); filtering.ticksUntilScrollPacket = 10; int maxAmount = (filterItem.getItem() instanceof FilterItem) ? 64 : filterItem.getMaxStackSize(); int prev = filtering.scrollableValue; filtering.scrollableValue = (int) Mth.clamp(filtering.scrollableValue + delta * (AllKeys.ctrlDown() ? 16 : 1), 0, maxAmount); - + if (prev != filtering.scrollableValue) { float pitch = (filtering.scrollableValue) / (float) (maxAmount); pitch = Mth.lerp(pitch, 1.5f, 2f); diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java index 9afef6ce7..73c8a831b 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/FilteringRenderer.java @@ -2,7 +2,6 @@ package com.simibubi.create.foundation.tileEntity.behaviour.filtering; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.logistics.item.filter.FilterItem; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; @@ -12,11 +11,12 @@ import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox.ItemValueBox import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.Pair; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.MultiBufferSource; @@ -67,7 +67,7 @@ public class FilteringRenderer { boolean showCount = behaviour.isCountVisible(); boolean fluids = behaviour.fluidFilter; Component label = isFilterSlotted ? TextComponent.EMPTY - : Lang.translateDirect(behaviour.recipeFilter ? "logistics.recipe_filter" + : CreateLang.translateDirect(behaviour.recipeFilter ? "logistics.recipe_filter" : fluids ? "logistics.fluid_filter" : "logistics.filter"); boolean hit = behaviour.slotPositioning.testHit(state, target.getLocation() .subtract(Vec3.atLowerCornerOf(pos))); @@ -80,10 +80,10 @@ public class FilteringRenderer { box.offsetLabel(behaviour.textShift) .withColors(fluids ? 0x407088 : 0x7A6A2C, fluids ? 0x70adb5 : 0xB79D64) - .scrollTooltip(showCount && !isFilterSlotted ? new TextComponent("[").append(Lang.translateDirect("action.scroll")).append("]") : TextComponent.EMPTY) + .scrollTooltip(showCount && !isFilterSlotted ? new TextComponent("[").append(CreateLang.translateDirect("action.scroll")).append("]") : TextComponent.EMPTY) .passive(!hit); - CreateClient.OUTLINER.showValueBox(Pair.of("filter", pos), box.transform(behaviour.slotPositioning)) + CatnipClient.OUTLINER.showOutline(Pair.of("filter", pos), box.transform(behaviour.slotPositioning)) .lineWidth(1 / 64f) .withFaceTexture(hit ? AllSpecialTextures.THIN_CHECKERED : null) .highlightFace(result.getDirection()); diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/SidedFilteringBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/SidedFilteringBehaviour.java index 87753bc80..f2c2db89e 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/SidedFilteringBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/filtering/SidedFilteringBehaviour.java @@ -11,9 +11,9 @@ import com.simibubi.create.content.schematics.ItemRequirement; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.NBTHelper; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.NBTHelper; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java index 565518ec4..648f65d82 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java @@ -9,9 +9,9 @@ import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.utility.NBTHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.NBTHelper; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/CapManipulationBehaviourBase.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/CapManipulationBehaviourBase.java index 852938793..fd8a2860f 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/CapManipulationBehaviourBase.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/CapManipulationBehaviourBase.java @@ -5,8 +5,8 @@ import javax.annotation.Nullable; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.utility.BlockFace; +import net.createmod.catnip.utility.BlockFace; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java index 320e2a805..6f0ed8c62 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java @@ -14,8 +14,8 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java index b37edff8d..10e27ad5e 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkRenderer.java @@ -3,17 +3,17 @@ package com.simibubi.create.foundation.tileEntity.behaviour.linked; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.datafixers.util.Pair; import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxRenderer; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; +import net.createmod.catnip.utility.Iterate; +import net.createmod.catnip.utility.VecHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.MultiBufferSource; @@ -42,8 +42,8 @@ public class LinkRenderer { if (behaviour == null) return; - Component freq1 = Lang.translateDirect("logistics.firstFrequency"); - Component freq2 = Lang.translateDirect("logistics.secondFrequency"); + Component freq1 = CreateLang.translateDirect("logistics.firstFrequency"); + Component freq2 = CreateLang.translateDirect("logistics.secondFrequency"); for (boolean first : Iterate.trueAndFalse) { AABB bb = new AABB(Vec3.ZERO, Vec3.ZERO).inflate(.25f); @@ -54,7 +54,7 @@ public class LinkRenderer { ValueBox box = new ValueBox(label, bb, pos).withColors(0x601F18, 0xB73C2D) .offsetLabel(behaviour.textShift) .passive(!hit); - CreateClient.OUTLINER.showValueBox(Pair.of(Boolean.valueOf(first), pos), box.transform(transform)) + CatnipClient.OUTLINER.showOutline(Pair.of(Boolean.valueOf(first), pos), box.transform(transform)) .lineWidth(1 / 64f) .withFaceTexture(hit ? AllSpecialTextures.THIN_CHECKERED : null) .highlightFace(result.getDirection()); @@ -66,7 +66,7 @@ public class LinkRenderer { if (te == null || te.isRemoved()) return; - + Entity cameraEntity = Minecraft.getInstance().cameraEntity; float max = AllConfigs.CLIENT.filterItemRenderDistance.getF(); if (!te.isVirtual() && cameraEntity != null && cameraEntity.position() diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueHandler.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueHandler.java index f3b4d0824..f6b5c409b 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueHandler.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueHandler.java @@ -7,8 +7,8 @@ import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform.Sided; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour.StepContext; -import com.simibubi.create.foundation.utility.animation.PhysicalFloat; +import net.createmod.catnip.utility.animation.PhysicalFloat; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueRenderer.java index ec7545742..28ff07318 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/scrollvalue/ScrollValueRenderer.java @@ -2,14 +2,14 @@ package com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue; import com.simibubi.create.AllItems; import com.simibubi.create.AllKeys; -import com.simibubi.create.CreateClient; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox.IconValueBox; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox.TextValueBox; -import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.CreateLang; +import net.createmod.catnip.CatnipClient; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; @@ -70,12 +70,12 @@ public class ScrollValueRenderer { box.subLabel(new TextComponent("(").append(behaviour.unit.apply(behaviour.scrollableValue)).append(")")); } - box.scrollTooltip(new TextComponent("[").append(Lang.translateDirect("action.scroll")).append("]")); + box.scrollTooltip(new TextComponent("[").append(CreateLang.translateDirect("action.scroll")).append("]")); box.offsetLabel(behaviour.textShift.add(20, -10, 0)) .withColors(0x5A5D5A, 0xB5B7B6) .passive(!highlight); - CreateClient.OUTLINER.showValueBox(pos, box.transform(behaviour.slotPositioning)) + CatnipClient.OUTLINER.showOutline(pos, box.transform(behaviour.slotPositioning)) .lineWidth(1 / 64f) .highlightFace(face); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/AngleHelper.java b/src/main/java/com/simibubi/create/foundation/utility/AngleHelper.java deleted file mode 100644 index 4c3715fb6..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/AngleHelper.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.util.Mth; - -public class AngleHelper { - - public static float horizontalAngle(Direction facing) { - if (facing.getAxis().isVertical()) - return 0; - float angle = facing.toYRot(); - if (facing.getAxis() == Axis.X) - angle = -angle; - return angle; - } - - public static float verticalAngle(Direction facing) { - return facing == Direction.UP ? -90 : facing == Direction.DOWN ? 90 : 0; - } - - public static float rad(double angle) { - if (angle == 0) - return 0; - return (float) (angle / 180 * Math.PI); - } - - public static float deg(double angle) { - if (angle == 0) - return 0; - return (float) (angle * 180 / Math.PI); - } - - public static float angleLerp(double pct, double current, double target) { - return (float) (current + getShortestAngleDiff(current, target) * pct); - } - - public static float getShortestAngleDiff(double current, double target) { - current = current % 360; - target = target % 360; - return (float) (((((target - current) % 360) + 540) % 360) - 180); - } - - public static float getShortestAngleDiff(double current, double target, float hint) { - float diff = getShortestAngleDiff(current, target); - if (Mth.equal(Math.abs(diff), 180) && Math.signum(diff) != Math.signum(hint)) { - return diff + 360*Math.signum(hint); - } - return diff; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/AnimationTickHolder.java b/src/main/java/com/simibubi/create/foundation/utility/AnimationTickHolder.java deleted file mode 100644 index 091326516..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/AnimationTickHolder.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import com.simibubi.create.foundation.ponder.PonderWorld; -import com.simibubi.create.foundation.ponder.ui.PonderUI; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedClientWorld; - -import net.minecraft.client.Minecraft; -import net.minecraft.world.level.LevelAccessor; - -public class AnimationTickHolder { - - private static int ticks; - private static int pausedTicks; - - public static void reset() { - ticks = 0; - pausedTicks = 0; - } - - public static void tick() { - if (!Minecraft.getInstance() - .isPaused()) { - ticks = (ticks + 1) % 1_728_000; // wrap around every 24 hours so we maintain enough floating point precision - } else { - pausedTicks = (pausedTicks + 1) % 1_728_000; - } - } - - public static int getTicks() { - return getTicks(false); - } - - public static int getTicks(boolean includePaused) { - return includePaused ? ticks + pausedTicks : ticks; - } - - public static float getRenderTime() { - return getTicks() + getPartialTicks(); - } - - public static float getPartialTicks() { - Minecraft mc = Minecraft.getInstance(); - return (mc.isPaused() ? mc.pausePartialTick : mc.getFrameTime()); - } - - public static int getTicks(LevelAccessor world) { - if (world instanceof WrappedClientWorld) - return getTicks(((WrappedClientWorld) world).getWrappedWorld()); - return world instanceof PonderWorld ? PonderUI.ponderTicks : getTicks(); - } - - public static float getRenderTime(LevelAccessor world) { - return getTicks(world) + getPartialTicks(world); - } - - public static float getPartialTicks(LevelAccessor world) { - return world instanceof PonderWorld ? PonderUI.getPartialTicks() : getPartialTicks(); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/BBHelper.java b/src/main/java/com/simibubi/create/foundation/utility/BBHelper.java deleted file mode 100644 index f2b9af890..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/BBHelper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.levelgen.structure.BoundingBox; - -public class BBHelper { - - public static BoundingBox encapsulate(BoundingBox bb, BlockPos pos) { - return new BoundingBox(Math.min(bb.minX(), pos.getX()), Math.min(bb.minY(), pos.getY()), - Math.min(bb.minZ(), pos.getZ()), Math.max(bb.maxX(), pos.getX()), Math.max(bb.maxY(), pos.getY()), - Math.max(bb.maxZ(), pos.getZ())); - } - - public static BoundingBox encapsulate(BoundingBox bb, BoundingBox bb2) { - return new BoundingBox(Math.min(bb.minX(), bb2.minX()), Math.min(bb.minY(), bb2.minY()), - Math.min(bb.minZ(), bb2.minZ()), Math.max(bb.maxX(), bb2.maxX()), Math.max(bb.maxY(), bb2.maxY()), - Math.max(bb.maxZ(), bb2.maxZ())); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/BlockFace.java b/src/main/java/com/simibubi/create/foundation/utility/BlockFace.java deleted file mode 100644 index 97176b224..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/BlockFace.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; - -public class BlockFace extends Pair { - - public BlockFace(BlockPos first, Direction second) { - super(first, second); - } - - public boolean isEquivalent(BlockFace other) { - if (equals(other)) - return true; - return getConnectedPos().equals(other.getPos()) && getPos().equals(other.getConnectedPos()); - } - - public BlockPos getPos() { - return getFirst(); - } - - public Direction getFace() { - return getSecond(); - } - - public Direction getOppositeFace() { - return getSecond().getOpposite(); - } - - public BlockFace getOpposite() { - return new BlockFace(getConnectedPos(), getOppositeFace()); - } - - public BlockPos getConnectedPos() { - return getPos().relative(getFace()); - } - - public CompoundTag serializeNBT() { - CompoundTag compoundNBT = new CompoundTag(); - compoundNBT.put("Pos", NbtUtils.writeBlockPos(getPos())); - NBTHelper.writeEnum(compoundNBT, "Face", getFace()); - return compoundNBT; - } - - public static BlockFace fromNBT(CompoundTag compound) { - return new BlockFace(NbtUtils.readBlockPos(compound.getCompound("Pos")), - NBTHelper.readEnum(compound, "Face", Direction.class)); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/CameraAngleAnimationService.java b/src/main/java/com/simibubi/create/foundation/utility/CameraAngleAnimationService.java index 69f84cbba..de84d21b9 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/CameraAngleAnimationService.java +++ b/src/main/java/com/simibubi/create/foundation/utility/CameraAngleAnimationService.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.utility; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; - +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.math.AngleHelper; import net.minecraft.client.Minecraft; import net.minecraft.util.Mth; diff --git a/src/main/java/com/simibubi/create/foundation/utility/Color.java b/src/main/java/com/simibubi/create/foundation/utility/Color.java deleted file mode 100644 index a1f1bb4f5..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/Color.java +++ /dev/null @@ -1,312 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.function.UnaryOperator; - -import javax.annotation.Nonnull; - -import com.google.common.hash.Hashing; -import com.mojang.math.Vector3f; - -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec3; - -public class Color { - public final static Color TRANSPARENT_BLACK = new Color(0, 0, 0, 0).setImmutable(); - public final static Color BLACK = new Color(0, 0, 0).setImmutable(); - public final static Color WHITE = new Color(255, 255, 255).setImmutable(); - public final static Color RED = new Color(255, 0, 0).setImmutable(); - public final static Color GREEN = new Color(0, 255, 0).setImmutable(); - public final static Color SPRING_GREEN = new Color(0, 255, 187).setImmutable(); - - protected boolean mutable = true; - protected int value; - - public Color(int r, int g, int b) { - this(r, g, b, 0xff); - } - - public Color(int r, int g, int b, int a) { - value = ((a & 0xff) << 24) | - ((r & 0xff) << 16) | - ((g & 0xff) << 8) | - ((b & 0xff) << 0); - } - - public Color(float r, float g, float b, float a) { - this( - (int) (0.5 + 0xff * Mth.clamp(r, 0, 1)), - (int) (0.5 + 0xff * Mth.clamp(g, 0, 1)), - (int) (0.5 + 0xff * Mth.clamp(b, 0, 1)), - (int) (0.5 + 0xff * Mth.clamp(a, 0, 1)) - ); - } - - public Color(int rgba) { - value = rgba; - } - - public Color(int rgb, boolean hasAlpha) { - if (hasAlpha) { - value = rgb; - } else { - value = rgb | 0xff_000000; - } - } - - public Color copy() { - return copy(true); - } - - public Color copy(boolean mutable) { - if (mutable) - return new Color(value); - else - return new Color(value).setImmutable(); - } - - /** - * Mark this color as immutable. Attempting to mutate this color in the future - * will instead cause a copy to be created that can me modified. - */ - public Color setImmutable() { - this.mutable = false; - return this; - } - - /** - * @return the red component in the range 0-255. - * @see #getRGB - */ - public int getRed() { - return (getRGB() >> 16) & 0xff; - } - - /** - * @return the green component in the range 0-255. - * @see #getRGB - */ - public int getGreen() { - return (getRGB() >> 8) & 0xff; - } - - /** - * @return the blue component in the range 0-255. - * @see #getRGB - */ - public int getBlue() { - return (getRGB() >> 0) & 0xff; - } - - /** - * @return the alpha component in the range 0-255. - * @see #getRGB - */ - public int getAlpha() { - return (getRGB() >> 24) & 0xff; - } - - /** - * @return the red component in the range 0-1f. - */ - public float getRedAsFloat() { - return getRed() / 255f; - } - - /** - * @return the green component in the range 0-1f. - */ - public float getGreenAsFloat() { - return getGreen() / 255f; - } - - /** - * @return the blue component in the range 0-1f. - */ - public float getBlueAsFloat() { - return getBlue() / 255f; - } - - /** - * @return the alpha component in the range 0-1f. - */ - public float getAlphaAsFloat() { - return getAlpha() / 255f; - } - - /** - * Returns the RGB value representing this color - * (Bits 24-31 are alpha, 16-23 are red, 8-15 are green, 0-7 are blue). - * @return the RGB value of the color - */ - public int getRGB() { - return value; - } - - public Vec3 asVector() { - return new Vec3(getRedAsFloat(), getGreenAsFloat(), getBlueAsFloat()); - } - - public Vector3f asVectorF() { - return new Vector3f(getRedAsFloat(), getGreenAsFloat(), getBlueAsFloat()); - } - - public Color setRed(int r) { - return ensureMutable().setRedUnchecked(r); - } - - public Color setGreen(int g) { - return ensureMutable().setGreenUnchecked(g); - } - - public Color setBlue(int b) { - return ensureMutable().setBlueUnchecked(b); - } - - public Color setAlpha(int a) { - return ensureMutable().setAlphaUnchecked(a); - } - - public Color setRed(float r) { - return ensureMutable().setRedUnchecked((int) (0xff * Mth.clamp(r, 0, 1))); - } - - public Color setGreen(float g) { - return ensureMutable().setGreenUnchecked((int) (0xff * Mth.clamp(g, 0, 1))); - } - - public Color setBlue(float b) { - return ensureMutable().setBlueUnchecked((int) (0xff * Mth.clamp(b, 0, 1))); - } - - public Color setAlpha(float a) { - return ensureMutable().setAlphaUnchecked((int) (0xff * Mth.clamp(a, 0, 1))); - } - - public Color scaleAlpha(float factor) { - return ensureMutable().setAlphaUnchecked((int) (getAlpha() * Mth.clamp(factor, 0, 1))); - } - - public Color mixWith(Color other, float weight) { - return ensureMutable() - .setRedUnchecked((int) (getRed() + (other.getRed() - getRed()) * weight)) - .setGreenUnchecked((int) (getGreen() + (other.getGreen() - getGreen()) * weight)) - .setBlueUnchecked((int) (getBlue() + (other.getBlue() - getBlue()) * weight)) - .setAlphaUnchecked((int) (getAlpha() + (other.getAlpha() - getAlpha()) * weight)); - } - - public Color darker() { - int a = getAlpha(); - return ensureMutable().mixWith(BLACK, .25f).setAlphaUnchecked(a); - } - - public Color brighter() { - int a = getAlpha(); - return ensureMutable().mixWith(WHITE, .25f).setAlphaUnchecked(a); - } - - public Color setValue(int value) { - return ensureMutable().setValueUnchecked(value); - } - - public Color modifyValue(UnaryOperator function) { - int newValue = function.apply(value); - if (newValue == value) - return this; - - return ensureMutable().setValueUnchecked(newValue); - } - - // ********* // - - protected Color ensureMutable() { - if (this.mutable) - return this; - - return new Color(this.value); - } - - protected Color setRedUnchecked(int r) { - this.value = (this.value & 0xff_00ffff) | ((r & 0xff) << 16); - return this; - } - - protected Color setGreenUnchecked(int g) { - this.value = (this.value & 0xff_ff00ff) | ((g & 0xff) << 8); - return this; - } - - protected Color setBlueUnchecked(int b) { - this.value = (this.value & 0xff_ffff00) | ((b & 0xff) << 0); - return this; - } - - protected Color setAlphaUnchecked(int a) { - this.value = (this.value & 0x00_ffffff) | ((a & 0xff) << 24); - return this; - } - - protected Color setValueUnchecked(int value) { - this.value = value; - return this; - } - - // ********* // - - public static Color mixColors(@Nonnull Color c1, @Nonnull Color c2, float w) { - return new Color( - (int) (c1.getRed() + (c2.getRed() - c1.getRed()) * w), - (int) (c1.getGreen() + (c2.getGreen() - c1.getGreen()) * w), - (int) (c1.getBlue() + (c2.getBlue() - c1.getBlue()) * w), - (int) (c1.getAlpha() + (c2.getAlpha() - c1.getAlpha()) * w) - ); - } - - public static Color mixColors(@Nonnull Couple colors, float w) { - return mixColors(colors.getFirst(), colors.getSecond(), w); - } - - public static int mixColors(int color1, int color2, float w) { - int a1 = (color1 >> 24); - int r1 = (color1 >> 16) & 0xFF; - int g1 = (color1 >> 8) & 0xFF; - int b1 = color1 & 0xFF; - int a2 = (color2 >> 24); - int r2 = (color2 >> 16) & 0xFF; - int g2 = (color2 >> 8) & 0xFF; - int b2 = color2 & 0xFF; - - return - ((int) (a1 + (a2 - a1) * w) << 24) + - ((int) (r1 + (r2 - r1) * w) << 16) + - ((int) (g1 + (g2 - g1) * w) << 8) + - ((int) (b1 + (b2 - b1) * w) << 0); - } - - public static Color rainbowColor(int timeStep) { - int localTimeStep = Math.abs(timeStep) % 1536; - int timeStepInPhase = localTimeStep % 256; - int phaseBlue = localTimeStep / 256; - int red = colorInPhase(phaseBlue + 4, timeStepInPhase); - int green = colorInPhase(phaseBlue + 2, timeStepInPhase); - int blue = colorInPhase(phaseBlue, timeStepInPhase); - return new Color(red, green, blue); - } - - private static int colorInPhase(int phase, int progress) { - phase = phase % 6; - if (phase <= 1) - return 0; - if (phase == 2) - return progress; - if (phase <= 4) - return 255; - else - return 255 - progress; - } - - public static Color generateFromLong(long l) { - return rainbowColor(Hashing.crc32().hashLong(l).asInt()) - .mixWith(WHITE, 0.5f); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/Couple.java b/src/main/java/com/simibubi/create/foundation/utility/Couple.java deleted file mode 100644 index 608ab696c..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/Couple.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Iterator; -import java.util.List; -import java.util.function.BiConsumer; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.stream.Stream; - -import com.google.common.collect.ImmutableList; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; - -public class Couple extends Pair implements Iterable { - - private static final Couple TRUE_AND_FALSE = Couple.create(true, false); - - protected Couple(T first, T second) { - super(first, second); - } - - public static Couple create(T first, T second) { - return new Couple<>(first, second); - } - - public static Couple create(Supplier factory) { - return new Couple<>(factory.get(), factory.get()); - } - - public static Couple createWithContext(Function factory) { - return new Couple<>(factory.apply(true), factory.apply(false)); - } - - public T get(boolean first) { - return first ? getFirst() : getSecond(); - } - - public void set(boolean first, T value) { - if (first) - setFirst(value); - else - setSecond(value); - } - - @Override - public Couple copy() { - return create(first, second); - } - - public Couple map(Function function) { - return Couple.create(function.apply(first), function.apply(second)); - } - - public Couple mapWithContext(BiFunction function) { - return Couple.create(function.apply(first, true), function.apply(second, false)); - } - - public Couple mapWithParams(BiFunction function, Couple values) { - return Couple.create(function.apply(first, values.first), function.apply(second, values.second)); - } - - public Couple mapNotNullWithParam(BiFunction function, R value) { - return Couple.create(first != null ? function.apply(first, value) : null, - second != null ? function.apply(second, value) : null); - } - - public boolean both(Predicate test) { - return test.test(getFirst()) && test.test(getSecond()); - } - - public boolean either(Predicate test) { - return test.test(getFirst()) || test.test(getSecond()); - } - - public void replace(Function function) { - setFirst(function.apply(getFirst())); - setSecond(function.apply(getSecond())); - } - - public void replaceWithContext(BiFunction function) { - replaceWithParams(function, TRUE_AND_FALSE); - } - - public void replaceWithParams(BiFunction function, Couple values) { - setFirst(function.apply(getFirst(), values.getFirst())); - setSecond(function.apply(getSecond(), values.getSecond())); - } - - @Override - public void forEach(Consumer consumer) { - consumer.accept(getFirst()); - consumer.accept(getSecond()); - } - - public void forEachWithContext(BiConsumer consumer) { - forEachWithParams(consumer, TRUE_AND_FALSE); - } - - public void forEachWithParams(BiConsumer function, Couple values) { - function.accept(getFirst(), values.getFirst()); - function.accept(getSecond(), values.getSecond()); - } - - public Couple swap() { - return Couple.create(second, first); - } - - public ListTag serializeEach(Function serializer) { - return NBTHelper.writeCompoundList(ImmutableList.of(first, second), serializer); - } - - public static Couple deserializeEach(ListTag list, Function deserializer) { - List readCompoundList = NBTHelper.readCompoundList(list, deserializer); - return new Couple<>(readCompoundList.get(0), readCompoundList.get(1)); - } - - @Override - public Iterator iterator() { - return new Couplerator<>(this); - } - - public Stream stream() { - return Stream.of(first, second); - } - - private static class Couplerator implements Iterator { - - int state; - private final Couple couple; - - public Couplerator(Couple couple) { - this.couple = couple; - state = 0; - } - - @Override - public boolean hasNext() { - return state != 2; - } - - @Override - public T next() { - state++; - if (state == 1) - return couple.first; - if (state == 2) - return couple.second; - return null; - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/Lang.java b/src/main/java/com/simibubi/create/foundation/utility/CreateLang.java similarity index 60% rename from src/main/java/com/simibubi/create/foundation/utility/Lang.java rename to src/main/java/com/simibubi/create/foundation/utility/CreateLang.java index 3e062b8bb..08c0cb732 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/Lang.java +++ b/src/main/java/com/simibubi/create/foundation/utility/CreateLang.java @@ -2,37 +2,26 @@ package com.simibubi.create.foundation.utility; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.simibubi.create.Create; +import net.createmod.catnip.utility.lang.Lang; +import net.createmod.catnip.utility.lang.LangBuilder; +import net.createmod.catnip.utility.lang.LangNumberFormat; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.fluids.FluidStack; -public class Lang { +public class CreateLang extends Lang { /** - * legacy-ish. Use Lang.translate and other builder methods where possible - * - * @param key - * @param args - * @return + * legacy-ish. Use CreateLang.translate and other builder methods where possible + * */ public static TranslatableComponent translateDirect(String key, Object... args) { - return new TranslatableComponent(Create.ID + "." + key, resolveBuilders(args)); - } - - public static String asId(String name) { - return name.toLowerCase(Locale.ROOT); - } - - public static String nonPluralId(String name) { - String asId = asId(name); - return asId.endsWith("s") ? asId.substring(0, asId.length() - 1) : asId; + return new TranslatableComponent(Create.ID + "." + key, LangBuilder.resolveBuilders(args)); } public static List translatedOptions(String prefix, String... keys) { @@ -42,35 +31,23 @@ public class Lang { return result; } - public static Component empty() { - return TextComponent.EMPTY; - } - - // - public static LangBuilder builder() { return new LangBuilder(Create.ID); } - public static LangBuilder builder(String namespace) { - return new LangBuilder(namespace); - } - - // - public static LangBuilder blockName(BlockState state) { return builder().add(state.getBlock() - .getName()); + .getName()); } public static LangBuilder itemName(ItemStack stack) { return builder().add(stack.getHoverName() - .copy()); + .copy()); } public static LangBuilder fluidName(FluidStack stack) { return builder().add(stack.getDisplayName() - .copy()); + .copy()); } public static LangBuilder number(double d) { @@ -85,13 +62,4 @@ public class Lang { return builder().text(text); } - // - - public static Object[] resolveBuilders(Object[] args) { - for (int i = 0; i < args.length; i++) - if (args[i]instanceof LangBuilder cb) - args[i] = cb.component(); - return args; - } - } diff --git a/src/main/java/com/simibubi/create/foundation/utility/DirectionHelper.java b/src/main/java/com/simibubi/create/foundation/utility/DirectionHelper.java deleted file mode 100644 index a5ea227fa..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/DirectionHelper.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import static net.minecraft.core.Direction.DOWN; -import static net.minecraft.core.Direction.EAST; -import static net.minecraft.core.Direction.NORTH; -import static net.minecraft.core.Direction.SOUTH; -import static net.minecraft.core.Direction.UP; -import static net.minecraft.core.Direction.WEST; - -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; - -/** - * A bunch of methods that got stripped out of Direction in 1.15 - * - * @author Mojang - */ -public class DirectionHelper { - - public static Direction rotateAround(Direction dir, Direction.Axis axis) { - switch (axis) { - case X: - if (dir != WEST && dir != EAST) { - return rotateX(dir); - } - - return dir; - case Y: - if (dir != UP && dir != DOWN) { - return dir.getClockWise(); - } - - return dir; - case Z: - if (dir != NORTH && dir != SOUTH) { - return rotateZ(dir); - } - - return dir; - default: - throw new IllegalStateException("Unable to get CW facing for axis " + axis); - } - } - - public static Direction rotateX(Direction dir) { - switch (dir) { - case NORTH: - return DOWN; - case EAST: - case WEST: - default: - throw new IllegalStateException("Unable to get X-rotated facing of " + dir); - case SOUTH: - return UP; - case UP: - return NORTH; - case DOWN: - return SOUTH; - } - } - - public static Direction rotateZ(Direction dir) { - switch (dir) { - case EAST: - return DOWN; - case SOUTH: - default: - throw new IllegalStateException("Unable to get Z-rotated facing of " + dir); - case WEST: - return UP; - case UP: - return EAST; - case DOWN: - return WEST; - } - } - - public static Direction getPositivePerpendicular(Axis horizontalAxis) { - return horizontalAxis == Axis.X ? SOUTH : EAST; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/DyeHelper.java b/src/main/java/com/simibubi/create/foundation/utility/DyeHelper.java index b9d690b98..772f0aaf7 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/DyeHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/DyeHelper.java @@ -4,6 +4,7 @@ import java.util.Map; import com.google.common.collect.ImmutableMap; +import net.createmod.catnip.utility.Couple; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Blocks; @@ -49,28 +50,28 @@ public class DyeHelper { } public static final Map> DYE_TABLE = new ImmutableMap.Builder>() - + // DyeColor, ( Front RGB, Back RGB ) .put(DyeColor.BLACK, Couple.create(0x45403B, 0x21201F)) .put(DyeColor.RED, Couple.create(0xB13937, 0x632737)) .put(DyeColor.GREEN, Couple.create(0x208A46, 0x1D6045)) .put(DyeColor.BROWN, Couple.create(0xAC855C, 0x68533E)) - + .put(DyeColor.BLUE, Couple.create(0x5391E1, 0x504B90)) .put(DyeColor.GRAY, Couple.create(0x5D666F, 0x313538)) .put(DyeColor.LIGHT_GRAY, Couple.create(0x95969B, 0x707070)) .put(DyeColor.PURPLE, Couple.create(0x9F54AE, 0x63366C)) - + .put(DyeColor.CYAN, Couple.create(0x3EABB4, 0x3C7872)) .put(DyeColor.PINK, Couple.create(0xD5A8CB, 0xB86B95)) .put(DyeColor.LIME, Couple.create(0xA3DF55, 0x4FB16F)) .put(DyeColor.YELLOW, Couple.create(0xE6D756, 0xE9AC29)) - + .put(DyeColor.LIGHT_BLUE, Couple.create(0x69CED2, 0x508AA5)) .put(DyeColor.ORANGE, Couple.create(0xEE9246, 0xD94927)) .put(DyeColor.MAGENTA, Couple.create(0xF062B0, 0xC04488)) .put(DyeColor.WHITE, Couple.create(0xEDEAE5, 0xBBB6B0)) - + .build(); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java index a4b3c8b78..4e82204af 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java @@ -15,6 +15,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.simibubi.create.Create; +import net.createmod.catnip.utility.lang.Lang; import net.minecraft.nbt.CompoundTag; public class FilesHelper { diff --git a/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java b/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java index 5e9ac98dc..66ac19a09 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java @@ -1,5 +1,6 @@ package com.simibubi.create.foundation.utility; +import net.createmod.catnip.utility.Couple; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextComponent; @@ -14,13 +15,13 @@ public class FluidFormatter { if (shorten && amount >= 1000) { return Couple.create( new TextComponent(String.format("%.1f" , amount / 1000d)), - Lang.translateDirect("generic.unit.buckets") + CreateLang.translateDirect("generic.unit.buckets") ); } return Couple.create( new TextComponent(String.valueOf(amount)), - Lang.translateDirect("generic.unit.millibuckets") + CreateLang.translateDirect("generic.unit.millibuckets") ); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/FontHelper.java b/src/main/java/com/simibubi/create/foundation/utility/FontHelper.java deleted file mode 100644 index c9914e91e..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/FontHelper.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.text.BreakIterator; -import java.util.LinkedList; -import java.util.List; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.math.Matrix4f; - -import net.minecraft.client.gui.Font; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraftforge.client.MinecraftForgeClient; - -public final class FontHelper { - - private FontHelper() {} - - public static List cutString(Font font, String text, int maxWidthPerLine) { - // Split words - List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); - iterator.setText(text); - int start = iterator.first(); - for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { - String word = text.substring(start, end); - words.add(word); - } - // Apply hard wrap - List lines = new LinkedList<>(); - StringBuilder currentLine = new StringBuilder(); - int width = 0; - for (String word : words) { - int newWidth = font.width(word); - if (width + newWidth > maxWidthPerLine) { - if (width > 0) { - String line = currentLine.toString(); - lines.add(line); - currentLine = new StringBuilder(); - width = 0; - } else { - lines.add(word); - continue; - } - } - currentLine.append(word); - width += newWidth; - } - if (width > 0) { - lines.add(currentLine.toString()); - } - return lines; - } - - public static void drawSplitString(PoseStack ms, Font font, String text, int x, int y, int width, - int color) { - List list = cutString(font, text, width); - Matrix4f matrix4f = ms.last() - .pose(); - - for (String s : list) { - float f = (float) x; - if (font.isBidirectional()) { - int i = font.width(font.bidirectionalShaping(s)); - f += (float) (width - i); - } - - draw(font, s, f, (float) y, color, matrix4f, false); - y += 9; - } - } - - private static int draw(Font font, String p_228078_1_, float p_228078_2_, float p_228078_3_, - int p_228078_4_, Matrix4f p_228078_5_, boolean p_228078_6_) { - if (p_228078_1_ == null) { - return 0; - } else { - MultiBufferSource.BufferSource irendertypebuffer$impl = MultiBufferSource.immediate(Tesselator.getInstance() - .getBuilder()); - int i = font.drawInBatch(p_228078_1_, p_228078_2_, p_228078_3_, p_228078_4_, p_228078_6_, p_228078_5_, - irendertypebuffer$impl, false, 0, LightTexture.FULL_BRIGHT); - irendertypebuffer$impl.endBatch(); - return i; - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/IntAttached.java b/src/main/java/com/simibubi/create/foundation/utility/IntAttached.java deleted file mode 100644 index 884258200..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/IntAttached.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Comparator; -import java.util.function.Function; - -import net.minecraft.nbt.CompoundTag; - -public class IntAttached extends Pair { - - protected IntAttached(Integer first, V second) { - super(first, second); - } - - public static IntAttached with(int number, V value) { - return new IntAttached<>(number, value); - } - - public static IntAttached withZero(V value) { - return new IntAttached<>(0, value); - } - - public boolean isZero() { - return first.intValue() == 0; - } - - public boolean exceeds(int value) { - return first.intValue() > value; - } - - public boolean isOrBelowZero() { - return first.intValue() <= 0; - } - - public void increment() { - first++; - } - - public void decrement() { - first--; - } - - public V getValue() { - return getSecond(); - } - - public CompoundTag serializeNBT(Function serializer) { - CompoundTag nbt = new CompoundTag(); - nbt.put("Item", serializer.apply(getValue())); - nbt.putInt("Location", getFirst()); - return nbt; - } - - public static Comparator> comparator() { - return (i1, i2) -> Integer.compare(i2.getFirst(), i1.getFirst()); - } - - public static IntAttached read(CompoundTag nbt, Function deserializer) { - return IntAttached.with(nbt.getInt("Location"), deserializer.apply(nbt.getCompound("Item"))); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/Iterate.java b/src/main/java/com/simibubi/create/foundation/utility/Iterate.java deleted file mode 100644 index e8e541aa1..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/Iterate.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Arrays; -import java.util.EnumSet; -import java.util.List; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; - -public class Iterate { - - public static final boolean[] trueAndFalse = { true, false }; - public static final boolean[] falseAndTrue = { false, true }; - public static final int[] zeroAndOne = { 0, 1 }; - public static final int[] positiveAndNegative = { 1, -1 }; - public static final Direction[] directions = Direction.values(); - public static final Direction[] horizontalDirections = getHorizontals(); - public static final Axis[] axes = Axis.values(); - public static final EnumSet axisSet = EnumSet.allOf(Direction.Axis.class); - - private static Direction[] getHorizontals() { - Direction[] directions = new Direction[4]; - for (int i = 0; i < 4; i++) - directions[i] = Direction.from2DDataValue(i); - return directions; - } - - public static Direction[] directionsInAxis(Axis axis) { - switch (axis) { - case X: - return new Direction[] { Direction.EAST, Direction.WEST }; - case Y: - return new Direction[] { Direction.UP, Direction.DOWN }; - default: - case Z: - return new Direction[] { Direction.SOUTH, Direction.NORTH }; - } - } - - public static List hereAndBelow(BlockPos pos) { - return Arrays.asList(pos, pos.below()); - } - - public static List hereBelowAndAbove(BlockPos pos) { - return Arrays.asList(pos, pos.below(), pos.above()); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java b/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java deleted file mode 100644 index 5440c102a..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.List; - -import joptsimple.internal.Strings; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.world.entity.player.Player; - -public class LangBuilder { - - String namespace; - MutableComponent component; - - public LangBuilder(String namespace) { - this.namespace = namespace; - } - - public LangBuilder space() { - return text(" "); - } - - public LangBuilder newLine() { - return text("\n"); - } - - /** - * Appends a localised component
- * To add an independently formatted localised component, use add() and a nested - * builder - * - * @param langKey - * @param args - * @return - */ - public LangBuilder translate(String langKey, Object... args) { - return add(new TranslatableComponent(namespace + "." + langKey, Lang.resolveBuilders(args))); - } - - /** - * Appends a text component - * - * @param literalText - * @return - */ - public LangBuilder text(String literalText) { - return add(new TextComponent(literalText)); - } - - /** - * Appends a colored text component - * - * @param format - * @param literalText - * @return - */ - public LangBuilder text(ChatFormatting format, String literalText) { - return add(new TextComponent(literalText).withStyle(format)); - } - - /** - * Appends a colored text component - * - * @param color - * @param literalText - * @return - */ - public LangBuilder text(int color, String literalText) { - return add(new TextComponent(literalText).withStyle(s -> s.withColor(color))); - } - - /** - * Appends the contents of another builder - * - * @param otherBuilder - * @return - */ - public LangBuilder add(LangBuilder otherBuilder) { - return add(otherBuilder.component()); - } - - /** - * Appends a component - * - * @param customComponent - * @return - */ - public LangBuilder add(MutableComponent customComponent) { - component = component == null ? customComponent : component.append(customComponent); - return this; - } - - // - - /** - * Applies the format to all added components - * - * @param format - * @return - */ - public LangBuilder style(ChatFormatting format) { - assertComponent(); - component = component.withStyle(format); - return this; - } - - /** - * Applies the color to all added components - * - * @param color - * @return - */ - public LangBuilder color(int color) { - assertComponent(); - component = component.withStyle(s -> s.withColor(color)); - return this; - } - - // - - public MutableComponent component() { - assertComponent(); - return component; - } - - public String string() { - return component().getString(); - } - - public String json() { - return Component.Serializer.toJson(component()); - } - - public void sendStatus(Player player) { - player.displayClientMessage(component(), true); - } - - public void sendChat(Player player) { - player.displayClientMessage(component(), false); - } - - public void addTo(List tooltip) { - tooltip.add(component()); - } - - public void forGoggles(List tooltip) { - forGoggles(tooltip, 0); - } - - public void forGoggles(List tooltip, int indents) { - tooltip.add(Lang.builder() - .text(Strings.repeat(' ', 4 + indents)) - .add(this) - .component()); - } - - // - - private void assertComponent() { - if (component == null) - throw new IllegalStateException("No components were added to builder"); - } - -} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java b/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java deleted file mode 100644 index e96b33e50..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.text.NumberFormat; -import java.util.Locale; - -import net.minecraft.client.Minecraft; - -public class LangNumberFormat { - - private NumberFormat format = NumberFormat.getNumberInstance(Locale.ROOT); - public static LangNumberFormat numberFormat = new LangNumberFormat(); - - public NumberFormat get() { - return format; - } - - public void update() { - format = NumberFormat.getInstance(Minecraft.getInstance() - .getLanguageManager() - .getSelected() - .getJavaLocale()); - format.setMaximumFractionDigits(2); - format.setMinimumFractionDigits(0); - format.setGroupingUsed(true); - } - - public static String format(double d) { - return numberFormat.get() - .format(d) - .replace("\u00A0", " "); - } - -} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java b/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java deleted file mode 100644 index 267a343eb..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/NBTHelper.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; -import java.util.function.Function; - -import javax.annotation.Nonnull; - -import net.minecraft.core.Vec3i; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.FloatTag; -import net.minecraft.nbt.IntTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.AABB; - -public class NBTHelper { - - public static void putMarker(CompoundTag nbt, String marker) { - nbt.putBoolean(marker, true); - } - - public static > T readEnum(CompoundTag nbt, String key, Class enumClass) { - T[] enumConstants = enumClass.getEnumConstants(); - if (enumConstants == null) - throw new IllegalArgumentException("Non-Enum class passed to readEnum: " + enumClass.getName()); - if (nbt.contains(key, Tag.TAG_STRING)) { - String name = nbt.getString(key); - for (T t : enumConstants) { - if (t.name() - .equals(name)) - return t; - } - } - return enumConstants[0]; - } - - public static > void writeEnum(CompoundTag nbt, String key, T enumConstant) { - nbt.putString(key, enumConstant.name()); - } - - public static ListTag writeCompoundList(Iterable list, Function serializer) { - ListTag listNBT = new ListTag(); - list.forEach(t -> { - CompoundTag apply = serializer.apply(t); - if (apply == null) - return; - listNBT.add(apply); - }); - return listNBT; - } - - public static List readCompoundList(ListTag listNBT, Function deserializer) { - List list = new ArrayList<>(listNBT.size()); - listNBT.forEach(inbt -> list.add(deserializer.apply((CompoundTag) inbt))); - return list; - } - - public static void iterateCompoundList(ListTag listNBT, Consumer consumer) { - listNBT.forEach(inbt -> consumer.accept((CompoundTag) inbt)); - } - - public static ListTag writeItemList(Iterable stacks) { - return writeCompoundList(stacks, ItemStack::serializeNBT); - } - - public static List readItemList(ListTag stacks) { - return readCompoundList(stacks, ItemStack::of); - } - - public static ListTag writeAABB(AABB bb) { - ListTag bbtag = new ListTag(); - bbtag.add(FloatTag.valueOf((float) bb.minX)); - bbtag.add(FloatTag.valueOf((float) bb.minY)); - bbtag.add(FloatTag.valueOf((float) bb.minZ)); - bbtag.add(FloatTag.valueOf((float) bb.maxX)); - bbtag.add(FloatTag.valueOf((float) bb.maxY)); - bbtag.add(FloatTag.valueOf((float) bb.maxZ)); - return bbtag; - } - - public static AABB readAABB(ListTag bbtag) { - if (bbtag == null || bbtag.isEmpty()) - return null; - return new AABB(bbtag.getFloat(0), bbtag.getFloat(1), bbtag.getFloat(2), bbtag.getFloat(3), - bbtag.getFloat(4), bbtag.getFloat(5)); - } - - public static ListTag writeVec3i(Vec3i vec) { - ListTag tag = new ListTag(); - tag.add(IntTag.valueOf(vec.getX())); - tag.add(IntTag.valueOf(vec.getY())); - tag.add(IntTag.valueOf(vec.getZ())); - return tag; - } - - public static Vec3i readVec3i(ListTag tag) { - return new Vec3i(tag.getInt(0), tag.getInt(1), tag.getInt(2)); - } - - @Nonnull - public static Tag getINBT(CompoundTag nbt, String id) { - Tag inbt = nbt.get(id); - if (inbt != null) - return inbt; - return new CompoundTag(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/Pair.java b/src/main/java/com/simibubi/create/foundation/utility/Pair.java deleted file mode 100644 index 908e7047c..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/Pair.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Objects; - -public class Pair { - - F first; - S second; - - protected Pair(F first, S second) { - this.first = first; - this.second = second; - } - - public static Pair of(F first, S second) { - return new Pair<>(first, second); - } - - public F getFirst() { - return first; - } - - public S getSecond() { - return second; - } - - public void setFirst(F first) { - this.first = first; - } - - public void setSecond(S second) { - this.second = second; - } - - public Pair copy() { - return Pair.of(first, second); - } - - @Override - public boolean equals(final Object obj) { - if (obj == this) - return true; - if (obj instanceof Pair) { - final Pair other = (Pair) obj; - return Objects.equals(first, other.first) && Objects.equals(second, other.second); - } - return false; - } - - @Override - public int hashCode() { - return (nullHash(first) * 31) ^ nullHash(second); - } - - int nullHash(Object o) { - return o == null ? 0 : o.hashCode(); - } - - @Override - public String toString() { - return "(" + first + ", " + second + ")"; - } - - public Pair swap() { - return Pair.of(second, first); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/Pointing.java b/src/main/java/com/simibubi/create/foundation/utility/Pointing.java deleted file mode 100644 index e0829811b..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/Pointing.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.util.StringRepresentable; - -public enum Pointing implements StringRepresentable { - UP(0), LEFT(270), DOWN(180), RIGHT(90); - - private int xRotation; - - private Pointing(int xRotation) { - this.xRotation = xRotation; - } - - @Override - public String getSerializedName() { - return Lang.asId(name()); - } - - public int getXRotation() { - return xRotation; - } - - public Direction getCombinedDirection(Direction direction) { - Axis axis = direction.getAxis(); - Direction top = axis == Axis.Y ? Direction.SOUTH : Direction.UP; - int rotations = direction.getAxisDirection() == AxisDirection.NEGATIVE ? 4 - ordinal() : ordinal(); - for (int i = 0; i < rotations; i++) - top = DirectionHelper.rotateAround(top, axis); - return top; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java b/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java index 3ec6c4619..a9670f4ac 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java +++ b/src/main/java/com/simibubi/create/foundation/utility/ServerSpeedProvider.java @@ -5,9 +5,9 @@ import java.util.function.Supplier; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.createmod.catnip.utility.animation.LerpedFloat; +import net.createmod.catnip.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.network.FriendlyByteBuf; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java index af46f9b98..9622fae69 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java +++ b/src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java @@ -17,6 +17,7 @@ import com.simibubi.create.AllTags; import com.simibubi.create.compat.Mods; import com.simibubi.create.compat.dynamictrees.DynamicTree; +import net.createmod.catnip.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; @@ -47,7 +48,7 @@ public class TreeCutter { @Nonnull public static Optional findDynamicTree(Block startBlock, BlockPos pos) { - if (canDynamicTreeCutFrom(startBlock)) + if (canDynamicTreeCutFrom(startBlock)) return Mods.DYNAMICTREES.runIfInstalled(() -> () -> new DynamicTree(pos)); return Optional.empty(); } @@ -150,7 +151,7 @@ public class TreeCutter { if (property instanceof IntegerProperty ip && property.getName() .equals("distance")) distanceProperty = ip; - + int distance = !isLeaf ? 0 : blockState.getValue(distanceProperty); for (Direction direction : Iterate.directions) { BlockPos offset = currentPos.relative(direction); @@ -158,11 +159,11 @@ public class TreeCutter { continue; BlockState state = reader.getBlockState(offset); BlockPos subtract = offset.subtract(pos); - - for (Property property : state.getValues().keySet()) + + for (Property property : state.getValues().keySet()) if (property instanceof IntegerProperty ip && property.getName().equals("distance")) distanceProperty = ip; - + int horizontalDistance = Math.max(Math.abs(subtract.getX()), Math.abs(subtract.getZ())); if (isLeaf(state) && state.getValue(distanceProperty) > distance || isNonDecayingLeaf(state) && horizontalDistance < 4) @@ -247,7 +248,7 @@ public class TreeCutter { } private static boolean isLeaf(BlockState state) { - for (Property property : state.getValues().keySet()) + for (Property property : state.getValues().keySet()) if (property instanceof IntegerProperty && property.getName().equals("distance")) return true; return false; diff --git a/src/main/java/com/simibubi/create/foundation/utility/UniqueLinkedList.java b/src/main/java/com/simibubi/create/foundation/utility/UniqueLinkedList.java deleted file mode 100644 index d97f077ba..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/UniqueLinkedList.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Collection; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.stream.Collectors; - -public class UniqueLinkedList extends LinkedList { - /** - * - */ - private static final long serialVersionUID = 1L; - private final HashSet contained = new HashSet<>(); - - @Override - public boolean contains(Object o) { - return contained.contains(o); - } - - @Override - public E poll() { - E e = super.poll(); - contained.remove(e); - return e; - } - - @Override - public boolean add(E e) { - if (contained.add(e)) - return super.add(e); - else - return false; - } - - @Override - public void add(int index, E element) { - if (contained.add(element)) - super.add(index, element); - } - - @Override - public void addFirst(E e) { - if (contained.add(e)) - super.addFirst(e); - } - - @Override - public void addLast(E e) { - if (contained.add(e)) - super.addLast(e); - } - - @Override - public boolean addAll(Collection c) { - List filtered = c.stream() - .filter(it -> !contained.contains(it)) - .collect(Collectors.toList()); - return super.addAll(filtered); - } - - @Override - public boolean addAll(int index, Collection c) { - List filtered = c.stream() - .filter(it -> !contained.contains(it)) - .collect(Collectors.toList()); - return super.addAll(index, filtered); - } - - @Override - public boolean remove(Object o) { - contained.remove(o); - return super.remove(o); - } - - @Override - public E remove(int index) { - E e = super.remove(index); - contained.remove(e); - return e; - } - - @Override - public E removeFirst() { - E e = super.removeFirst(); - contained.remove(e); - return e; - } - - @Override - public E removeLast() { - E e = super.removeLast(); - contained.remove(e); - return e; - } - - @Override - public void clear() { - super.clear(); - contained.clear(); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java deleted file mode 100644 index ffb52b2b3..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java +++ /dev/null @@ -1,346 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Random; - -import javax.annotation.Nullable; - -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.mixin.accessor.GameRendererAccessor; - -import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Vec3i; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.DoubleTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.block.Mirror; -import net.minecraft.world.phys.Vec3; - -public class VecHelper { - - public static final Vec3 CENTER_OF_ORIGIN = new Vec3(.5, .5, .5); - - public static Vec3 rotate(Vec3 vec, Vec3 rotationVec) { - return rotate(vec, rotationVec.x, rotationVec.y, rotationVec.z); - } - - public static Vec3 rotate(Vec3 vec, double xRot, double yRot, double zRot) { - return rotate(rotate(rotate(vec, xRot, Axis.X), yRot, Axis.Y), zRot, Axis.Z); - } - - public static Vec3 rotateCentered(Vec3 vec, double deg, Axis axis) { - Vec3 shift = getCenterOf(BlockPos.ZERO); - return VecHelper.rotate(vec.subtract(shift), deg, axis) - .add(shift); - } - - public static Vec3 rotate(Vec3 vec, double deg, Axis axis) { - if (deg == 0) - return vec; - if (vec == Vec3.ZERO) - return vec; - - float angle = (float) (deg / 180f * Math.PI); - double sin = Mth.sin(angle); - double cos = Mth.cos(angle); - double x = vec.x; - double y = vec.y; - double z = vec.z; - - if (axis == Axis.X) - return new Vec3(x, y * cos - z * sin, z * cos + y * sin); - if (axis == Axis.Y) - return new Vec3(x * cos + z * sin, y, z * cos - x * sin); - if (axis == Axis.Z) - return new Vec3(x * cos - y * sin, y * cos + x * sin, z); - return vec; - } - - public static Vec3 mirrorCentered(Vec3 vec, Mirror mirror) { - Vec3 shift = getCenterOf(BlockPos.ZERO); - return VecHelper.mirror(vec.subtract(shift), mirror) - .add(shift); - } - - public static Vec3 mirror(Vec3 vec, Mirror mirror) { - if (mirror == null || mirror == Mirror.NONE) - return vec; - if (vec == Vec3.ZERO) - return vec; - - double x = vec.x; - double y = vec.y; - double z = vec.z; - - if (mirror == Mirror.LEFT_RIGHT) - return new Vec3(x, y, -z); - if (mirror == Mirror.FRONT_BACK) - return new Vec3(-x, y, z); - return vec; - } - - public static Vec3 lookAt(Vec3 vec, Vec3 fwd) { - fwd = fwd.normalize(); - Vec3 up = new Vec3(0, 1, 0); - double dot = fwd.dot(up); - if (Math.abs(dot) > 1 - 1.0E-3) - up = new Vec3(0, 0, dot > 0 ? 1 : -1); - Vec3 right = fwd.cross(up) - .normalize(); - up = right.cross(fwd) - .normalize(); - double x = vec.x * right.x + vec.y * up.x + vec.z * fwd.x; - double y = vec.x * right.y + vec.y * up.y + vec.z * fwd.y; - double z = vec.x * right.z + vec.y * up.z + vec.z * fwd.z; - return new Vec3(x, y, z); - } - - public static boolean isVecPointingTowards(Vec3 vec, Direction direction) { - return Vec3.atLowerCornerOf(direction.getNormal()) - .dot(vec.normalize()) > 0.125; // slight tolerance to activate perpendicular movement actors - } - - public static Vec3 getCenterOf(Vec3i pos) { - if (pos.equals(Vec3i.ZERO)) - return CENTER_OF_ORIGIN; - return Vec3.atLowerCornerOf(pos) - .add(.5f, .5f, .5f); - } - - public static Vec3 offsetRandomly(Vec3 vec, Random r, float radius) { - return new Vec3(vec.x + (r.nextFloat() - .5f) * 2 * radius, vec.y + (r.nextFloat() - .5f) * 2 * radius, - vec.z + (r.nextFloat() - .5f) * 2 * radius); - } - - public static Vec3 axisAlingedPlaneOf(Vec3 vec) { - vec = vec.normalize(); - return new Vec3(1, 1, 1).subtract(Math.abs(vec.x), Math.abs(vec.y), Math.abs(vec.z)); - } - - public static Vec3 axisAlingedPlaneOf(Direction face) { - return axisAlingedPlaneOf(Vec3.atLowerCornerOf(face.getNormal())); - } - - public static ListTag writeNBT(Vec3 vec) { - ListTag listnbt = new ListTag(); - listnbt.add(DoubleTag.valueOf(vec.x)); - listnbt.add(DoubleTag.valueOf(vec.y)); - listnbt.add(DoubleTag.valueOf(vec.z)); - return listnbt; - } - - public static CompoundTag writeNBTCompound(Vec3 vec) { - CompoundTag compoundTag = new CompoundTag(); - compoundTag.put("V", writeNBT(vec)); - return compoundTag; - } - - public static Vec3 readNBT(ListTag list) { - if (list.isEmpty()) - return Vec3.ZERO; - return new Vec3(list.getDouble(0), list.getDouble(1), list.getDouble(2)); - } - - public static Vec3 readNBTCompound(CompoundTag nbt) { - return readNBT(nbt.getList("V", Tag.TAG_DOUBLE)); - } - - public static void write(Vec3 vec, FriendlyByteBuf buffer) { - buffer.writeDouble(vec.x); - buffer.writeDouble(vec.y); - buffer.writeDouble(vec.z); - } - - public static Vec3 read(FriendlyByteBuf buffer) { - return new Vec3(buffer.readDouble(), buffer.readDouble(), buffer.readDouble()); - } - - public static Vec3 voxelSpace(double x, double y, double z) { - return new Vec3(x, y, z).scale(1 / 16f); - } - - public static int getCoordinate(Vec3i pos, Axis axis) { - return axis.choose(pos.getX(), pos.getY(), pos.getZ()); - } - - public static float getCoordinate(Vec3 vec, Axis axis) { - return (float) axis.choose(vec.x, vec.y, vec.z); - } - - public static boolean onSameAxis(BlockPos pos1, BlockPos pos2, Axis axis) { - if (pos1.equals(pos2)) - return true; - for (Axis otherAxis : Axis.values()) - if (axis != otherAxis) - if (getCoordinate(pos1, otherAxis) != getCoordinate(pos2, otherAxis)) - return false; - return true; - } - - public static Vec3 clamp(Vec3 vec, float maxLength) { - return vec.length() > maxLength ? vec.normalize() - .scale(maxLength) : vec; - } - - public static Vec3 lerp(float p, Vec3 from, Vec3 to) { - return from.add(to.subtract(from) - .scale(p)); - } - - public static Vec3 slerp(float p, Vec3 from, Vec3 to) { - double theta = Math.acos(from.dot(to)); - return from.scale(Mth.sin(1 - p) * theta) - .add(to.scale(Mth.sin((float) (theta * p)))) - .scale(1 / Mth.sin((float) theta)); - } - - public static Vec3 clampComponentWise(Vec3 vec, float maxLength) { - return new Vec3(Mth.clamp(vec.x, -maxLength, maxLength), Mth.clamp(vec.y, -maxLength, maxLength), - Mth.clamp(vec.z, -maxLength, maxLength)); - } - - public static Vec3 project(Vec3 vec, Vec3 ontoVec) { - if (ontoVec.equals(Vec3.ZERO)) - return Vec3.ZERO; - return ontoVec.scale(vec.dot(ontoVec) / ontoVec.lengthSqr()); - } - - @Nullable - public static Vec3 intersectSphere(Vec3 origin, Vec3 lineDirection, Vec3 sphereCenter, double radius) { - if (lineDirection.equals(Vec3.ZERO)) - return null; - if (lineDirection.length() != 1) - lineDirection = lineDirection.normalize(); - - Vec3 diff = origin.subtract(sphereCenter); - double lineDotDiff = lineDirection.dot(diff); - double delta = lineDotDiff * lineDotDiff - (diff.lengthSqr() - radius * radius); - if (delta < 0) - return null; - double t = -lineDotDiff + Math.sqrt(delta); - return origin.add(lineDirection.scale(t)); - } - - // https://forums.minecraftforge.net/topic/88562-116solved-3d-to-2d-conversion/?do=findComment&comment=413573 - // slightly modified - public static Vec3 projectToPlayerView(Vec3 target, float partialTicks) { - /* - * The (centered) location on the screen of the given 3d point in the world. - * Result is (dist right of center screen, dist up from center screen, if < 0, - * then in front of view plane) - */ - Camera ari = Minecraft.getInstance().gameRenderer.getMainCamera(); - Vec3 camera_pos = ari.getPosition(); - Quaternion camera_rotation_conj = ari.rotation() - .copy(); - camera_rotation_conj.conj(); - - Vector3f result3f = new Vector3f((float) (camera_pos.x - target.x), (float) (camera_pos.y - target.y), - (float) (camera_pos.z - target.z)); - result3f.transform(camera_rotation_conj); - - // ----- compensate for view bobbing (if active) ----- - // the following code adapted from GameRenderer::applyBobbing (to invert it) - Minecraft mc = Minecraft.getInstance(); - if (mc.options.bobView) { - Entity renderViewEntity = mc.getCameraEntity(); - if (renderViewEntity instanceof Player) { - Player playerentity = (Player) renderViewEntity; - float distwalked_modified = playerentity.walkDist; - - float f = distwalked_modified - playerentity.walkDistO; - float f1 = -(distwalked_modified + f * partialTicks); - float f2 = Mth.lerp(partialTicks, playerentity.oBob, playerentity.bob); - Quaternion q2 = - new Quaternion(Vector3f.XP, Math.abs(Mth.cos(f1 * (float) Math.PI - 0.2F) * f2) * 5.0F, true); - q2.conj(); - result3f.transform(q2); - - Quaternion q1 = new Quaternion(Vector3f.ZP, Mth.sin(f1 * (float) Math.PI) * f2 * 3.0F, true); - q1.conj(); - result3f.transform(q1); - - Vector3f bob_translation = new Vector3f((Mth.sin(f1 * (float) Math.PI) * f2 * 0.5F), - (-Math.abs(Mth.cos(f1 * (float) Math.PI) * f2)), 0.0f); - bob_translation.setY(-bob_translation.y()); // this is weird but hey, if it works - result3f.add(bob_translation); - } - } - - // ----- adjust for fov ----- - float fov = (float) ((GameRendererAccessor) mc.gameRenderer).create$callGetFov(ari, partialTicks, true); - - float half_height = (float) mc.getWindow() - .getGuiScaledHeight() / 2; - float scale_factor = half_height / (result3f.z() * (float) Math.tan(Math.toRadians(fov / 2))); - return new Vec3(-result3f.x() * scale_factor, result3f.y() * scale_factor, result3f.z()); - } - - public static Vec3 bezier(Vec3 p1, Vec3 p2, Vec3 q1, Vec3 q2, float t) { - Vec3 v1 = lerp(t, p1, q1); - Vec3 v2 = lerp(t, q1, q2); - Vec3 v3 = lerp(t, q2, p2); - Vec3 inner1 = lerp(t, v1, v2); - Vec3 inner2 = lerp(t, v2, v3); - Vec3 result = lerp(t, inner1, inner2); - return result; - } - - public static Vec3 bezierDerivative(Vec3 p1, Vec3 p2, Vec3 q1, Vec3 q2, float t) { - return p1.scale(-3 * t * t + 6 * t - 3) - .add(q1.scale(9 * t * t - 12 * t + 3)) - .add(q2.scale(-9 * t * t + 6 * t)) - .add(p2.scale(3 * t * t)); - } - - @Nullable - public static double[] intersectRanged(Vec3 p1, Vec3 q1, Vec3 p2, Vec3 q2, Axis plane) { - Vec3 pDiff = p2.subtract(p1); - Vec3 qDiff = q2.subtract(q1); - double[] intersect = intersect(p1, q1, pDiff.normalize(), qDiff.normalize(), plane); - if (intersect == null) - return null; - if (intersect[0] < 0 || intersect[1] < 0) - return null; - if (intersect[0] > pDiff.length() || intersect[1] > qDiff.length()) - return null; - return intersect; - } - - @Nullable - public static double[] intersect(Vec3 p1, Vec3 p2, Vec3 r, Vec3 s, Axis plane) { - if (plane == Axis.X) { - p1 = new Vec3(p1.y, 0, p1.z); - p2 = new Vec3(p2.y, 0, p2.z); - r = new Vec3(r.y, 0, r.z); - s = new Vec3(s.y, 0, s.z); - } - - if (plane == Axis.Z) { - p1 = new Vec3(p1.x, 0, p1.y); - p2 = new Vec3(p2.x, 0, p2.y); - r = new Vec3(r.x, 0, r.y); - s = new Vec3(s.x, 0, s.y); - } - - Vec3 qminusp = p2.subtract(p1); - double rcs = r.x * s.z - r.z * s.x; - if (Mth.equal(rcs, 0)) - return null; - Vec3 rdivrcs = r.scale(1 / rcs); - Vec3 sdivrcs = s.scale(1 / rcs); - double t = qminusp.x * sdivrcs.z - qminusp.z * sdivrcs.x; - double u = qminusp.x * rdivrcs.z - qminusp.z * rdivrcs.x; - return new double[] { t, u }; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java b/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java deleted file mode 100644 index b5aac8457..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/VoxelShaper.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; - -import org.apache.commons.lang3.mutable.MutableObject; - -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.Shapes; -import net.minecraft.world.phys.shapes.VoxelShape; - -public class VoxelShaper { - - private Map shapes = new HashMap<>(); - - public VoxelShape get(Direction direction) { - return shapes.get(direction); - } - - public VoxelShape get(Axis axis) { - return shapes.get(axisAsFace(axis)); - } - - public static VoxelShaper forHorizontal(VoxelShape shape, Direction facing) { - return forDirectionsWithRotation(shape, facing, Direction.Plane.HORIZONTAL, new HorizontalRotationValues()); - } - - public static VoxelShaper forHorizontalAxis(VoxelShape shape, Axis along) { - return forDirectionsWithRotation(shape, axisAsFace(along), Arrays.asList(Direction.SOUTH, Direction.EAST), - new HorizontalRotationValues()); - } - - public static VoxelShaper forDirectional(VoxelShape shape, Direction facing) { - return forDirectionsWithRotation(shape, facing, Arrays.asList(Iterate.directions), new DefaultRotationValues()); - } - - public static VoxelShaper forAxis(VoxelShape shape, Axis along) { - return forDirectionsWithRotation(shape, axisAsFace(along), - Arrays.asList(Direction.SOUTH, Direction.EAST, Direction.UP), new DefaultRotationValues()); - } - - public VoxelShaper withVerticalShapes(VoxelShape upShape) { - shapes.put(Direction.UP, upShape); - shapes.put(Direction.DOWN, rotatedCopy(upShape, new Vec3(180, 0, 0))); - return this; - } - - public VoxelShaper withShape(VoxelShape shape, Direction facing) { - shapes.put(facing, shape); - return this; - } - - public static Direction axisAsFace(Axis axis) { - return Direction.get(AxisDirection.POSITIVE, axis); - } - - protected static float horizontalAngleFromDirection(Direction direction) { - return (float) ((Math.max(direction.get2DDataValue(), 0) & 3) * 90); - } - - protected static VoxelShaper forDirectionsWithRotation(VoxelShape shape, Direction facing, - Iterable directions, Function rotationValues) { - VoxelShaper voxelShaper = new VoxelShaper(); - for (Direction dir : directions) { - voxelShaper.shapes.put(dir, rotate(shape, facing, dir, rotationValues)); - } - return voxelShaper; - } - - protected static VoxelShape rotate(VoxelShape shape, Direction from, Direction to, - Function usingValues) { - if (from == to) - return shape; - - return rotatedCopy(shape, usingValues.apply(from) - .reverse() - .add(usingValues.apply(to))); - } - - protected static VoxelShape rotatedCopy(VoxelShape shape, Vec3 rotation) { - if (rotation.equals(Vec3.ZERO)) - return shape; - - MutableObject result = new MutableObject<>(Shapes.empty()); - Vec3 center = new Vec3(8, 8, 8); - - shape.forAllBoxes((x1, y1, z1, x2, y2, z2) -> { - Vec3 v1 = new Vec3(x1, y1, z1).scale(16) - .subtract(center); - Vec3 v2 = new Vec3(x2, y2, z2).scale(16) - .subtract(center); - - v1 = VecHelper.rotate(v1, (float) rotation.x, Axis.X); - v1 = VecHelper.rotate(v1, (float) rotation.y, Axis.Y); - v1 = VecHelper.rotate(v1, (float) rotation.z, Axis.Z) - .add(center); - - v2 = VecHelper.rotate(v2, (float) rotation.x, Axis.X); - v2 = VecHelper.rotate(v2, (float) rotation.y, Axis.Y); - v2 = VecHelper.rotate(v2, (float) rotation.z, Axis.Z) - .add(center); - - VoxelShape rotated = blockBox(v1, v2); - result.setValue(Shapes.or(result.getValue(), rotated)); - }); - - return result.getValue(); - } - - protected static VoxelShape blockBox(Vec3 v1, Vec3 v2) { - return Block.box( - Math.min(v1.x, v2.x), - Math.min(v1.y, v2.y), - Math.min(v1.z, v2.z), - Math.max(v1.x, v2.x), - Math.max(v1.y, v2.y), - Math.max(v1.z, v2.z) - ); - } - - protected static class DefaultRotationValues implements Function { - // assume facing up as the default rotation - @Override - public Vec3 apply(Direction direction) { - return new Vec3(direction == Direction.UP ? 0 : (Direction.Plane.VERTICAL.test(direction) ? 180 : 90), - -horizontalAngleFromDirection(direction), 0); - } - } - - protected static class HorizontalRotationValues implements Function { - @Override - public Vec3 apply(Direction direction) { - return new Vec3(0, -horizontalAngleFromDirection(direction), 0); - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java b/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java deleted file mode 100644 index 4986354f5..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/WorldAttached.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Nonnull; - -import net.minecraft.world.level.LevelAccessor; -import net.minecraftforge.common.util.NonNullFunction; - -public class WorldAttached { - - static List> allMaps = new ArrayList<>(); - Map attached; - private final NonNullFunction factory; - - public WorldAttached(NonNullFunction factory) { - this.factory = factory; - attached = new HashMap<>(); - allMaps.add(attached); - } - - public static void invalidateWorld(LevelAccessor world) { - allMaps.forEach(m -> m.remove(world)); - } - - @Nonnull - public T get(LevelAccessor world) { - T t = attached.get(world); - if (t != null) - return t; - T entry = factory.apply(world); - put(world, entry); - return entry; - } - - public void put(LevelAccessor world, T entry) { - attached.put(world, entry); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java b/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java deleted file mode 100644 index b444b6d6e..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simibubi.create.foundation.utility; - -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.LevelAccessor; - -public class WorldHelper { - public static ResourceLocation getDimensionID(LevelAccessor world) { - return world.registryAccess() - .registryOrThrow(Registry.DIMENSION_TYPE_REGISTRY) - .getKey(world.dimensionType()); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/animation/Force.java b/src/main/java/com/simibubi/create/foundation/utility/animation/Force.java deleted file mode 100644 index d15b3e627..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/animation/Force.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.simibubi.create.foundation.utility.animation; - -public interface Force { - - float get(float mass, float value, float speed); - - boolean finished(); - - class Drag implements Force { - final float dragFactor; - - public Drag(float dragFactor) { - this.dragFactor = dragFactor; - } - - @Override - public float get(float mass, float value, float speed) { - return -speed * dragFactor; - } - - @Override - public boolean finished() { - return false; - } - } - - class Zeroing implements Force { - final float g; - - public Zeroing(float g) { - this.g = g / 20; - } - - @Override - public float get(float mass, float value, float speed) { - return -Math.signum(value) * g * mass; - } - - @Override - public boolean finished() { - return false; - } - } - - class Impulse implements Force { - - float force; - - public Impulse(float force) { - this.force = force; - } - - @Override - public float get(float mass, float value, float speed) { - return force; - } - - @Override - public boolean finished() { - return true; - } - } - - class OverTime implements Force { - int timeRemaining; - float f; - - public OverTime(int time, float totalAcceleration) { - this.timeRemaining = time; - this.f = totalAcceleration / (float) time; - } - - @Override - public float get(float mass, float value, float speed) { - timeRemaining--; - return f; - } - - @Override - public boolean finished() { - return timeRemaining <= 0; - } - } - - class Static implements Force { - float force; - - public Static(float force) { - this.force = force; - } - - @Override - public float get(float mass, float value, float speed) { - return force; - } - - @Override - public boolean finished() { - return false; - } - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/animation/LerpedFloat.java b/src/main/java/com/simibubi/create/foundation/utility/animation/LerpedFloat.java deleted file mode 100644 index bb9e24ef1..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/animation/LerpedFloat.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.simibubi.create.foundation.utility.animation; - -import com.simibubi.create.foundation.utility.AngleHelper; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Mth; - -public class LerpedFloat { - - protected Interpolator interpolator; - protected float previousValue; - protected float value; - - protected Chaser chaseFunction; - protected float chaseTarget; - protected float chaseSpeed; - protected boolean angularChase; - - protected boolean forcedSync; - - public LerpedFloat(Interpolator interpolator) { - this.interpolator = interpolator; - startWithValue(0); - forcedSync = true; - } - - public static LerpedFloat linear() { - return new LerpedFloat((p, c, t) -> (float) Mth.lerp(p, c, t)); - } - - public static LerpedFloat angular() { - LerpedFloat lerpedFloat = new LerpedFloat(AngleHelper::angleLerp); - lerpedFloat.angularChase = true; - return lerpedFloat; - } - - public LerpedFloat startWithValue(double value) { - float f = (float) value; - this.previousValue = f; - this.chaseTarget = f; - this.value = f; - return this; - } - - public LerpedFloat chase(double value, double speed, Chaser chaseFunction) { - updateChaseTarget((float) value); - this.chaseSpeed = (float) speed; - this.chaseFunction = chaseFunction; - return this; - } - - public LerpedFloat disableSmartAngleChasing() { - angularChase = false; - return this; - } - - public void updateChaseTarget(float target) { - if (angularChase) - target = value + AngleHelper.getShortestAngleDiff(value, target); - this.chaseTarget = target; - } - - public boolean updateChaseSpeed(double speed) { - float prevSpeed = this.chaseSpeed; - this.chaseSpeed = (float) speed; - return !Mth.equal(prevSpeed, speed); - } - - public void tickChaser() { - previousValue = value; - if (chaseFunction == null) - return; - if (Mth.equal((double) value, chaseTarget)) { - value = chaseTarget; - return; - } - value = chaseFunction.chase(value, chaseSpeed, chaseTarget); - } - - public void setValueNoUpdate(double value) { - this.value = (float) value; - } - - public void setValue(double value) { - this.previousValue = this.value; - this.value = (float) value; - } - - public float getValue() { - return getValue(1); - } - - public float getValue(float partialTicks) { - return interpolator.interpolate(partialTicks, previousValue, value); - } - - public boolean settled() { - return Mth.equal((double) previousValue, value); - } - - public float getChaseTarget() { - return chaseTarget; - } - - public void forceNextSync() { - forcedSync = true; - } - - public CompoundTag writeNBT() { - CompoundTag compoundNBT = new CompoundTag(); - compoundNBT.putFloat("Speed", chaseSpeed); - compoundNBT.putFloat("Target", chaseTarget); - compoundNBT.putFloat("Value", value); - if (forcedSync) - compoundNBT.putBoolean("Force", true); - forcedSync = false; - return compoundNBT; - } - - public void readNBT(CompoundTag compoundNBT, boolean clientPacket) { - if (!clientPacket || compoundNBT.contains("Force")) - startWithValue(compoundNBT.getFloat("Value")); - readChaser(compoundNBT); - } - - protected void readChaser(CompoundTag compoundNBT) { - chaseSpeed = compoundNBT.getFloat("Speed"); - chaseTarget = compoundNBT.getFloat("Target"); - } - - @FunctionalInterface - public interface Interpolator { - float interpolate(double progress, double current, double target); - } - - @FunctionalInterface - public interface Chaser { - - Chaser IDLE = (c, s, t) -> (float) c; - Chaser EXP = exp(Double.MAX_VALUE); - Chaser LINEAR = (c, s, t) -> (float) (c + Mth.clamp(t - c, -s, s)); - - static Chaser exp(double maxEffectiveSpeed) { - return (c, s, t) -> (float) (c + Mth.clamp((t - c) * s, -maxEffectiveSpeed, maxEffectiveSpeed)); - } - - float chase(double current, double speed, double target); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/animation/PhysicalFloat.java b/src/main/java/com/simibubi/create/foundation/utility/animation/PhysicalFloat.java deleted file mode 100644 index ca2e61afc..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/animation/PhysicalFloat.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.simibubi.create.foundation.utility.animation; - -import java.util.ArrayList; - -import net.minecraft.util.Mth; - -public class PhysicalFloat { - - float previousValue; - float value; - - float previousSpeed; - float speed; - float limit = Float.NaN; - - float mass; - - private final ArrayList forces = new ArrayList<>(); - - public static PhysicalFloat create() { - return new PhysicalFloat(1); - } - - public static PhysicalFloat create(float mass) { - return new PhysicalFloat(mass); - } - - public PhysicalFloat(float mass) { - this.mass = mass; - } - - public PhysicalFloat startAt(double value) { - previousValue = this.value = (float) value; - return this; - } - - public PhysicalFloat withDrag(double drag) { - return addForce(new Force.Drag((float) drag)); - } - - public PhysicalFloat zeroing(double g) { - return addForce(new Force.Zeroing((float) g)); - } - - public PhysicalFloat withLimit(float limit) { - this.limit = limit; - return this; - } - - public void tick() { - previousSpeed = speed; - previousValue = value; - - float totalImpulse = 0; - for (Force force : forces) - totalImpulse += force.get(mass, value, speed) / mass; - - speed += totalImpulse; - - forces.removeIf(Force::finished); - - if (Float.isFinite(limit)) { - speed = Mth.clamp(speed, -limit, limit); - } - - value += speed; - } - - public PhysicalFloat addForce(Force f) { - forces.add(f); - return this; - } - - public PhysicalFloat bump(double force) { - return addForce(new Force.Impulse((float) force)); - } - - public PhysicalFloat bump(int time, double force) { - return addForce(new Force.OverTime(time, (float) force)); - } - - public float getValue() { - return getValue(1); - } - - public float getValue(float partialTicks) { - return Mth.lerp(partialTicks, previousValue, value); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockParams.java b/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockParams.java deleted file mode 100644 index 6c76a9525..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockParams.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.simibubi.create.foundation.utility.ghost; - -import java.util.function.Supplier; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; - -public class GhostBlockParams { - - protected final BlockState state; - protected BlockPos pos; - protected Supplier alphaSupplier; - - private GhostBlockParams(BlockState state) { - this.state = state; - this.pos = BlockPos.ZERO; - this.alphaSupplier = () -> 1f; - } - - public static GhostBlockParams of(BlockState state) { - return new GhostBlockParams(state); - } - - public static GhostBlockParams of(Block block) { - return of(block.defaultBlockState()); - } - - public GhostBlockParams at(BlockPos pos) { - this.pos = pos; - return this; - } - - public GhostBlockParams at(int x, int y, int z) { - return this.at(new BlockPos(x, y, z)); - } - - public GhostBlockParams alpha(Supplier alphaSupplier) { - this.alphaSupplier = alphaSupplier; - return this; - } - - public GhostBlockParams alpha(float alpha) { - return this.alpha(() -> alpha); - } - - public GhostBlockParams breathingAlpha() { - return this.alpha(() -> (float) GhostBlocks.getBreathingAlpha()); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java b/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java deleted file mode 100644 index 1f7cbc500..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.simibubi.create.foundation.utility.ghost; - -import java.util.List; -import java.util.Random; - -import javax.annotation.Nullable; - -import com.jozufozu.flywheel.core.virtual.VirtualEmptyModelData; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.placement.PlacementHelpers; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.Mth; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.data.IModelData; - -public abstract class GhostBlockRenderer { - - private static final GhostBlockRenderer STANDARD = new DefaultGhostBlockRenderer(); - - public static GhostBlockRenderer standard() { - return STANDARD; - } - - private static final GhostBlockRenderer TRANSPARENT = new TransparentGhostBlockRenderer(); - - public static GhostBlockRenderer transparent() { - return TRANSPARENT; - } - - public abstract void render(PoseStack ms, SuperRenderTypeBuffer buffer, GhostBlockParams params); - - private static class DefaultGhostBlockRenderer extends GhostBlockRenderer { - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, GhostBlockParams params) { - ms.pushPose(); - - BlockRenderDispatcher dispatcher = Minecraft.getInstance() - .getBlockRenderer(); - - BakedModel model = dispatcher.getBlockModel(params.state); - - RenderType layer = ItemBlockRenderTypes.getRenderType(params.state, false); - VertexConsumer vb = buffer.getEarlyBuffer(layer); - - BlockPos pos = params.pos; - ms.translate(pos.getX(), pos.getY(), pos.getZ()); - - dispatcher.getModelRenderer() - .renderModel(ms.last(), vb, params.state, model, 1f, 1f, 1f, LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, - VirtualEmptyModelData.INSTANCE); - - ms.popPose(); - } - - } - - private static class TransparentGhostBlockRenderer extends GhostBlockRenderer { - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, GhostBlockParams params) { - ms.pushPose(); - - Minecraft mc = Minecraft.getInstance(); - BlockRenderDispatcher dispatcher = mc.getBlockRenderer(); - - BakedModel model = dispatcher.getBlockModel(params.state); - - RenderType layer = RenderType.translucent(); - VertexConsumer vb = buffer.getEarlyBuffer(layer); - - BlockPos pos = params.pos; - ms.translate(pos.getX(), pos.getY(), pos.getZ()); - - ms.translate(.5, .5, .5); - ms.scale(.85f, .85f, .85f); - ms.translate(-.5, -.5, -.5); - - float alpha = params.alphaSupplier.get() * .75f * PlacementHelpers.getCurrentAlpha(); - renderModel(ms.last(), vb, params.state, model, 1f, 1f, 1f, alpha, - LevelRenderer.getLightColor(mc.level, pos), OverlayTexture.NO_OVERLAY, - VirtualEmptyModelData.INSTANCE); - - ms.popPose(); - } - - // ModelBlockRenderer - public void renderModel(PoseStack.Pose pose, VertexConsumer consumer, - @Nullable BlockState state, BakedModel model, float red, float green, float blue, - float alpha, int packedLight, int packedOverlay, IModelData modelData) { - Random random = new Random(); - - for (Direction direction : Direction.values()) { - random.setSeed(42L); - renderQuadList(pose, consumer, red, green, blue, alpha, - model.getQuads(state, direction, random, modelData), packedLight, packedOverlay); - } - - random.setSeed(42L); - renderQuadList(pose, consumer, red, green, blue, alpha, - model.getQuads(state, null, random, modelData), packedLight, packedOverlay); - } - - // ModelBlockRenderer - private static void renderQuadList(PoseStack.Pose pose, VertexConsumer consumer, - float red, float green, float blue, float alpha, List quads, - int packedLight, int packedOverlay) { - for (BakedQuad quad : quads) { - float f; - float f1; - float f2; - if (quad.isTinted()) { - f = Mth.clamp(red, 0.0F, 1.0F); - f1 = Mth.clamp(green, 0.0F, 1.0F); - f2 = Mth.clamp(blue, 0.0F, 1.0F); - } else { - f = 1.0F; - f1 = 1.0F; - f2 = 1.0F; - } - - consumer.putBulkData(pose, quad, f, f1, f2, alpha, packedLight, packedOverlay); - } - - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlocks.java b/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlocks.java deleted file mode 100644 index 7fae395c9..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlocks.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.simibubi.create.foundation.utility.ghost; - -import java.util.HashMap; -import java.util.Map; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; - -import net.minecraft.util.Mth; -import net.minecraft.world.level.block.state.BlockState; - -public class GhostBlocks { - - public static double getBreathingAlpha() { - double period = 2500; - double timer = System.currentTimeMillis() % period; - double offset = Mth.cos((float) ((2d/period) * Math.PI * timer)); - return 0.55d - 0.2d * offset; - } - - final Map ghosts; - - public GhostBlockParams showGhostState(Object slot, BlockState state) { - return showGhostState(slot, state, 1); - } - - public GhostBlockParams showGhostState(Object slot, BlockState state, int ttl) { - Entry e = refresh(slot, GhostBlockRenderer.transparent(), GhostBlockParams.of(state), ttl); - return e.params; - } - - public GhostBlockParams showGhost(Object slot, GhostBlockRenderer ghost, GhostBlockParams params, int ttl) { - Entry e = refresh(slot, ghost, params, ttl); - return e.params; - } - - private Entry refresh(Object slot, GhostBlockRenderer ghost, GhostBlockParams params, int ttl) { - if (!ghosts.containsKey(slot)) - ghosts.put(slot, new Entry(ghost, params, ttl)); - - Entry e = ghosts.get(slot); - e.ticksToLive = ttl; - e.params = params; - e.ghost = ghost; - return e; - } - - public GhostBlocks() { - ghosts = new HashMap<>(); - } - - public void tickGhosts() { - ghosts.forEach((slot, entry) -> entry.ticksToLive--); - ghosts.entrySet().removeIf(e -> !e.getValue().isAlive()); - } - - public void renderAll(PoseStack ms, SuperRenderTypeBuffer buffer) { - ghosts.forEach((slot, entry) -> { - GhostBlockRenderer ghost = entry.ghost; - ghost.render(ms, buffer, entry.params); - }); - } - - static class Entry { - - private GhostBlockRenderer ghost; - private GhostBlockParams params; - private int ticksToLive; - - public Entry(GhostBlockRenderer ghost, GhostBlockParams params) { - this(ghost, params, 1); - } - - public Entry(GhostBlockRenderer ghost, GhostBlockParams params, int ttl) { - this.ghost = ghost; - this.params = params; - this.ticksToLive = ttl; - } - - public boolean isAlive() { - return ticksToLive >= 0; - } - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/AABBOutline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/AABBOutline.java deleted file mode 100644 index 12af40349..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/AABBOutline.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.foundation.render.RenderTypes; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -public class AABBOutline extends Outline { - - protected AABB bb; - - public AABBOutline(AABB bb) { - this.setBounds(bb); - } - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - renderBB(ms, buffer, bb); - } - - public void renderBB(PoseStack ms, SuperRenderTypeBuffer buffer, AABB bb) { - Vec3 projectedView = Minecraft.getInstance().gameRenderer.getMainCamera() - .getPosition(); - boolean noCull = bb.contains(projectedView); - bb = bb.inflate(noCull ? -1 / 128d : 1 / 128d); - noCull |= params.disableCull; - - Vec3 xyz = new Vec3(bb.minX, bb.minY, bb.minZ); - Vec3 Xyz = new Vec3(bb.maxX, bb.minY, bb.minZ); - Vec3 xYz = new Vec3(bb.minX, bb.maxY, bb.minZ); - Vec3 XYz = new Vec3(bb.maxX, bb.maxY, bb.minZ); - Vec3 xyZ = new Vec3(bb.minX, bb.minY, bb.maxZ); - Vec3 XyZ = new Vec3(bb.maxX, bb.minY, bb.maxZ); - Vec3 xYZ = new Vec3(bb.minX, bb.maxY, bb.maxZ); - Vec3 XYZ = new Vec3(bb.maxX, bb.maxY, bb.maxZ); - - Vec3 start = xyz; - renderAACuboidLine(ms, buffer, start, Xyz); - renderAACuboidLine(ms, buffer, start, xYz); - renderAACuboidLine(ms, buffer, start, xyZ); - - start = XyZ; - renderAACuboidLine(ms, buffer, start, xyZ); - renderAACuboidLine(ms, buffer, start, XYZ); - renderAACuboidLine(ms, buffer, start, Xyz); - - start = XYz; - renderAACuboidLine(ms, buffer, start, xYz); - renderAACuboidLine(ms, buffer, start, Xyz); - renderAACuboidLine(ms, buffer, start, XYZ); - - start = xYZ; - renderAACuboidLine(ms, buffer, start, XYZ); - renderAACuboidLine(ms, buffer, start, xyZ); - renderAACuboidLine(ms, buffer, start, xYz); - - renderFace(ms, buffer, Direction.NORTH, xYz, XYz, Xyz, xyz, noCull); - renderFace(ms, buffer, Direction.SOUTH, XYZ, xYZ, xyZ, XyZ, noCull); - renderFace(ms, buffer, Direction.EAST, XYz, XYZ, XyZ, Xyz, noCull); - renderFace(ms, buffer, Direction.WEST, xYZ, xYz, xyz, xyZ, noCull); - renderFace(ms, buffer, Direction.UP, xYZ, XYZ, XYz, xYz, noCull); - renderFace(ms, buffer, Direction.DOWN, xyz, Xyz, XyZ, xyZ, noCull); - - } - - protected void renderFace(PoseStack ms, SuperRenderTypeBuffer buffer, Direction direction, Vec3 p1, Vec3 p2, - Vec3 p3, Vec3 p4, boolean noCull) { - if (!params.faceTexture.isPresent()) - return; - - ResourceLocation faceTexture = params.faceTexture.get() - .getLocation(); - float alphaBefore = params.alpha; - params.alpha = - (direction == params.getHighlightedFace() && params.hightlightedFaceTexture.isPresent()) ? 1 : 0.5f; - - RenderType translucentType = RenderTypes.getOutlineTranslucent(faceTexture, !noCull); - VertexConsumer builder = buffer.getLateBuffer(translucentType); - - Axis axis = direction.getAxis(); - Vec3 uDiff = p2.subtract(p1); - Vec3 vDiff = p4.subtract(p1); - float maxU = (float) Math.abs(axis == Axis.X ? uDiff.z : uDiff.x); - float maxV = (float) Math.abs(axis == Axis.Y ? vDiff.z : vDiff.y); - putQuadUV(ms, builder, p1, p2, p3, p4, 0, 0, maxU, maxV, Direction.UP); - params.alpha = alphaBefore; - } - - public void setBounds(AABB bb) { - this.bb = bb; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/BlockClusterOutline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/BlockClusterOutline.java deleted file mode 100644 index 0f005a5bb..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/BlockClusterOutline.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.foundation.render.RenderTypes; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.client.renderer.RenderType; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.world.phys.Vec3; - -public class BlockClusterOutline extends Outline { - - private Cluster cluster; - - public BlockClusterOutline(Iterable selection) { - cluster = new Cluster(); - selection.forEach(cluster::include); - } - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - cluster.visibleEdges.forEach(edge -> { - Vec3 start = Vec3.atLowerCornerOf(edge.pos); - Direction direction = Direction.get(AxisDirection.POSITIVE, edge.axis); - renderAACuboidLine(ms, buffer, start, Vec3.atLowerCornerOf(edge.pos.relative(direction))); - }); - - Optional faceTexture = params.faceTexture; - if (!faceTexture.isPresent()) - return; - - RenderType translucentType = RenderTypes.getOutlineTranslucent(faceTexture.get() - .getLocation(), true); - VertexConsumer builder = buffer.getLateBuffer(translucentType); - - cluster.visibleFaces.forEach((face, axisDirection) -> { - Direction direction = Direction.get(axisDirection, face.axis); - BlockPos pos = face.pos; - if (axisDirection == AxisDirection.POSITIVE) - pos = pos.relative(direction.getOpposite()); - renderBlockFace(ms, builder, pos, direction); - }); - } - - static Vec3 xyz = new Vec3(-.5, -.5, -.5); - static Vec3 Xyz = new Vec3(.5, -.5, -.5); - static Vec3 xYz = new Vec3(-.5, .5, -.5); - static Vec3 XYz = new Vec3(.5, .5, -.5); - static Vec3 xyZ = new Vec3(-.5, -.5, .5); - static Vec3 XyZ = new Vec3(.5, -.5, .5); - static Vec3 xYZ = new Vec3(-.5, .5, .5); - static Vec3 XYZ = new Vec3(.5, .5, .5); - - protected void renderBlockFace(PoseStack ms, VertexConsumer builder, BlockPos pos, Direction face) { - Vec3 center = VecHelper.getCenterOf(pos); - Vec3 offset = Vec3.atLowerCornerOf(face.getNormal()); - offset = offset.scale(1 / 128d); - center = center.add(offset); - - ms.pushPose(); - ms.translate(center.x, center.y, center.z); - - switch (face) { - case DOWN: - putQuad(ms, builder, xyz, Xyz, XyZ, xyZ, face); - break; - case EAST: - putQuad(ms, builder, XYz, XYZ, XyZ, Xyz, face); - break; - case NORTH: - putQuad(ms, builder, xYz, XYz, Xyz, xyz, face); - break; - case SOUTH: - putQuad(ms, builder, XYZ, xYZ, xyZ, XyZ, face); - break; - case UP: - putQuad(ms, builder, xYZ, XYZ, XYz, xYz, face); - break; - case WEST: - putQuad(ms, builder, xYZ, xYz, xyz, xyZ, face); - default: - break; - } - - ms.popPose(); - } - - private static class Cluster { - - private Map visibleFaces; - private Set visibleEdges; - - public Cluster() { - visibleEdges = new HashSet<>(); - visibleFaces = new HashMap<>(); - } - - public void include(BlockPos pos) { - - // 6 FACES - for (Axis axis : Iterate.axes) { - Direction direction = Direction.get(AxisDirection.POSITIVE, axis); - for (int offset : Iterate.zeroAndOne) { - MergeEntry entry = new MergeEntry(axis, pos.relative(direction, offset)); - if (visibleFaces.remove(entry) == null) - visibleFaces.put(entry, offset == 0 ? AxisDirection.NEGATIVE : AxisDirection.POSITIVE); - } - } - - // 12 EDGES - for (Axis axis : Iterate.axes) { - for (Axis axis2 : Iterate.axes) { - if (axis == axis2) - continue; - for (Axis axis3 : Iterate.axes) { - if (axis == axis3) - continue; - if (axis2 == axis3) - continue; - - Direction direction = Direction.get(AxisDirection.POSITIVE, axis2); - Direction direction2 = Direction.get(AxisDirection.POSITIVE, axis3); - - for (int offset : Iterate.zeroAndOne) { - BlockPos entryPos = pos.relative(direction, offset); - for (int offset2 : Iterate.zeroAndOne) { - entryPos = entryPos.relative(direction2, offset2); - MergeEntry entry = new MergeEntry(axis, entryPos); - if (!visibleEdges.remove(entry)) - visibleEdges.add(entry); - } - } - } - - break; - } - } - - } - - } - - private static class MergeEntry { - - private Axis axis; - private BlockPos pos; - - public MergeEntry(Axis axis, BlockPos pos) { - this.axis = axis; - this.pos = pos; - } - - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof MergeEntry)) - return false; - - MergeEntry other = (MergeEntry) o; - return this.axis == other.axis && this.pos.equals(other.pos); - } - - @Override - public int hashCode() { - return this.pos.hashCode() * 31 + axis.ordinal(); - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/ChasingAABBOutline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/ChasingAABBOutline.java deleted file mode 100644 index 4c0b22ba4..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/ChasingAABBOutline.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; - -import net.minecraft.util.Mth; -import net.minecraft.world.phys.AABB; - -public class ChasingAABBOutline extends AABBOutline { - - AABB targetBB; - AABB prevBB; - - public ChasingAABBOutline(AABB bb) { - super(bb); - prevBB = bb.inflate(0); - targetBB = bb.inflate(0); - } - - public void target(AABB target) { - targetBB = target; - } - - @Override - public void tick() { - prevBB = bb; - setBounds(interpolateBBs(bb, targetBB, .5f)); - } - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - renderBB(ms, buffer, interpolateBBs(prevBB, bb, pt)); - } - - private static AABB interpolateBBs(AABB current, AABB target, float pt) { - return new AABB(Mth.lerp(pt, current.minX, target.minX), - Mth.lerp(pt, current.minY, target.minY), Mth.lerp(pt, current.minZ, target.minZ), - Mth.lerp(pt, current.maxX, target.maxX), Mth.lerp(pt, current.maxY, target.maxY), - Mth.lerp(pt, current.maxZ, target.maxZ)); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/LineOutline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/LineOutline.java deleted file mode 100644 index 7803dbe84..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/LineOutline.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; - -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec3; - -public class LineOutline extends Outline { - - protected Vec3 start = Vec3.ZERO; - protected Vec3 end = Vec3.ZERO; - - public LineOutline set(Vec3 start, Vec3 end) { - this.start = start; - this.end = end; - return this; - } - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - renderCuboidLine(ms, buffer, start, end); - } - - public static class EndChasingLineOutline extends LineOutline { - - float prevProgress = 0; - float progress = 0; - private boolean lockStart; - - public EndChasingLineOutline(boolean lockStart) { - this.lockStart = lockStart; - } - - @Override - public void tick() {} - - public EndChasingLineOutline setProgress(float progress) { - prevProgress = this.progress; - this.progress = progress; - return this; - } - - @Override - public LineOutline set(Vec3 start, Vec3 end) { - if (!end.equals(this.end)) - super.set(start, end); - return this; - } - - @Override - public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - float distanceToTarget = Mth.lerp(pt, prevProgress, progress); - if (!lockStart) - distanceToTarget = 1 - distanceToTarget; - Vec3 start = lockStart ? this.end : this.start; - Vec3 end = lockStart ? this.start : this.end; - - start = end.add(this.start.subtract(end) - .scale(distanceToTarget)); - renderCuboidLine(ms, buffer, start, end); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java deleted file mode 100644 index 8f0b7d62e..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outline.java +++ /dev/null @@ -1,248 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import java.util.Optional; - -import javax.annotation.Nullable; - -import com.jozufozu.flywheel.util.transform.TransformStack; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Matrix3f; -import com.simibubi.create.AllSpecialTextures; -import com.simibubi.create.foundation.render.RenderTypes; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.util.Mth; -import net.minecraft.world.phys.Vec3; - -public abstract class Outline { - - protected OutlineParams params; - protected Matrix3f transformNormals; // TODO: not used? - - public Outline() { - params = new OutlineParams(); - } - - public abstract void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt); - - public void tick() {} - - public OutlineParams getParams() { - return params; - } - - public void renderCuboidLine(PoseStack ms, SuperRenderTypeBuffer buffer, Vec3 start, Vec3 end) { - Vec3 diff = end.subtract(start); - float hAngle = AngleHelper.deg(Mth.atan2(diff.x, diff.z)); - float hDistance = (float) diff.multiply(1, 0, 1) - .length(); - float vAngle = AngleHelper.deg(Mth.atan2(hDistance, diff.y)) - 90; - ms.pushPose(); - TransformStack.cast(ms) - .translate(start) - .rotateY(hAngle).rotateX(vAngle); - renderAACuboidLine(ms, buffer, Vec3.ZERO, new Vec3(0, 0, diff.length())); - ms.popPose(); - } - - public void renderAACuboidLine(PoseStack ms, SuperRenderTypeBuffer buffer, Vec3 start, Vec3 end) { - float lineWidth = params.getLineWidth(); - if (lineWidth == 0) - return; - - VertexConsumer builder = buffer.getBuffer(RenderTypes.getOutlineSolid()); - - Vec3 diff = end.subtract(start); - if (diff.x + diff.y + diff.z < 0) { - Vec3 temp = start; - start = end; - end = temp; - diff = diff.scale(-1); - } - - Vec3 extension = diff.normalize() - .scale(lineWidth / 2); - Vec3 plane = VecHelper.axisAlingedPlaneOf(diff); - Direction face = Direction.getNearest(diff.x, diff.y, diff.z); - Axis axis = face.getAxis(); - - start = start.subtract(extension); - end = end.add(extension); - plane = plane.scale(lineWidth / 2); - - Vec3 a1 = plane.add(start); - Vec3 b1 = plane.add(end); - plane = VecHelper.rotate(plane, -90, axis); - Vec3 a2 = plane.add(start); - Vec3 b2 = plane.add(end); - plane = VecHelper.rotate(plane, -90, axis); - Vec3 a3 = plane.add(start); - Vec3 b3 = plane.add(end); - plane = VecHelper.rotate(plane, -90, axis); - Vec3 a4 = plane.add(start); - Vec3 b4 = plane.add(end); - - if (params.disableNormals) { - face = Direction.UP; - putQuad(ms, builder, b4, b3, b2, b1, face); - putQuad(ms, builder, a1, a2, a3, a4, face); - putQuad(ms, builder, a1, b1, b2, a2, face); - putQuad(ms, builder, a2, b2, b3, a3, face); - putQuad(ms, builder, a3, b3, b4, a4, face); - putQuad(ms, builder, a4, b4, b1, a1, face); - return; - } - - putQuad(ms, builder, b4, b3, b2, b1, face); - putQuad(ms, builder, a1, a2, a3, a4, face.getOpposite()); - Vec3 vec = a1.subtract(a4); - face = Direction.getNearest(vec.x, vec.y, vec.z); - putQuad(ms, builder, a1, b1, b2, a2, face); - vec = VecHelper.rotate(vec, -90, axis); - face = Direction.getNearest(vec.x, vec.y, vec.z); - putQuad(ms, builder, a2, b2, b3, a3, face); - vec = VecHelper.rotate(vec, -90, axis); - face = Direction.getNearest(vec.x, vec.y, vec.z); - putQuad(ms, builder, a3, b3, b4, a4, face); - vec = VecHelper.rotate(vec, -90, axis); - face = Direction.getNearest(vec.x, vec.y, vec.z); - putQuad(ms, builder, a4, b4, b1, a1, face); - } - - public void putQuad(PoseStack ms, VertexConsumer builder, Vec3 v1, Vec3 v2, Vec3 v3, Vec3 v4, - Direction normal) { - putQuadUV(ms, builder, v1, v2, v3, v4, 0, 0, 1, 1, normal); - } - - public void putQuadUV(PoseStack ms, VertexConsumer builder, Vec3 v1, Vec3 v2, Vec3 v3, Vec3 v4, float minU, - float minV, float maxU, float maxV, Direction normal) { - putVertex(ms, builder, v1, minU, minV, normal); - putVertex(ms, builder, v2, maxU, minV, normal); - putVertex(ms, builder, v3, maxU, maxV, normal); - putVertex(ms, builder, v4, minU, maxV, normal); - } - - protected void putVertex(PoseStack ms, VertexConsumer builder, Vec3 pos, float u, float v, Direction normal) { - putVertex(ms.last(), builder, (float) pos.x, (float) pos.y, (float) pos.z, u, v, normal); - } - - protected void putVertex(PoseStack.Pose pose, VertexConsumer builder, float x, float y, float z, float u, float v, Direction normal) { - Color rgb = params.rgb; - if (transformNormals == null) - transformNormals = pose.normal(); - - int xOffset = 0; - int yOffset = 0; - int zOffset = 0; - - if (normal != null) { - xOffset = normal.getStepX(); - yOffset = normal.getStepY(); - zOffset = normal.getStepZ(); - } - - builder.vertex(pose.pose(), x, y, z) - .color(rgb.getRedAsFloat(), rgb.getGreenAsFloat(), rgb.getBlueAsFloat(), rgb.getAlphaAsFloat() * params.alpha) - .uv(u, v) - .overlayCoords(OverlayTexture.NO_OVERLAY) - .uv2(params.lightMap) - .normal(pose.normal(), xOffset, yOffset, zOffset) - .endVertex(); - - transformNormals = null; - } - - public static class OutlineParams { - protected Optional faceTexture; - protected Optional hightlightedFaceTexture; - protected Direction highlightedFace; - protected boolean fadeLineWidth; - protected boolean disableCull; - protected boolean disableNormals; - protected float alpha; - protected int lightMap; - protected Color rgb; - private float lineWidth; - - public OutlineParams() { - faceTexture = hightlightedFaceTexture = Optional.empty(); - alpha = 1; - lineWidth = 1 / 32f; - fadeLineWidth = true; - rgb = Color.WHITE; - lightMap = LightTexture.FULL_BRIGHT; - } - - // builder - - public OutlineParams colored(int color) { - rgb = new Color(color, false); - return this; - } - - public OutlineParams colored(Color c) { - rgb = c.copy(); - return this; - } - - public OutlineParams lightMap(int light) { - lightMap = light; - return this; - } - - public OutlineParams lineWidth(float width) { - this.lineWidth = width; - return this; - } - - public OutlineParams withFaceTexture(AllSpecialTextures texture) { - this.faceTexture = Optional.ofNullable(texture); - return this; - } - - public OutlineParams clearTextures() { - return this.withFaceTextures(null, null); - } - - public OutlineParams withFaceTextures(AllSpecialTextures texture, AllSpecialTextures highlightTexture) { - this.faceTexture = Optional.ofNullable(texture); - this.hightlightedFaceTexture = Optional.ofNullable(highlightTexture); - return this; - } - - public OutlineParams highlightFace(@Nullable Direction face) { - highlightedFace = face; - return this; - } - - public OutlineParams disableNormals() { - disableNormals = true; - return this; - } - - public OutlineParams disableCull() { - disableCull = true; - return this; - } - - // getter - - public float getLineWidth() { - return fadeLineWidth ? alpha * lineWidth : lineWidth; - } - - public Direction getHighlightedFace() { - return highlightedFace; - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outliner.java b/src/main/java/com/simibubi/create/foundation/utility/outliner/Outliner.java deleted file mode 100644 index c6f061cec..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/outliner/Outliner.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.simibubi.create.foundation.utility.outliner; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Optional; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox; -import com.simibubi.create.foundation.utility.outliner.LineOutline.EndChasingLineOutline; -import com.simibubi.create.foundation.utility.outliner.Outline.OutlineParams; - -import net.minecraft.core.BlockPos; -import net.minecraft.util.Mth; -import net.minecraft.world.phys.AABB; -import net.minecraft.world.phys.Vec3; - -public class Outliner { - - private final Map outlines = Collections.synchronizedMap(new HashMap<>()); - private final Map outlinesView = Collections.unmodifiableMap(outlines); - - // Facade - - public OutlineParams showValueBox(Object slot, ValueBox box) { - outlines.put(slot, new OutlineEntry(box)); - return box.getParams(); - } - - public OutlineParams showLine(Object slot, Vec3 start, Vec3 end) { - if (!outlines.containsKey(slot)) { - LineOutline outline = new LineOutline(); - outlines.put(slot, new OutlineEntry(outline)); - } - OutlineEntry entry = outlines.get(slot); - entry.ticksTillRemoval = 1; - ((LineOutline) entry.outline).set(start, end); - return entry.outline.getParams(); - } - - public OutlineParams endChasingLine(Object slot, Vec3 start, Vec3 end, float chasingProgress, boolean lockStart) { - if (!outlines.containsKey(slot)) { - EndChasingLineOutline outline = new EndChasingLineOutline(lockStart); - outlines.put(slot, new OutlineEntry(outline)); - } - OutlineEntry entry = outlines.get(slot); - entry.ticksTillRemoval = 1; - ((EndChasingLineOutline) entry.outline).setProgress(chasingProgress) - .set(start, end); - return entry.outline.getParams(); - } - - public OutlineParams showAABB(Object slot, AABB bb, int ttl) { - createAABBOutlineIfMissing(slot, bb); - ChasingAABBOutline outline = getAndRefreshAABB(slot, ttl); - outline.prevBB = outline.targetBB = outline.bb = bb; - return outline.getParams(); - } - - public OutlineParams showAABB(Object slot, AABB bb) { - createAABBOutlineIfMissing(slot, bb); - ChasingAABBOutline outline = getAndRefreshAABB(slot); - outline.prevBB = outline.targetBB = outline.bb = bb; - return outline.getParams(); - } - - public OutlineParams chaseAABB(Object slot, AABB bb) { - createAABBOutlineIfMissing(slot, bb); - ChasingAABBOutline outline = getAndRefreshAABB(slot); - outline.targetBB = bb; - return outline.getParams(); - } - - public OutlineParams showCluster(Object slot, Iterable selection) { - BlockClusterOutline outline = new BlockClusterOutline(selection); - OutlineEntry entry = new OutlineEntry(outline); - outlines.put(slot, entry); - return entry.getOutline() - .getParams(); - } - - public void keep(Object slot) { - if (outlines.containsKey(slot)) - outlines.get(slot).ticksTillRemoval = 1; - } - - public void remove(Object slot) { - outlines.remove(slot); - } - - public Optional edit(Object slot) { - keep(slot); - if (outlines.containsKey(slot)) - return Optional.of(outlines.get(slot) - .getOutline() - .getParams()); - return Optional.empty(); - } - - public Map getOutlines() { - return outlinesView; - } - - // Utility - - private void createAABBOutlineIfMissing(Object slot, AABB bb) { - if (!outlines.containsKey(slot) || !(outlines.get(slot).outline instanceof AABBOutline)) { - ChasingAABBOutline outline = new ChasingAABBOutline(bb); - outlines.put(slot, new OutlineEntry(outline)); - } - } - - private ChasingAABBOutline getAndRefreshAABB(Object slot) { - OutlineEntry entry = outlines.get(slot); - entry.ticksTillRemoval = 1; - return (ChasingAABBOutline) entry.getOutline(); - } - - private ChasingAABBOutline getAndRefreshAABB(Object slot, int ttl) { - OutlineEntry entry = outlines.get(slot); - entry.ticksTillRemoval = ttl; - return (ChasingAABBOutline) entry.getOutline(); - } - - // Maintenance - - public void tickOutlines() { - Iterator iterator = outlines.values() - .iterator(); - while (iterator.hasNext()) { - OutlineEntry entry = iterator.next(); - entry.tick(); - if (!entry.isAlive()) - iterator.remove(); - } - } - - public void renderOutlines(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { - outlines.forEach((key, entry) -> { - Outline outline = entry.getOutline(); - OutlineParams params = outline.getParams(); - params.alpha = 1; - if (entry.isFading()) { - int prevTicks = entry.ticksTillRemoval + 1; - float fadeticks = OutlineEntry.fadeTicks; - float lastAlpha = prevTicks >= 0 ? 1 : 1 + (prevTicks / fadeticks); - float currentAlpha = 1 + (entry.ticksTillRemoval / fadeticks); - float alpha = Mth.lerp(pt, lastAlpha, currentAlpha); - - params.alpha = alpha * alpha * alpha; - if (params.alpha < 1 / 8f) - return; - } - outline.render(ms, buffer, pt); - }); - } - - public static class OutlineEntry { - - static final int fadeTicks = 8; - private Outline outline; - private int ticksTillRemoval; - - public OutlineEntry(Outline outline) { - this.outline = outline; - ticksTillRemoval = 1; - } - - public void tick() { - ticksTillRemoval--; - outline.tick(); - } - - public boolean isAlive() { - return ticksTillRemoval >= -fadeTicks; - } - - public boolean isFading() { - return ticksTillRemoval < 0; - } - - public Outline getOutline() { - return outline; - } - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/IPlacementHelper.java b/src/main/java/com/simibubi/create/foundation/utility/placement/IPlacementHelper.java deleted file mode 100644 index 9689da935..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/IPlacementHelper.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.simibubi.create.foundation.utility.placement; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import com.simibubi.create.CreateClient; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Vec3i; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; - -@MethodsReturnNonnullByDefault -public interface IPlacementHelper { - - /** - * used as an identifier in SuperGlueHandler to skip blocks placed by helpers - */ - BlockState ID = new BlockState(Blocks.AIR, null, null); - - /** - * @return a predicate that gets tested with the items held in the players hands
- * should return true if this placement helper is active with the given item - */ - Predicate getItemPredicate(); - - /** - * @return a predicate that gets tested with the blockstate the player is looking at
- * should return true if this placement helper is active with the given blockstate - */ - Predicate getStatePredicate(); - - /** - * - * @param player the player that activated the placement helper - * @param world the world that the placement helper got activated in - * @param state the Blockstate of the Block that the player is looking at or clicked on - * @param pos the position of the Block the player is looking at or clicked on - * @param ray the exact raytrace result - * - * @return the PlacementOffset object describing where to place the new block.
- * Use {@link PlacementOffset#fail} when no new position could be found.
- * Use {@link PlacementOffset#success(Vec3i)} with the new BlockPos to indicate a success - * and call {@link PlacementOffset#withTransform(Function)} if the blocks default state has to be modified before it is placed - */ - PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, BlockHitResult ray); - - //sets the offset's ghost state with the default state of the held block item, this is used in PlacementHelpers and can be ignored in most cases - default PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, BlockHitResult ray, ItemStack heldItem) { - PlacementOffset offset = getOffset(player, world, state, pos, ray); - if (heldItem.getItem() instanceof BlockItem) { - BlockItem blockItem = (BlockItem) heldItem.getItem(); - offset = offset.withGhostState(blockItem.getBlock().defaultBlockState()); - } - return offset; - } - - /** - * overwrite this method if your placement helper needs a different rendering than the default ghost state - * - * @param pos the position of the Block the player is looking at or clicked on - * @param state the Blockstate of the Block that the player is looking at or clicked on - * @param ray the exact raytrace result - * @param offset the PlacementOffset returned by {@link #getOffset(Player, Level, BlockState, BlockPos, BlockHitResult)}
- * the offset will always be successful if this method is called - */ - default void renderAt(BlockPos pos, BlockState state, BlockHitResult ray, PlacementOffset offset) { - displayGhost(offset); - } - - //RIP - static void renderArrow(Vec3 center, Vec3 target, Direction arrowPlane) { - renderArrow(center, target, arrowPlane, 1D); - } - static void renderArrow(Vec3 center, Vec3 target, Direction arrowPlane, double distanceFromCenter) { - Vec3 direction = target.subtract(center).normalize(); - Vec3 facing = Vec3.atLowerCornerOf(arrowPlane.getNormal()); - Vec3 start = center.add(direction); - Vec3 offset = direction.scale(distanceFromCenter - 1); - Vec3 offsetA = direction.cross(facing).normalize().scale(.25); - Vec3 offsetB = facing.cross(direction).normalize().scale(.25); - Vec3 endA = center.add(direction.scale(.75)).add(offsetA); - Vec3 endB = center.add(direction.scale(.75)).add(offsetB); - CreateClient.OUTLINER.showLine("placementArrowA" + center + target, start.add(offset), endA.add(offset)).lineWidth(1 / 16f); - CreateClient.OUTLINER.showLine("placementArrowB" + center + target, start.add(offset), endB.add(offset)).lineWidth(1 / 16f); - } - - default void displayGhost(PlacementOffset offset) { - if (!offset.hasGhostState()) - return; - - CreateClient.GHOST_BLOCKS.showGhostState(this, offset.getTransform().apply(offset.getGhostState())) - .at(offset.getBlockPos()) - .breathingAlpha(); - } - - static List orderedByDistanceOnlyAxis(BlockPos pos, Vec3 hit, Direction.Axis axis) { - return orderedByDistance(pos, hit, dir -> dir.getAxis() == axis); - } - - static List orderedByDistanceOnlyAxis(BlockPos pos, Vec3 hit, Direction.Axis axis, Predicate includeDirection) { - return orderedByDistance(pos, hit, ((Predicate) dir -> dir.getAxis() == axis).and(includeDirection)); - } - - static List orderedByDistanceExceptAxis(BlockPos pos, Vec3 hit, Direction.Axis axis) { - return orderedByDistance(pos, hit, dir -> dir.getAxis() != axis); - } - - static List orderedByDistanceExceptAxis(BlockPos pos, Vec3 hit, Direction.Axis axis, Predicate includeDirection) { - return orderedByDistance(pos, hit, ((Predicate) dir -> dir.getAxis() != axis).and(includeDirection)); - } - - static List orderedByDistanceExceptAxis(BlockPos pos, Vec3 hit, Direction.Axis first, Direction.Axis second) { - return orderedByDistanceExceptAxis(pos, hit, first, d -> d.getAxis() != second); - } - - static List orderedByDistanceExceptAxis(BlockPos pos, Vec3 hit, Direction.Axis first, Direction.Axis second, Predicate includeDirection) { - return orderedByDistanceExceptAxis(pos, hit, first, ((Predicate) d -> d.getAxis() != second).and(includeDirection)); - } - - static List orderedByDistance(BlockPos pos, Vec3 hit) { - return orderedByDistance(pos, hit, _$ -> true); - } - - static List orderedByDistance(BlockPos pos, Vec3 hit, Predicate includeDirection) { - Vec3 centerToHit = hit.subtract(VecHelper.getCenterOf(pos)); - return Arrays.stream(Iterate.directions) - .filter(includeDirection) - .map(dir -> Pair.of(dir, Vec3.atLowerCornerOf(dir.getNormal()).distanceTo(centerToHit))) - .sorted(Comparator.comparingDouble(Pair::getSecond)) - .map(Pair::getFirst) - .collect(Collectors.toList()); - } - - static List orderedByDistance(BlockPos pos, Vec3 hit, Collection directions) { - Vec3 centerToHit = hit.subtract(VecHelper.getCenterOf(pos)); - return directions.stream() - .map(dir -> Pair.of(dir, Vec3.atLowerCornerOf(dir.getNormal()).distanceTo(centerToHit))) - .sorted(Comparator.comparingDouble(Pair::getSecond)) - .map(Pair::getFirst) - .toList(); - } - - default boolean matchesItem(ItemStack item) { - return getItemPredicate().test(item); - } - - default boolean matchesState(BlockState state) { - return getStatePredicate().test(state); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java deleted file mode 100644 index e3427f52c..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ /dev/null @@ -1,323 +0,0 @@ -package com.simibubi.create.foundation.utility.placement; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.math.Matrix4f; -import com.mojang.math.Vector3f; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.config.CClient; -import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber -public class PlacementHelpers { - - private static final List helpers = new ArrayList<>(); - private static int animationTick = 0; - private static final LerpedFloat angle = LerpedFloat.angular() - .chase(0, 0.25f, Chaser.EXP); - private static BlockPos target = null; - private static BlockPos lastTarget = null; - - public static int register(IPlacementHelper helper) { - helpers.add(helper); - return helpers.size() - 1; - } - - public static IPlacementHelper get(int id) { - if (id < 0 || id >= helpers.size()) - throw new ArrayIndexOutOfBoundsException("id " + id + " for placement helper not known"); - - return helpers.get(id); - } - - @OnlyIn(Dist.CLIENT) - public static void tick() { - setTarget(null); - checkHelpers(); - - if (target == null) { - if (animationTick > 0) - animationTick = Math.max(animationTick - 2, 0); - - return; - } - - if (animationTick < 10) - animationTick++; - - } - - @OnlyIn(Dist.CLIENT) - private static void checkHelpers() { - Minecraft mc = Minecraft.getInstance(); - ClientLevel world = mc.level; - - if (world == null) - return; - - if (!(mc.hitResult instanceof BlockHitResult)) - return; - - BlockHitResult ray = (BlockHitResult) mc.hitResult; - - if (mc.player == null) - return; - - if (mc.player.isShiftKeyDown())// for now, disable all helpers when sneaking TODO add helpers that respect - // sneaking but still show position - return; - - for (InteractionHand hand : InteractionHand.values()) { - - ItemStack heldItem = mc.player.getItemInHand(hand); - List filteredForHeldItem = helpers.stream() - .filter(helper -> helper.matchesItem(heldItem)) - .collect(Collectors.toList()); - if (filteredForHeldItem.isEmpty()) - continue; - - BlockPos pos = ray.getBlockPos(); - BlockState state = world.getBlockState(pos); - - List filteredForState = filteredForHeldItem.stream() - .filter(helper -> helper.matchesState(state)) - .collect(Collectors.toList()); - if (filteredForState.isEmpty()) - continue; - - boolean atLeastOneMatch = false; - for (IPlacementHelper h : filteredForState) { - PlacementOffset offset = h.getOffset(mc.player, world, state, pos, ray, heldItem); - - if (offset.isSuccessful()) { - h.renderAt(pos, state, ray, offset); - setTarget(offset.getBlockPos()); - atLeastOneMatch = true; - break; - } - - } - - // at least one helper activated, no need to check the offhand if we are still - // in the mainhand - if (atLeastOneMatch) - return; - - } - } - - static void setTarget(BlockPos target) { - PlacementHelpers.target = target; - - if (target == null) - return; - - if (lastTarget == null) { - lastTarget = target; - return; - } - - if (!lastTarget.equals(target)) - lastTarget = target; - } - - @SubscribeEvent - @OnlyIn(Dist.CLIENT) - public static void afterRenderOverlayLayer(RenderGameOverlayEvent.PostLayer event) { - if (event.getOverlay() != ForgeIngameGui.CROSSHAIR_ELEMENT) - return; - - Minecraft mc = Minecraft.getInstance(); - Player player = mc.player; - - if (player != null && animationTick > 0) { - Window res = event.getWindow(); - - float screenY = res.getGuiScaledHeight() / 2f; - float screenX = res.getGuiScaledWidth() / 2f; - float progress = getCurrentAlpha(); - - drawDirectionIndicator(event.getMatrixStack(), event.getPartialTicks(), screenX, screenY, progress); - } - } - - public static float getCurrentAlpha() { - return Math.min(animationTick / 10f/* + event.getPartialTicks() */, 1f); - } - - @OnlyIn(Dist.CLIENT) - private static void drawDirectionIndicator(PoseStack ms, float partialTicks, float centerX, float centerY, - float progress) { - float r = .8f; - float g = .8f; - float b = .8f; - float a = progress * progress; - - Vec3 projTarget = VecHelper.projectToPlayerView(VecHelper.getCenterOf(lastTarget), partialTicks); - - Vec3 target = new Vec3(projTarget.x, projTarget.y, 0); - if (projTarget.z > 0) - target = target.reverse(); - - Vec3 norm = target.normalize(); - Vec3 ref = new Vec3(0, 1, 0); - float targetAngle = AngleHelper.deg(Math.acos(norm.dot(ref))); - - if (norm.x < 0) - targetAngle = 360 - targetAngle; - - if (animationTick < 10) - angle.setValue(targetAngle); - - angle.chase(targetAngle, .25f, Chaser.EXP); - angle.tickChaser(); - - float snapSize = 22.5f; - float snappedAngle = (snapSize * Math.round(angle.getValue(0f) / snapSize)) % 360f; - - float length = 10; - - CClient.PlacementIndicatorSetting mode = AllConfigs.CLIENT.placementIndicator.get(); - if (mode == CClient.PlacementIndicatorSetting.TRIANGLE) - fadedArrow(ms, centerX, centerY, r, g, b, a, length, snappedAngle); - else if (mode == CClient.PlacementIndicatorSetting.TEXTURE) - textured(ms, centerX, centerY, a, snappedAngle); - } - - private static void fadedArrow(PoseStack ms, float centerX, float centerY, float r, float g, float b, float a, - float length, float snappedAngle) { - RenderSystem.disableTexture(); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - RenderSystem.setShader(GameRenderer::getPositionColorShader); - - ms.pushPose(); - ms.translate(centerX, centerY, 5); - ms.mulPose(Vector3f.ZP.rotationDegrees(angle.getValue(0))); - // RenderSystem.rotatef(snappedAngle, 0, 0, 1); - double scale = AllConfigs.CLIENT.indicatorScale.get(); - ms.scale((float) scale, (float) scale, 1); - - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder bufferbuilder = tessellator.getBuilder(); - bufferbuilder.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); - - Matrix4f mat = ms.last() - .pose(); - - bufferbuilder.vertex(mat, 0, -(10 + length), 0) - .color(r, g, b, a) - .endVertex(); - - bufferbuilder.vertex(mat, -9, -3, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, -6, -6, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, -3, -8, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, 0, -8.5f, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, 3, -8, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, 6, -6, 0) - .color(r, g, b, 0f) - .endVertex(); - bufferbuilder.vertex(mat, 9, -3, 0) - .color(r, g, b, 0f) - .endVertex(); - - tessellator.end(); - RenderSystem.disableBlend(); - RenderSystem.enableTexture(); - ms.popPose(); - } - - @OnlyIn(Dist.CLIENT) - public static void textured(PoseStack ms, float centerX, float centerY, float alpha, float snappedAngle) { - RenderSystem.enableTexture(); - AllGuiTextures.PLACEMENT_INDICATOR_SHEET.bind(); - RenderSystem.enableDepthTest(); - RenderSystem.enableBlend(); - RenderSystem.defaultBlendFunc(); - RenderSystem.setShader(GameRenderer::getPositionColorTexShader); - - ms.pushPose(); - ms.translate(centerX, centerY, 50); - float scale = AllConfigs.CLIENT.indicatorScale.get() - .floatValue() * .75f; - ms.scale(scale, scale, 1); - ms.scale(12, 12, 1); - - float index = snappedAngle / 22.5f; - float tex_size = 16f / 256f; - - float tx = 0; - float ty = index * tex_size; - float tw = 1f; - float th = tex_size; - - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder buffer = tessellator.getBuilder(); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX); - - Matrix4f mat = ms.last() - .pose(); - buffer.vertex(mat, -1, -1, 0) - .color(1f, 1f, 1f, alpha) - .uv(tx, ty) - .endVertex(); - buffer.vertex(mat, -1, 1, 0) - .color(1f, 1f, 1f, alpha) - .uv(tx, ty + th) - .endVertex(); - buffer.vertex(mat, 1, 1, 0) - .color(1f, 1f, 1f, alpha) - .uv(tx + tw, ty + th) - .endVertex(); - buffer.vertex(mat, 1, -1, 0) - .color(1f, 1f, 1f, alpha) - .uv(tx + tw, ty) - .endVertex(); - - tessellator.end(); - - RenderSystem.disableBlend(); - ms.popPose(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java deleted file mode 100644 index 912dde271..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.simibubi.create.foundation.utility.placement; - -import java.util.function.Function; - -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Vec3i; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundSource; -import net.minecraft.stats.Stats; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.BlockSnapshot; -import net.minecraftforge.event.world.BlockEvent; - -public class PlacementOffset { - - private final boolean success; - private Vec3i pos; - private Function stateTransform; - private BlockState ghostState; - - private PlacementOffset(boolean success) { - this.success = success; - this.pos = BlockPos.ZERO; - this.stateTransform = Function.identity(); - this.ghostState = null; - } - - public static PlacementOffset fail() { - return new PlacementOffset(false); - } - - public static PlacementOffset success() { - return new PlacementOffset(true); - } - - public static PlacementOffset success(Vec3i pos) { - return success().at(pos); - } - - public static PlacementOffset success(Vec3i pos, Function transform) { - return success().at(pos).withTransform(transform); - } - - public PlacementOffset at(Vec3i pos) { - this.pos = pos; - return this; - } - - public PlacementOffset withTransform(Function stateTransform) { - this.stateTransform = stateTransform; - return this; - } - - public PlacementOffset withGhostState(BlockState ghostState) { - this.ghostState = ghostState; - return this; - } - - public boolean isSuccessful() { - return success; - } - - public Vec3i getPos() { - return pos; - } - - public BlockPos getBlockPos() { - if (pos instanceof BlockPos) - return (BlockPos) pos; - - return new BlockPos(pos); - } - - public Function getTransform() { - return stateTransform; - } - - public boolean hasGhostState() { - return ghostState != null; - } - - public BlockState getGhostState() { - return ghostState; - } - - public boolean isReplaceable(Level world) { - if (!success) - return false; - - return world.getBlockState(new BlockPos(pos)).getMaterial().isReplaceable(); - } - - public InteractionResult placeInWorld(Level world, BlockItem blockItem, Player player, InteractionHand hand, BlockHitResult ray) { - - if (!isReplaceable(world)) - return InteractionResult.PASS; - - if (world.isClientSide) - return InteractionResult.SUCCESS; - - UseOnContext context = new UseOnContext(player, hand, ray); - BlockPos newPos = new BlockPos(pos); - ItemStack stackBefore = player.getItemInHand(hand) - .copy(); - - if (!world.mayInteract(player, newPos)) - return InteractionResult.PASS; - - BlockState state = stateTransform.apply(blockItem.getBlock().defaultBlockState()); - if (state.hasProperty(BlockStateProperties.WATERLOGGED)) { - FluidState fluidState = world.getFluidState(newPos); - state = state.setValue(BlockStateProperties.WATERLOGGED, fluidState.getType() == Fluids.WATER); - } - - BlockSnapshot snapshot = BlockSnapshot.create(world.dimension(), world, newPos); - world.setBlockAndUpdate(newPos, state); - - BlockEvent.EntityPlaceEvent event = new BlockEvent.EntityPlaceEvent(snapshot, IPlacementHelper.ID, player); - if (MinecraftForge.EVENT_BUS.post(event)) { - snapshot.restore(true, false); - return InteractionResult.FAIL; - } - - BlockState newState = world.getBlockState(newPos); - SoundType soundtype = newState.getSoundType(world, newPos, player); - world.playSound(null, newPos, soundtype.getPlaceSound(), SoundSource.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); - - player.awardStat(Stats.ITEM_USED.get(blockItem)); - newState.getBlock() - .setPlacedBy(world, newPos, newState, player, stackBefore); - - if (player instanceof ServerPlayer) - CriteriaTriggers.PLACED_BLOCK.trigger((ServerPlayer) player, newPos, context.getItemInHand()); - - if (!player.isCreative()) - context.getItemInHand().shrink(1); - - return InteractionResult.SUCCESS; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/util/PoleHelper.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PoleHelper.java similarity index 93% rename from src/main/java/com/simibubi/create/foundation/utility/placement/util/PoleHelper.java rename to src/main/java/com/simibubi/create/foundation/utility/placement/PoleHelper.java index dade69a27..9e0e2f9ab 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/util/PoleHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PoleHelper.java @@ -1,4 +1,4 @@ -package com.simibubi.create.foundation.utility.placement.util; +package com.simibubi.create.foundation.utility.placement; import java.util.List; import java.util.function.Function; @@ -6,9 +6,9 @@ import java.util.function.Predicate; import com.simibubi.create.content.curiosities.tools.ExtendoGripItem; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.utility.placement.IPlacementHelper; -import com.simibubi.create.foundation.utility.placement.PlacementOffset; +import net.createmod.catnip.utility.placement.IPlacementHelper; +import net.createmod.catnip.utility.placement.PlacementOffset; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyLevelEntityGetter.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyLevelEntityGetter.java deleted file mode 100644 index 56354294c..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyLevelEntityGetter.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.Collections; -import java.util.UUID; -import java.util.function.Consumer; - -import net.minecraft.world.level.entity.EntityAccess; -import net.minecraft.world.level.entity.EntityTypeTest; -import net.minecraft.world.level.entity.LevelEntityGetter; -import net.minecraft.world.phys.AABB; - -public class DummyLevelEntityGetter implements LevelEntityGetter { - - @Override - public T get(int p_156931_) { - return null; - } - - @Override - public T get(UUID pUuid) { - return null; - } - - @Override - public Iterable getAll() { - return Collections.emptyList(); - } - - @Override - public void get(EntityTypeTest p_156935_, Consumer p_156936_) { - } - - @Override - public void get(AABB p_156937_, Consumer p_156938_) { - } - - @Override - public void get(EntityTypeTest p_156932_, AABB p_156933_, Consumer p_156934_) { - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyStatusListener.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyStatusListener.java deleted file mode 100644 index b54485931..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/DummyStatusListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import javax.annotation.Nullable; - -import net.minecraft.server.level.progress.ChunkProgressListener; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.chunk.ChunkStatus; - -public class DummyStatusListener implements ChunkProgressListener { - - @Override - public void updateSpawnPos(ChunkPos pCenter) {} - - @Override - public void onStatusChange(ChunkPos pChunkPosition, @Nullable ChunkStatus pNewStatus) {} - - @Override - public void start() {} - - @Override - public void stop() {} - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationServerWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationServerWorld.java deleted file mode 100644 index ad855a7a7..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/PlacementSimulationServerWorld.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.HashMap; -import java.util.function.Predicate; - -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; - -public class PlacementSimulationServerWorld extends WrappedServerWorld { - public HashMap blocksAdded; - - public PlacementSimulationServerWorld(ServerLevel wrapped) { - super(wrapped); - blocksAdded = new HashMap<>(); - } - - public void clear() { - blocksAdded.clear(); - } - - @Override - public boolean setBlock(BlockPos pos, BlockState newState, int flags) { - blocksAdded.put(pos.immutable(), newState); - return true; - } - - @Override - public boolean setBlockAndUpdate(BlockPos pos, BlockState state) { - return setBlock(pos, state, 0); - } - - @Override - public boolean isStateAtPosition(BlockPos pos, Predicate condition) { - return condition.test(getBlockState(pos)); - } - - @Override - public boolean isLoaded(BlockPos pos) { - return true; - } - - @Override - public boolean isAreaLoaded(BlockPos center, int range) { - return true; - } - - @Override - public BlockState getBlockState(BlockPos pos) { - if (blocksAdded.containsKey(pos)) - return blocksAdded.get(pos); - return Blocks.AIR.defaultBlockState(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/RayTraceWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/RayTraceWorld.java deleted file mode 100644 index cc6d567c0..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/RayTraceWorld.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.function.BiFunction; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.FluidState; - -public class RayTraceWorld implements BlockGetter { - - private final LevelAccessor template; - private final BiFunction stateGetter; - - public RayTraceWorld(LevelAccessor template, BiFunction stateGetter) { - this.template = template; - this.stateGetter = stateGetter; - } - - @Override - public BlockEntity getBlockEntity(BlockPos pos) { - return template.getBlockEntity(pos); - } - - @Override - public BlockState getBlockState(BlockPos pos) { - return stateGetter.apply(pos, template.getBlockState(pos)); - } - - @Override - public FluidState getFluidState(BlockPos pos) { - return template.getFluidState(pos); - } - - @Override - public int getHeight() { - return template.getHeight(); - } - - @Override - public int getMinBuildHeight() { - return template.getMinBuildHeight(); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedClientWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedClientWorld.java deleted file mode 100644 index fb8025832..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedClientWorld.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.List; - -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.ai.targeting.TargetingConditions; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.ColorResolver; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LightLayer; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.FluidState; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -@SuppressWarnings("deprecation") -@ParametersAreNonnullByDefault -public class WrappedClientWorld extends ClientLevel { - private static final Minecraft mc = Minecraft.getInstance(); - protected Level world; - - private WrappedClientWorld(Level world) { - super(mc.getConnection(), mc.level.getLevelData(), world.dimension(), world.dimensionTypeRegistration(), - mc.getConnection().serverChunkRadius, mc.level.getServerSimulationDistance(), world.getProfilerSupplier(), - mc.levelRenderer, world.isDebug(), world.getBiomeManager().biomeZoomSeed); - this.world = world; - } - - public static WrappedClientWorld of(Level world) { - return new WrappedClientWorld(world); - } - - @Override - public boolean hasChunkAt(BlockPos pos) { - return world.hasChunkAt(pos); - } - - @Override - public boolean isLoaded(BlockPos pos) { - return world.isLoaded(pos); - } - - @Override - public BlockState getBlockState(BlockPos pos) { - return world.getBlockState(pos); - } - - // FIXME: blockstate#getCollisionShape with WrappedClientWorld gives unreliable - // data (maybe) - - @Override - public int getBrightness(LightLayer type, BlockPos pos) { - return world.getBrightness(type, pos); - } - - @Override - public int getLightEmission(BlockPos pos) { - return world.getLightEmission(pos); - } - - @Override - public FluidState getFluidState(BlockPos pos) { - return world.getFluidState(pos); - } - - @Nullable - @Override - public T getNearestEntity(List p_217361_1_, TargetingConditions p_217361_2_, - @Nullable LivingEntity p_217361_3_, double p_217361_4_, double p_217361_6_, double p_217361_8_) { - return world.getNearestEntity(p_217361_1_, p_217361_2_, p_217361_3_, p_217361_4_, p_217361_6_, p_217361_8_); - } - - @Override - public int getBlockTint(BlockPos p_225525_1_, ColorResolver p_225525_2_) { - return world.getBlockTint(p_225525_1_, p_225525_2_); - } - - // FIXME: Emissive Lighting might not light stuff properly - - @Override - public void addParticle(ParticleOptions p_195594_1_, double p_195594_2_, double p_195594_4_, double p_195594_6_, - double p_195594_8_, double p_195594_10_, double p_195594_12_) { - world.addParticle(p_195594_1_, p_195594_2_, p_195594_4_, p_195594_6_, p_195594_8_, p_195594_10_, p_195594_12_); - } - - @Override - public void addParticle(ParticleOptions p_195590_1_, boolean p_195590_2_, double p_195590_3_, double p_195590_5_, - double p_195590_7_, double p_195590_9_, double p_195590_11_, double p_195590_13_) { - world.addParticle(p_195590_1_, p_195590_2_, p_195590_3_, p_195590_5_, p_195590_7_, p_195590_9_, p_195590_11_, - p_195590_13_); - } - - @Override - public void addAlwaysVisibleParticle(ParticleOptions p_195589_1_, double p_195589_2_, double p_195589_4_, - double p_195589_6_, double p_195589_8_, double p_195589_10_, double p_195589_12_) { - world.addAlwaysVisibleParticle(p_195589_1_, p_195589_2_, p_195589_4_, p_195589_6_, p_195589_8_, p_195589_10_, - p_195589_12_); - } - - @Override - public void addAlwaysVisibleParticle(ParticleOptions p_217404_1_, boolean p_217404_2_, double p_217404_3_, - double p_217404_5_, double p_217404_7_, double p_217404_9_, double p_217404_11_, double p_217404_13_) { - world.addAlwaysVisibleParticle(p_217404_1_, p_217404_2_, p_217404_3_, p_217404_5_, p_217404_7_, p_217404_9_, - p_217404_11_, p_217404_13_); - } - - @Override - public void playLocalSound(double p_184134_1_, double p_184134_3_, double p_184134_5_, SoundEvent p_184134_7_, - SoundSource p_184134_8_, float p_184134_9_, float p_184134_10_, boolean p_184134_11_) { - world.playLocalSound(p_184134_1_, p_184134_3_, p_184134_5_, p_184134_7_, p_184134_8_, p_184134_9_, p_184134_10_, - p_184134_11_); - } - - @Override - public void playSound(@Nullable Player p_184148_1_, double p_184148_2_, double p_184148_4_, double p_184148_6_, - SoundEvent p_184148_8_, SoundSource p_184148_9_, float p_184148_10_, float p_184148_11_) { - world.playSound(p_184148_1_, p_184148_2_, p_184148_4_, p_184148_6_, p_184148_8_, p_184148_9_, p_184148_10_, - p_184148_11_); - } - - @Nullable - @Override - public BlockEntity getBlockEntity(BlockPos p_175625_1_) { - return world.getBlockEntity(p_175625_1_); - } - - public Level getWrappedWorld() { - return world; - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java deleted file mode 100644 index 9996c4ddb..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.Collections; -import java.util.List; - -import javax.annotation.ParametersAreNonnullByDefault; - -import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.Util; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.server.level.ServerChunkCache; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.crafting.RecipeManager; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.saveddata.maps.MapItemSavedData; -import net.minecraft.world.level.storage.ServerLevelData; -import net.minecraft.world.ticks.LevelTicks; - -@ParametersAreNonnullByDefault -@MethodsReturnNonnullByDefault -public class WrappedServerWorld extends ServerLevel { - - protected Level world; - - public WrappedServerWorld(Level world) { - super(world.getServer(), Util.backgroundExecutor(), world.getServer().storageSource, - (ServerLevelData) world.getLevelData(), world.dimension(), world.dimensionTypeRegistration(), - new DummyStatusListener(), ((ServerChunkCache) world.getChunkSource()).getGenerator(), world.isDebug(), - world.getBiomeManager().biomeZoomSeed, Collections.emptyList(), false); - this.world = world; - } - - @Override - public float getSunAngle(float p_72826_1_) { - return 0; - } - - @Override - public int getMaxLocalRawBrightness(BlockPos pos) { - return 15; - } - - @Override - public void sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags) { - world.sendBlockUpdated(pos, oldState, newState, flags); - } - - @Override - public LevelTicks getBlockTicks() { - return super.getBlockTicks(); - } - - @Override - public LevelTicks getFluidTicks() { - return super.getFluidTicks(); - } - - @Override - public void levelEvent(Player player, int type, BlockPos pos, int data) {} - - @Override - public List players() { - return Collections.emptyList(); - } - - @Override - public void playSound(Player player, double x, double y, double z, SoundEvent soundIn, SoundSource category, - float volume, float pitch) {} - - @Override - public void playSound(Player p_217384_1_, Entity p_217384_2_, SoundEvent p_217384_3_, SoundSource p_217384_4_, - float p_217384_5_, float p_217384_6_) {} - - @Override - public Entity getEntity(int id) { - return null; - } - - @Override - public MapItemSavedData getMapData(String mapName) { - return null; - } - - @Override - public boolean addFreshEntity(Entity entityIn) { - entityIn.level = world; - return world.addFreshEntity(entityIn); - } - - @Override - public void setMapData(String mapId, MapItemSavedData mapDataIn) {} - - @Override - public int getFreeMapId() { - return 0; - } - - @Override - public void destroyBlockProgress(int breakerId, BlockPos pos, int progress) {} - - @Override - public RecipeManager getRecipeManager() { - return world.getRecipeManager(); - } - - @Override - public Holder getUncachedNoiseBiome(int p_225604_1_, int p_225604_2_, int p_225604_3_) { - return world.getUncachedNoiseBiome(p_225604_1_, p_225604_2_, p_225604_3_); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java deleted file mode 100644 index fe0e82d5d..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.simibubi.create.foundation.utility.worldWrappers; - -import java.util.Collections; -import java.util.List; -import java.util.function.Predicate; - -import javax.annotation.Nullable; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Holder; -import net.minecraft.core.RegistryAccess; -import net.minecraft.core.SectionPos; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.crafting.RecipeManager; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.ChunkSource; -import net.minecraft.world.level.entity.LevelEntityGetter; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.lighting.LevelLightEngine; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.saveddata.maps.MapItemSavedData; -import net.minecraft.world.level.storage.WritableLevelData; -import net.minecraft.world.scores.Scoreboard; -import net.minecraft.world.ticks.LevelTickAccess; - -public class WrappedWorld extends Level { - - protected Level world; - protected ChunkSource chunkSource; - - protected LevelEntityGetter entityGetter = new DummyLevelEntityGetter<>(); - - public WrappedWorld(Level world) { - super((WritableLevelData) world.getLevelData(), world.dimension(), world.dimensionTypeRegistration(), - world::getProfiler, world.isClientSide, world.isDebug(), 0); - this.world = world; - } - - public void setChunkSource(ChunkSource source) { - this.chunkSource = source; - } - - public Level getLevel() { - return world; - } - - @Override - public LevelLightEngine getLightEngine() { - return world.getLightEngine(); - } - - @Override - public BlockState getBlockState(@Nullable BlockPos pos) { - return world.getBlockState(pos); - } - - @Override - public boolean isStateAtPosition(BlockPos p_217375_1_, Predicate p_217375_2_) { - return world.isStateAtPosition(p_217375_1_, p_217375_2_); - } - - @Override - @Nullable - public BlockEntity getBlockEntity(BlockPos pos) { - return world.getBlockEntity(pos); - } - - @Override - public boolean setBlock(BlockPos pos, BlockState newState, int flags) { - return world.setBlock(pos, newState, flags); - } - - @Override - public int getMaxLocalRawBrightness(BlockPos pos) { - return 15; - } - - @Override - public void sendBlockUpdated(BlockPos pos, BlockState oldState, BlockState newState, int flags) { - world.sendBlockUpdated(pos, oldState, newState, flags); - } - - @Override - public LevelTickAccess getBlockTicks() { - return world.getBlockTicks(); - } - - @Override - public LevelTickAccess getFluidTicks() { - return world.getFluidTicks(); - } - - @Override - public ChunkSource getChunkSource() { - return chunkSource != null ? chunkSource : world.getChunkSource(); - } - - @Override - public void levelEvent(@Nullable Player player, int type, BlockPos pos, int data) {} - - @Override - public List players() { - return Collections.emptyList(); - } - - @Override - public void playSound(@Nullable Player player, double x, double y, double z, SoundEvent soundIn, - SoundSource category, float volume, float pitch) {} - - @Override - public void playSound(@Nullable Player p_217384_1_, Entity p_217384_2_, SoundEvent p_217384_3_, - SoundSource p_217384_4_, float p_217384_5_, float p_217384_6_) {} - - @Override - public Entity getEntity(int id) { - return null; - } - - @Override - public MapItemSavedData getMapData(String mapName) { - return null; - } - - @Override - public boolean addFreshEntity(Entity entityIn) { - entityIn.level = world; - return world.addFreshEntity(entityIn); - } - - @Override - public void setMapData(String pMapId, MapItemSavedData pData) {} - - @Override - public int getFreeMapId() { - return world.getFreeMapId(); - } - - @Override - public void destroyBlockProgress(int breakerId, BlockPos pos, int progress) {} - - @Override - public Scoreboard getScoreboard() { - return world.getScoreboard(); - } - - @Override - public RecipeManager getRecipeManager() { - return world.getRecipeManager(); - } - - @Override - public Holder getUncachedNoiseBiome(int p_225604_1_, int p_225604_2_, int p_225604_3_) { - return world.getUncachedNoiseBiome(p_225604_1_, p_225604_2_, p_225604_3_); - } - - @Override - public RegistryAccess registryAccess() { - return world.registryAccess(); - } - - @Override - public float getShade(Direction p_230487_1_, boolean p_230487_2_) { - return world.getShade(p_230487_1_, p_230487_2_); - } - - @Override - public void updateNeighbourForOutputSignal(BlockPos p_175666_1_, Block p_175666_2_) {} - - @Override - public void gameEvent(Entity pEntity, GameEvent pEvent, BlockPos pPos) {} - - @Override - public String gatherChunkSourceStats() { - return world.gatherChunkSourceStats(); - } - - @Override - protected LevelEntityGetter getEntities() { - return entityGetter; - } - - // Intentionally copied from LevelHeightAccessor. Workaround for issues caused - // when other mods (such as Lithium) - // override the vanilla implementations in ways which cause WrappedWorlds to - // return incorrect, default height info. - // WrappedWorld subclasses should implement their own getMinBuildHeight and - // getHeight overrides where they deviate - // from the defaults for their dimension. - - @Override - public int getMaxBuildHeight() { - return this.getMinBuildHeight() + this.getHeight(); - } - - @Override - public int getSectionsCount() { - return this.getMaxSection() - this.getMinSection(); - } - - @Override - public int getMinSection() { - return SectionPos.blockToSectionCoord(this.getMinBuildHeight()); - } - - @Override - public int getMaxSection() { - return SectionPos.blockToSectionCoord(this.getMaxBuildHeight() - 1) + 1; - } - - @Override - public boolean isOutsideBuildHeight(BlockPos pos) { - return this.isOutsideBuildHeight(pos.getY()); - } - - @Override - public boolean isOutsideBuildHeight(int y) { - return y < this.getMinBuildHeight() || y >= this.getMaxBuildHeight(); - } - - @Override - public int getSectionIndex(int y) { - return this.getSectionIndexFromSectionY(SectionPos.blockToSectionCoord(y)); - } - - @Override - public int getSectionIndexFromSectionY(int sectionY) { - return sectionY - this.getMinSection(); - } - - @Override - public int getSectionYFromSectionIndex(int sectionIndex) { - return sectionIndex + this.getMinSection(); - } -} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/package-info.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/package-info.java deleted file mode 100644 index 87851a339..000000000 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -@ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -package com.simibubi.create.foundation.utility.worldWrappers; - -import javax.annotation.ParametersAreNonnullByDefault; - -import net.minecraft.MethodsReturnNonnullByDefault; diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java b/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java index 11a703644..8901513bb 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java @@ -6,8 +6,8 @@ import java.util.Map; import com.google.common.collect.ImmutableList; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; -import com.simibubi.create.foundation.utility.Couple; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.Registry; import net.minecraft.data.BuiltinRegistries; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenFeatureEntry.java b/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenFeatureEntry.java index b2b87db7c..629ade1d3 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenFeatureEntry.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenFeatureEntry.java @@ -6,10 +6,10 @@ import java.util.function.Function; import com.google.common.collect.ImmutableList; import com.simibubi.create.Create; -import com.simibubi.create.foundation.config.ConfigBase; -import com.simibubi.create.foundation.utility.Couple; import com.tterrag.registrate.util.nullness.NonNullSupplier; +import net.createmod.catnip.config.ConfigBase; +import net.createmod.catnip.utility.Couple; import net.minecraft.core.Holder; import net.minecraft.data.worldgen.features.OreFeatures; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java b/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java index 71ad7fd2e..a423aacd4 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java @@ -7,10 +7,10 @@ import java.util.Random; import javax.annotation.Nullable; import com.google.common.collect.ImmutableList; -import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.worldgen.LayerPattern.Layer.LayerBuilder; import com.tterrag.registrate.util.nullness.NonNullSupplier; +import net.createmod.catnip.utility.Couple; import net.minecraft.data.worldgen.features.OreFeatures; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -50,13 +50,13 @@ public class LayerPattern { } class Builder { - + private boolean netherMode; public LayerPattern build() { return LayerPattern.this; } - + public Builder inNether() { netherMode = true; return this; @@ -117,7 +117,7 @@ public class LayerPattern { } return blocks(block.defaultBlockState(), block.defaultBlockState()); } - + public LayerBuilder blocks(Block block, Block deepblock) { return blocks(block.defaultBlockState(), deepblock.defaultBlockState()); } diff --git a/src/main/resources/assets/create/textures/gui/placement_indicator.png b/src/main/resources/assets/create/textures/gui/placement_indicator.png deleted file mode 100644 index ca111ee399dccff9412985c830eefb59f78bbd4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmV-J1HAl+P)(R7l6AmdlcxFc3uvi(cmwTvHk62aLUs0qqBbw<-^k_pywAKk65Q<5#Mp zn#C;)>dWoZVv6G40w>}$$%T~o(kZ1$F7Tz%q!imM{2`^wuoMAr4$G&Cv94PZ-rC_> zguIGJYt28EVMF_bPs1DLjnjFB+n^2f<9jhyW*g}{TFpPDU*fsL^7-jVRefigHxjn9 zZcP=$&Rp}!0`%;(1c{A`P6SzW%fwD9ex$TF{KVe`$<(aqL6PmlXSx&f<)K7zJu zY()B$njnIbf{_J$qSaO`r)?HH6#1n~OpY@AOy~YgerjtQ_VeK>7x-|%0Xh0Bp7R5( z_BPI8v?}79#-yUvp9Y2{HQXH=tz$tKa6>CKVEDV}Z9ZZZYR85kT}I*uQ#rdEKW>>% zr-@lB8HU{4xTV*K74w1^bKrxtAh_aXJg2q*_7mMG)muVhR7kv{HG_QztvWBk#@cJ4 zh(29JaDiKGScTEFynou+5f~BtlTa7b&c`2EG{eljI#N$(xcKEKA-(tA1l212)3I4;gA|s^$(BRh-CP-xcdMA N002ovPDHLkV1hz)epvtj diff --git a/src/main/resources/assets/create/textures/special/blank.png b/src/main/resources/assets/create/textures/special/blank.png deleted file mode 100644 index 2e084d97d231ce0b73c9fdfbf8e6c811997b0f48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstUx|