From 233d9b292ef31dbe72b9878c33674eb51589eada Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:33:10 -0700 Subject: [PATCH] Version Conversion: 1.19 edition - Mostly port to 1.19 - Remaining errors include: - Fluids - Features - Registry-related code - Fake worlds - Some datagen code --- build.gradle | 9 +-- gradle.properties | 20 +++---- .../java/com/simibubi/create/AllBlocks.java | 2 +- .../create/AllEntityDataSerializers.java | 12 ++-- .../java/com/simibubi/create/AllKeys.java | 11 +++- .../com/simibubi/create/AllParticleTypes.java | 30 +++++----- .../com/simibubi/create/AllRecipeTypes.java | 38 ++++++------- .../com/simibubi/create/AllSoundEvents.java | 44 +++++++-------- .../java/com/simibubi/create/AllTags.java | 5 +- src/main/java/com/simibubi/create/Create.java | 34 +++++------ .../com/simibubi/create/CreateClient.java | 35 ++---------- .../compat/jei/BlueprintTransferHandler.java | 14 ++++- .../simibubi/create/compat/jei/CreateJEI.java | 3 +- .../jei/category/CreateRecipeCategory.java | 18 +----- .../category/MechanicalCraftingCategory.java | 4 +- .../category/SequencedAssemblyCategory.java | 11 ++-- .../base/KineticEffectHandler.java | 5 +- .../base/KineticTileEntityRenderer.java | 12 +++- .../BlockBreakingKineticTileEntity.java | 2 +- .../actors/CampfireMovementBehaviour.java | 5 +- .../components/actors/SeatBlock.java | 2 +- .../IMovedDispenseItemBehaviour.java | 5 +- .../crafter/MechanicalCrafterTileEntity.java | 4 +- .../crusher/CrushingWheelControllerBlock.java | 5 +- .../CrushingWheelControllerTileEntity.java | 4 +- .../deployer/DeployerApplicationRecipe.java | 6 +- .../deployer/DeployerFakePlayer.java | 2 +- .../components/deployer/DeployerHandler.java | 2 +- .../deployer/ManualApplicationRecipe.java | 6 +- .../components/fan/AirCurrentSound.java | 3 +- .../press/MechanicalPressTileEntity.java | 3 +- .../components/saw/SawTileEntity.java | 10 ++-- .../components/steam/PoweredShaftBlock.java | 5 +- .../steam/whistle/WhistleBlock.java | 5 +- .../steam/whistle/WhistleSoundInstance.java | 3 +- .../steam/whistle/WhistleTileEntity.java | 4 +- .../structureMovement/Contraption.java | 10 ++-- .../ContraptionHandlerClient.java | 4 +- .../IDisplayAssemblyExceptions.java | 3 +- .../glue/SuperGlueHandler.java | 4 +- .../structureMovement/glue/SuperGlueItem.java | 2 +- .../glue/SuperGlueSelectionHandler.java | 4 +- .../interaction/controls/TrainHUD.java | 8 +-- .../mounted/CartAssemblerBlock.java | 2 +- .../mounted/MinecartContraptionItem.java | 4 +- .../piston/MechanicalPistonBlock.java | 5 +- .../train/CouplingHandlerClient.java | 5 +- .../train/MinecartCouplingItem.java | 6 +- .../CapabilityMinecartController.java | 6 +- .../fluids/FluidBottleItemHook.java | 4 +- .../content/contraptions/fluids/FluidFX.java | 5 +- .../fluids/PipeAttachmentModel.java | 29 +++++----- .../contraptions/fluids/PumpBlock.java | 5 +- .../fluids/actors/FillingRecipe.java | 3 +- .../fluids/pipes/AxisPipeBlock.java | 4 +- .../fluids/pipes/EncasedPipeBlock.java | 4 +- .../fluids/pipes/FluidPipeBlock.java | 4 +- .../fluids/pipes/FluidValveBlock.java | 5 +- .../fluids/pipes/SmartFluidPipeBlock.java | 5 +- .../fluids/potion/PotionFluid.java | 3 +- .../fluids/potion/PotionFluidHandler.java | 21 ++++--- .../contraptions/fluids/tank/BoilerData.java | 13 ++--- .../fluids/tank/FluidTankModel.java | 17 +++--- .../goggles/GoggleConfigScreen.java | 9 ++- .../goggles/GoggleOverlayRenderer.java | 15 +++-- .../contraptions/goggles/GogglesModel.java | 6 +- .../goggles/IHaveGoggleInformation.java | 3 +- .../itemAssembly/SequencedAssemblyRecipe.java | 5 +- .../SequencedAssemblyRecipeSerializer.java | 4 +- .../particle/AirFlowParticle.java | 3 +- .../particle/ICustomParticleData.java | 6 +- .../ICustomParticleDataWithSprite.java | 6 +- .../contraptions/processing/BasinRecipe.java | 6 +- .../processing/BasinRenderer.java | 5 +- .../processing/BasinTileEntity.java | 10 ++-- .../ProcessingRecipeSerializer.java | 4 +- .../processing/burner/BlazeBurnerBlock.java | 2 +- .../burner/BlazeBurnerMovementBehaviour.java | 5 +- .../burner/BlazeBurnerTileEntity.java | 6 +- .../sequencer/InstructionSpeedModifiers.java | 3 +- .../sequencer/SequencedGearshiftBlock.java | 5 +- .../sequencer/SequencedGearshiftScreen.java | 3 +- .../contraptions/relays/belt/BeltBlock.java | 8 +-- .../contraptions/relays/belt/BeltModel.java | 13 +++-- .../contraptions/relays/belt/BeltSlicer.java | 4 +- .../relays/belt/BeltTileEntity.java | 7 +-- .../BracketedKineticBlockModel.java | 31 +++++----- .../relays/encased/GearshiftBlock.java | 5 +- .../contraptions/relays/gauge/GaugeBlock.java | 5 +- .../contraptions/wrench/IWrenchable.java | 2 +- .../contraptions/wrench/WrenchItem.java | 8 +-- .../curiosities/ChromaticCompoundItem.java | 7 +-- .../curiosities/armor/BackTankUtil.java | 9 ++- .../armor/CopperBacktankArmorLayer.java | 11 ++-- .../curiosities/armor/CopperBacktankItem.java | 2 +- .../armor/CopperBacktankTileEntity.java | 3 +- .../curiosities/armor/DivingBootsItem.java | 6 +- .../curiosities/armor/DivingHelmetItem.java | 6 +- .../bell/HauntedBellTileEntity.java | 9 ++- .../curiosities/bell/PeculiarBellBlock.java | 5 +- .../curiosities/deco/SlidingDoorBlock.java | 6 +- .../girder/ConnectedGirderModel.java | 19 ++++--- .../curiosities/girder/GirderBlock.java | 5 +- .../curiosities/symmetry/SymmetryHandler.java | 17 +++--- .../symmetry/SymmetryWandItem.java | 4 +- .../symmetry/SymmetryWandScreen.java | 5 +- .../curiosities/toolbox/ToolboxBlock.java | 2 +- .../toolbox/ToolboxHandlerClient.java | 8 +-- .../curiosities/tools/BlueprintEntity.java | 2 +- .../tools/BlueprintOverlayRenderer.java | 8 +-- .../curiosities/tools/ExtendoGripItem.java | 20 +++---- .../tools/ExtendoGripRenderHandler.java | 6 +- .../curiosities/tools/SandPaperItem.java | 8 +-- .../curiosities/weapons/PotatoCannonItem.java | 18 +++--- .../weapons/PotatoCannonRenderHandler.java | 5 +- .../zapper/ShootableGadgetRenderHandler.java | 4 +- .../zapper/ZapperInteractionHandler.java | 6 +- .../curiosities/zapper/ZapperScreen.java | 3 +- .../zapper/terrainzapper/WorldshaperItem.java | 4 +- .../terrainzapper/WorldshaperScreen.java | 9 ++- .../belts/tunnel/BrassTunnelTileEntity.java | 3 +- .../block/chute/AbstractChuteBlock.java | 4 +- .../block/chute/ChuteTileEntity.java | 3 +- .../block/chute/SmartChuteBlock.java | 5 +- .../block/depot/EjectorTargetHandler.java | 8 +-- .../block/diodes/PoweredLatchBlock.java | 5 +- .../block/diodes/ToggleLatchBlock.java | 5 +- .../block/display/DisplayLinkBlockItem.java | 2 +- .../block/display/DisplayLinkScreen.java | 5 +- .../AccumulatedItemCountDisplaySource.java | 4 +- .../display/source/BoilerDisplaySource.java | 12 ++-- .../block/display/source/DisplaySource.java | 10 ++-- .../source/EnchantPowerDisplaySource.java | 11 ++-- .../source/FluidAmountDisplaySource.java | 4 +- .../source/FluidListDisplaySource.java | 4 +- .../source/ItemCountDisplaySource.java | 8 +-- .../source/ItemThoughputDisplaySource.java | 3 +- .../source/KineticSpeedDisplaySource.java | 2 +- .../NumericSingleLineDisplaySource.java | 4 +- .../PercentOrProgressBarDisplaySource.java | 6 +- .../source/RedstonePowerDisplaySource.java | 4 +- .../source/ScoreboardDisplaySource.java | 4 +- .../source/SingleLineDisplaySource.java | 6 +- .../source/StationSummaryDisplaySource.java | 12 ++-- .../source/StopWatchDisplaySource.java | 4 +- .../source/TimeOfDayDisplaySource.java | 6 +- .../source/ValueListDisplaySource.java | 12 ++-- .../block/display/target/DisplayTarget.java | 4 +- .../block/funnel/AbstractFunnelBlock.java | 8 +-- .../AllArmInteractionPointTypes.java | 2 +- .../ArmInteractionPointHandler.java | 6 +- .../block/redstone/AnalogLeverBlock.java | 5 +- .../block/redstone/ContentObserverBlock.java | 5 +- .../block/redstone/NixieTubeBlock.java | 4 +- .../block/redstone/NixieTubeTileEntity.java | 4 +- .../block/redstone/RedstoneContactBlock.java | 5 +- .../block/redstone/RedstoneLinkBlock.java | 5 +- .../block/redstone/RoseQuartzLampBlock.java | 4 +- .../block/redstone/StockpileSwitchBlock.java | 5 +- .../block/redstone/StockpileSwitchScreen.java | 5 +- .../item/LinkedControllerClientHandler.java | 11 ++-- .../logistics/item/LinkedControllerItem.java | 6 +- .../item/LinkedControllerItemRenderer.java | 2 +- .../item/filter/AttributeFilterContainer.java | 4 +- .../item/filter/AttributeFilterScreen.java | 15 +++-- .../logistics/item/filter/FilterItem.java | 13 ++--- .../logistics/item/filter/FilterScreen.java | 9 ++- .../logistics/item/filter/ItemAttribute.java | 6 +- .../filter/attribute/EnchantAttribute.java | 4 +- .../attribute/FluidContentsAttribute.java | 3 +- .../AstralSorceryAmuletAttribute.java | 4 +- .../AstralSorceryAttunementAttribute.java | 4 +- .../AstralSorceryCrystalAttribute.java | 4 +- .../AstralSorceryPerkGemAttribute.java | 4 +- .../entity/CarriageContraptionEntity.java | 19 +++---- .../trains/entity/CarriageParticles.java | 5 +- .../trains/entity/CarriageSounds.java | 3 +- .../logistics/trains/entity/Train.java | 2 +- .../trains/entity/TrainRelocator.java | 4 +- .../logistics/trains/entity/TrainStatus.java | 3 +- .../management/display/FlapDisplayBlock.java | 4 +- .../display/FlapDisplayTileEntity.java | 3 +- .../edgePoint/signal/SignalBlock.java | 5 +- .../edgePoint/station/StationMarker.java | 5 +- .../edgePoint/station/StationScreen.java | 5 +- .../edgePoint/station/TrainEditPacket.java | 4 +- .../management/schedule/IScheduleInput.java | 3 +- .../trains/management/schedule/Schedule.java | 3 +- .../management/schedule/ScheduleItem.java | 9 ++- .../schedule/ScheduleItemRetrieval.java | 2 +- .../management/schedule/ScheduleRuntime.java | 10 ++-- .../management/schedule/ScheduleScreen.java | 19 +++---- .../condition/CargoThresholdCondition.java | 5 +- .../condition/FluidThresholdCondition.java | 5 +- .../condition/ItemThresholdCondition.java | 5 +- .../condition/PlayerPassengerCondition.java | 3 +- .../condition/RedstoneLinkCondition.java | 5 +- .../condition/TimeOfDayCondition.java | 3 +- .../condition/TimedWaitCondition.java | 10 ++-- .../ChangeThrottleInstruction.java | 6 +- .../destination/ChangeTitleInstruction.java | 3 +- .../destination/DestinationInstruction.java | 3 +- .../destination/TextScheduleInstruction.java | 3 +- .../trains/track/CurvedTrackInteraction.java | 6 +- .../trains/track/FakeTrackBlock.java | 5 +- .../logistics/trains/track/TrackBlock.java | 13 +++-- .../trains/track/TrackBlockOutline.java | 4 +- .../content/palettes/AllPaletteBlocks.java | 4 +- .../palettes/ConnectedPillarBlock.java | 5 +- .../create/content/palettes/WindowBlock.java | 23 +++++--- .../schematics/ClientSchematicLoader.java | 7 +-- .../content/schematics/MaterialChecklist.java | 20 +++---- .../schematics/ServerSchematicLoader.java | 10 ++-- .../schematics/block/SchematicTableBlock.java | 2 +- .../block/SchematicTableScreen.java | 11 ++-- .../schematics/block/SchematicannonBlock.java | 2 +- .../block/SchematicannonRenderer.java | 9 ++- .../block/SchematicannonScreen.java | 21 ++++--- .../client/SchematicEditScreen.java | 11 ++-- .../schematics/client/SchematicHandler.java | 10 ++-- .../client/SchematicPromptScreen.java | 3 +- .../schematics/client/SchematicRenderer.java | 37 ++++++------ .../client/ToolSelectionScreen.java | 3 +- .../client/tools/ISchematicTool.java | 4 +- .../client/tools/PlacementToolBase.java | 4 +- .../client/tools/SchematicToolBase.java | 4 +- .../schematics/client/tools/Tools.java | 4 +- .../schematics/item/SchematicItem.java | 3 +- .../simibubi/create/events/ClientEvents.java | 56 ++++++++++++------- .../simibubi/create/events/CommonEvents.java | 38 ++++++------- .../simibubi/create/events/InputEvents.java | 13 ++--- .../foundation/ModFilePackResources.java | 4 +- .../advancement/AllAdvancements.java | 10 +--- .../advancement/CreateAdvancement.java | 6 +- .../advancement/RegistryTrigger.java | 3 +- .../foundation/block/ItemUseOverrides.java | 4 +- .../connected/BakedModelWrapperWithData.java | 11 ++-- .../foundation/block/connected/CTModel.java | 17 +++--- .../DestroyProgressRenderingHandler.java | 4 +- .../block/render/ReducedDestroyEffects.java | 4 +- .../command/ClearBufferCacheCommand.java | 4 +- .../foundation/command/CloneCommand.java | 11 ++-- .../foundation/command/ConfigCommand.java | 10 ++-- .../foundation/command/CouplingCommand.java | 20 +++---- .../command/DumpRailwaysCommand.java | 7 +-- .../command/FixLightingCommand.java | 4 +- .../foundation/command/FlySpeedCommand.java | 4 +- .../foundation/command/HighlightCommand.java | 6 +- .../foundation/command/KillTPSCommand.java | 4 +- .../foundation/command/KillTrainCommand.java | 6 +- .../command/OverlayConfigCommand.java | 6 +- .../ReplaceInCommandBlocksCommand.java | 6 +- .../command/SConfigureConfigPacket.java | 30 +++++----- .../config/ui/BaseConfigScreen.java | 16 +++--- .../config/ui/ConfigModListScreen.java | 8 +-- .../foundation/config/ui/ConfigScreen.java | 2 +- .../config/ui/ConfigScreenList.java | 3 +- .../config/ui/HintableTextFieldWidget.java | 4 +- .../config/ui/OpenCreateMenuButton.java | 6 +- .../config/ui/SubMenuConfigScreen.java | 14 ++--- .../config/ui/entries/NumberEntry.java | 7 ++- .../config/ui/entries/ValueEntry.java | 12 ++-- .../foundation/data/CreateRegistrate.java | 7 +-- .../create/foundation/data/LangMerger.java | 5 +- .../create/foundation/data/WindowGen.java | 15 ++--- .../data/recipe/ProcessingRecipeGen.java | 6 +- .../foundation/fluid/FluidIngredient.java | 2 +- .../foundation/gui/AbstractSimiScreen.java | 3 +- .../foundation/gui/CreateMainMenuScreen.java | 11 ++-- .../foundation/gui/ModularGuiLineBuilder.java | 6 +- .../foundation/gui/RemovedGuiUtils.java | 24 ++++---- .../create/foundation/gui/UIRenderHelper.java | 10 ++-- .../foundation/gui/element/BoxElement.java | 2 +- .../gui/element/GuiGameElement.java | 48 +++++++++------- .../gui/element/TextStencilElement.java | 6 +- .../gui/widget/AbstractSimiWidget.java | 3 +- .../create/foundation/gui/widget/Label.java | 7 +-- .../foundation/gui/widget/ScrollInput.java | 3 +- .../gui/widget/SelectionScrollInput.java | 9 ++- .../foundation/item/CustomUseEffectsItem.java | 7 +-- .../foundation/item/ItemDescription.java | 23 ++++---- .../create/foundation/item/TooltipHelper.java | 20 +++---- .../item/render/CustomRenderedItemModel.java | 14 ++--- .../item/render/PartialItemModelRenderer.java | 40 ++++++------- .../item/render/SimpleCustomRenderer.java | 6 +- .../mixin/DestroyProgressMixin.java | 5 +- .../mixin/HeavyBootsOnPlayerMixin.java | 5 +- .../mixin/ModelDataRefreshMixin.java | 36 ------------ .../foundation/ponder/PonderRegistry.java | 18 +++--- .../ponder/PonderTooltipHandler.java | 3 +- .../ponder/content/DisplayScenes.java | 20 +++---- .../ponder/content/RedstoneScenes.java | 3 +- .../ponder/content/fluid/FluidTankScenes.java | 6 +- .../ponder/content/fluid/SpoutScenes.java | 10 ++-- .../ponder/element/TextWindowElement.java | 6 +- .../ponder/element/WorldSectionElement.java | 31 +++++----- .../ponder/ui/NavigatableSimiScreen.java | 4 +- .../ponder/ui/PonderProgressBar.java | 10 ++-- .../ponder/ui/PonderTagIndexScreen.java | 3 +- .../create/foundation/ponder/ui/PonderUI.java | 14 ++--- .../foundation/render/ShadowRenderHelper.java | 5 +- .../foundation/sound/ContinuousSound.java | 3 +- .../tileEntity/behaviour/ValueBox.java | 9 ++- .../behaviour/ValueBoxRenderer.java | 3 +- .../EdgeInteractionHandler.java | 4 +- .../EdgeInteractionRenderer.java | 4 +- .../behaviour/filtering/FilteringHandler.java | 4 +- .../filtering/FilteringRenderer.java | 5 +- .../behaviour/linked/LinkHandler.java | 4 +- .../scrollvalue/ScrollValueRenderer.java | 7 +-- .../foundation/utility/BlockHelper.java | 4 +- .../create/foundation/utility/Debug.java | 15 +++-- .../foundation/utility/DynamicComponent.java | 5 +- .../foundation/utility/FluidFormatter.java | 6 +- .../create/foundation/utility/FontHelper.java | 4 +- .../create/foundation/utility/Lang.java | 11 +--- .../foundation/utility/LangBuilder.java | 10 ++-- .../foundation/utility/ModelSwapper.java | 12 ++-- .../foundation/utility/RemapHelper.java | 23 ++++---- .../create/foundation/utility/VecHelper.java | 7 +-- .../utility/ghost/GhostBlockRenderer.java | 53 +++++++++--------- .../utility/placement/PlacementHelpers.java | 10 ++-- .../utility/placement/PlacementOffset.java | 2 +- .../foundation/worldgen/AllWorldFeatures.java | 11 ++-- .../worldgen/ConfigDrivenDecorator.java | 4 +- .../foundation/worldgen/LayerPattern.java | 6 +- .../worldgen/LayeredOreFeature.java | 8 +-- .../foundation/worldgen/OreFeatureBase.java | 6 +- .../worldgen/VanillaStyleOreFeature.java | 10 +--- src/main/resources/META-INF/mods.toml | 6 +- src/main/resources/create.mixins.json | 1 - src/main/resources/pack.mcmeta | 6 +- .../resourcepacks/legacy_copper/pack.mcmeta | 2 +- 333 files changed, 1302 insertions(+), 1444 deletions(-) delete mode 100644 src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java diff --git a/build.gradle b/build.gradle index 98d10e012..3fcb9da53 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,8 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { - mappings channel: 'parchment', version: "${parchment_version}-${minecraft_version}" + //mappings channel: 'parchment', version: "${parchment_version}-${minecraft_version}" + mappings channel: 'official', version: "${minecraft_version}" accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { @@ -133,7 +134,7 @@ repositories { dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - jarJar(group: 'com.tterrag.registrate', name: 'Registrate', version: '[MC1.18.2-1.1.3,)') { + jarJar(group: 'com.tterrag.registrate', name: 'Registrate', version: '[MC1.19-1.1.5,)') { jarJar.pin(it, project.registrate_version) } // Uncomment once Forge fixes mixins for included jars @@ -149,8 +150,8 @@ dependencies { implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") } - compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}:${jei_version}:api") - runtimeOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}:${jei_version}") + compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge-api:${jei_version}") + runtimeOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge:${jei_version}") compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${curios_minecraft_version}-${curios_version}:api") runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${curios_minecraft_version}-${curios_version}") diff --git a/gradle.properties b/gradle.properties index 6178a3b83..eb49608b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,10 +5,10 @@ org.gradle.daemon = false # mod version info mod_version = 0.5.0.c -artifact_minecraft_version = 1.18.2 +artifact_minecraft_version = 1.19 -minecraft_version = 1.18.2 -forge_version = 40.1.60 +minecraft_version = 1.19 +forge_version = 41.0.110 # build dependency versions forgegradle_version = 5.1.+ @@ -19,13 +19,13 @@ cursegradle_version = 1.4.0 parchment_version = 2022.07.10 # dependency versions -registrate_version = MC1.18.2-1.1.3 -flywheel_minecraft_version = 1.18.2 -flywheel_version = 0.6.4-90 -jei_minecraft_version = 1.18.2 -jei_version = 9.7.0.209 -curios_minecraft_version = 1.18.2 -curios_version = 5.0.7.0 +registrate_version = MC1.19-1.1.5 +flywheel_minecraft_version = 1.19 +flywheel_version = 0.6.4-1 +jei_minecraft_version = 1.19 +jei_version = 11.1.0.235 +curios_minecraft_version = 1.19 +curios_version = 5.1.0.4 # curseforge information projectId = 328085 diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 2ae37cec3..8a179bbc8 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -600,7 +600,7 @@ public class AllBlocks { .initialProperties(SharedProperties.CRUSHING_WHEEL_CONTROLLER_MATERIAL) .properties(p -> p.color(MaterialColor.STONE)) .properties(p -> p.noOcclusion() - .noDrops() + .noLootTable() .air()) .blockstate((c, p) -> p.getVariantBuilder(c.get()) .forAllStatesExcept(state -> ConfiguredModel.builder() diff --git a/src/main/java/com/simibubi/create/AllEntityDataSerializers.java b/src/main/java/com/simibubi/create/AllEntityDataSerializers.java index 9ef17ce66..afbb63ebe 100644 --- a/src/main/java/com/simibubi/create/AllEntityDataSerializers.java +++ b/src/main/java/com/simibubi/create/AllEntityDataSerializers.java @@ -2,17 +2,17 @@ package com.simibubi.create; import com.simibubi.create.content.logistics.trains.entity.CarriageSyncDataSerializer; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.registries.DataSerializerEntry; -import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegisterEvent; public class AllEntityDataSerializers { public static final CarriageSyncDataSerializer CARRIAGE_DATA = new CarriageSyncDataSerializer(); - public static void register(RegistryEvent.Register event) { - IForgeRegistry registry = event.getRegistry(); - registry.register(new DataSerializerEntry(CARRIAGE_DATA).setRegistryName(Create.asResource("carriage_data"))); + public static void register(RegisterEvent event) { + event.register(ForgeRegistries.Keys.ENTITY_DATA_SERIALIZERS, helper -> { + helper.register(Create.asResource("carriage_data"), CARRIAGE_DATA); + }); } } diff --git a/src/main/java/com/simibubi/create/AllKeys.java b/src/main/java/com/simibubi/create/AllKeys.java index 8da43a2c8..1257cd726 100644 --- a/src/main/java/com/simibubi/create/AllKeys.java +++ b/src/main/java/com/simibubi/create/AllKeys.java @@ -7,8 +7,12 @@ import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; -import net.minecraftforge.client.ClientRegistry; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RegisterKeyMappingsEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +@EventBusSubscriber(value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD) public enum AllKeys { TOOL_MENU("toolmenu", GLFW.GLFW_KEY_LEFT_ALT), @@ -28,13 +32,14 @@ public enum AllKeys { this.modifiable = !description.isEmpty(); } - public static void register() { + @SubscribeEvent + public static void register(RegisterKeyMappingsEvent event) { for (AllKeys key : values()) { key.keybind = new KeyMapping(key.description, key.key, Create.NAME); if (!key.modifiable) continue; - ClientRegistry.registerKeyBinding(key.keybind); + event.register(key.keybind); } } diff --git a/src/main/java/com/simibubi/create/AllParticleTypes.java b/src/main/java/com/simibubi/create/AllParticleTypes.java index 722f1b5d2..d5c098fd4 100644 --- a/src/main/java/com/simibubi/create/AllParticleTypes.java +++ b/src/main/java/com/simibubi/create/AllParticleTypes.java @@ -14,16 +14,14 @@ 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.minecraft.client.Minecraft; -import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.client.event.RegisterParticleProvidersEvent; +import net.minecraftforge.registries.RegisterEvent; public enum AllParticleTypes { @@ -49,16 +47,17 @@ public enum AllParticleTypes { entry = new ParticleEntry<>(new ResourceLocation(Create.ID, asId), typeFactory); } - public static void register(RegistryEvent.Register> event) { - for (AllParticleTypes particle : values()) - particle.entry.register(event.getRegistry()); + public static void register(RegisterEvent event) { + event.register(Registry.PARTICLE_TYPE_REGISTRY, helper -> { + for (AllParticleTypes particle : values()) + particle.entry.register(helper); + }); } @OnlyIn(Dist.CLIENT) - public static void registerFactories(ParticleFactoryRegisterEvent event) { - ParticleEngine particles = Minecraft.getInstance().particleEngine; + public static void registerFactories(RegisterParticleProvidersEvent event) { for (AllParticleTypes particle : values()) - particle.entry.registerFactory(particles); + particle.entry.registerFactory(event); } public ParticleType get() { @@ -79,8 +78,8 @@ public enum AllParticleTypes { this.typeFactory = typeFactory; } - void register(IForgeRegistry> registry) { - registry.register(getOrCreateType()); + void register(RegisterEvent.RegisterHelper> helper) { + helper.register(id, getOrCreateType()); } ParticleType getOrCreateType() { @@ -88,14 +87,13 @@ public enum AllParticleTypes { return type; type = typeFactory.get() .createType(); - type.setRegistryName(id); return type; } @OnlyIn(Dist.CLIENT) - void registerFactory(ParticleEngine particles) { + void registerFactory(RegisterParticleProvidersEvent event) { typeFactory.get() - .register(getOrCreateType(), particles); + .register(getOrCreateType(), event); } } diff --git a/src/main/java/com/simibubi/create/AllRecipeTypes.java b/src/main/java/com/simibubi/create/AllRecipeTypes.java index 6b9c33f42..f69b7e375 100644 --- a/src/main/java/com/simibubi/create/AllRecipeTypes.java +++ b/src/main/java/com/simibubi/create/AllRecipeTypes.java @@ -37,7 +37,7 @@ import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.crafting.ShapedRecipe; import net.minecraft.world.item.crafting.SimpleRecipeSerializer; import net.minecraft.world.level.Level; -import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.registries.RegisterEvent; public enum AllRecipeTypes implements IRecipeTypeInfo { @@ -83,7 +83,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo { AllRecipeTypes(Supplier> serializerSupplier) { this.id = Create.asResource(Lang.asId(name())); this.serializerSupplier = serializerSupplier; - this.typeSupplier = () -> simpleType(id); + this.typeSupplier = () -> RecipeType.simple(id); } AllRecipeTypes(ProcessingRecipeFactory processingFactory) { @@ -112,32 +112,28 @@ public enum AllRecipeTypes implements IRecipeTypeInfo { .getRecipeFor(getType(), inv, world); } - public static void register(RegistryEvent.Register> event) { - ShapedRecipe.setCraftingSize(9, 9); + public static void register(RegisterEvent event) { + event.register(Registry.RECIPE_SERIALIZER_REGISTRY, helper -> { + ShapedRecipe.setCraftingSize(9, 9); - for (AllRecipeTypes r : AllRecipeTypes.values()) { - r.serializer = r.serializerSupplier.get(); - r.type = r.typeSupplier.get(); - r.serializer.setRegistryName(r.id); - event.getRegistry() - .register(r.serializer); - } + for (AllRecipeTypes r : AllRecipeTypes.values()) { + r.serializer = r.serializerSupplier.get(); + helper.register(r.id, r.serializer); + } + }); + + event.register(Registry.RECIPE_TYPE_REGISTRY, helper -> { + for (AllRecipeTypes r : AllRecipeTypes.values()) { + r.type = r.typeSupplier.get(); + helper.register(r.id, r.type); + } + }); } private static Supplier> processingSerializer(ProcessingRecipeFactory factory) { return () -> new ProcessingRecipeSerializer<>(factory); } - public static > RecipeType simpleType(ResourceLocation id) { - String stringId = id.toString(); - return Registry.register(Registry.RECIPE_TYPE, id, new RecipeType() { - @Override - public String toString() { - return stringId; - } - }); - } - public static final Set RECIPE_DENY_SET = ImmutableSet.of(new ResourceLocation("occultism", "spirit_trade"), new ResourceLocation("occultism", "ritual")); diff --git a/src/main/java/com/simibubi/create/AllSoundEvents.java b/src/main/java/com/simibubi/create/AllSoundEvents.java index 3835bf89e..8c8e56a8a 100644 --- a/src/main/java/com/simibubi/create/AllSoundEvents.java +++ b/src/main/java/com/simibubi/create/AllSoundEvents.java @@ -8,17 +8,16 @@ import java.util.List; import java.util.Map; import com.google.common.collect.Lists; -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.minecraft.core.Registry; import net.minecraft.core.Vec3i; +import net.minecraft.data.CachedOutput; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; -import net.minecraft.data.HashCache; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; @@ -27,8 +26,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.RegisterEvent; //@EventBusSubscriber(bus = Bus.FORGE) public class AllSoundEvents { @@ -306,10 +304,11 @@ public class AllSoundEvents { return new SoundEntryBuilder(id); } - public static void register(RegistryEvent.Register event) { - IForgeRegistry registry = event.getRegistry(); - for (SoundEntry entry : entries.values()) - entry.register(registry); + public static void register(RegisterEvent event) { + event.register(Registry.SOUND_EVENT_REGISTRY, helper -> { + for (SoundEntry entry : entries.values()) + entry.register(helper); + }); } public static void prepare() { @@ -353,7 +352,7 @@ public class AllSoundEvents { } @Override - public void run(HashCache cache) throws IOException { + public void run(CachedOutput cache) throws IOException { generate(generator.getOutputFolder(), cache); } @@ -362,10 +361,7 @@ public class AllSoundEvents { return "Create's Custom Sounds"; } - public void generate(Path path, HashCache cache) { - Gson GSON = (new GsonBuilder()).setPrettyPrinting() - .disableHtmlEscaping() - .create(); + public void generate(Path path, CachedOutput cache) { path = path.resolve("assets/create"); try { @@ -377,7 +373,7 @@ public class AllSoundEvents { entry.getValue() .write(json); }); - DataProvider.save(GSON, cache, json, path.resolve("sounds.json")); + DataProvider.saveStable(cache, json, path.resolve("sounds.json")); } catch (IOException e) { e.printStackTrace(); @@ -465,7 +461,7 @@ public class AllSoundEvents { public abstract void prepare(); - public abstract void register(IForgeRegistry registry); + public abstract void register(RegisterEvent.RegisterHelper registry); public abstract void write(JsonObject json); @@ -546,16 +542,18 @@ public class AllSoundEvents { public void prepare() { for (int i = 0; i < wrappedEvents.size(); i++) { ResourceLocation location = Create.asResource(getIdOf(i)); - SoundEvent sound = new SoundEvent(location).setRegistryName(location); + SoundEvent sound = new SoundEvent(location); compiledEvents.add(Pair.of(sound, wrappedEvents.get(i) .getSecond())); } } @Override - public void register(IForgeRegistry registry) { - for (Pair> pair : compiledEvents) - registry.register(pair.getFirst()); + public void register(RegisterEvent.RegisterHelper helper) { + for (Pair> pair : compiledEvents) { + SoundEvent soundEvent = pair.getFirst(); + helper.register(soundEvent.getLocation(), soundEvent); + } } @Override @@ -621,12 +619,12 @@ public class AllSoundEvents { @Override public void prepare() { - event = new SoundEvent(id).setRegistryName(id); + event = new SoundEvent(id); } @Override - public void register(IForgeRegistry registry) { - registry.register(event); + public void register(RegisterEvent.RegisterHelper helper) { + helper.register(id, event); } @Override diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index 7a228a611..31970d6aa 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -33,20 +33,19 @@ import net.minecraft.world.level.material.Fluids; import net.minecraftforge.common.Tags; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.IForgeRegistry; -import net.minecraftforge.registries.IForgeRegistryEntry; public class AllTags { private static final CreateRegistrate REGISTRATE = Create.registrate() .creativeModeTab(() -> Create.BASE_CREATIVE_TAB); - public static > TagKey optionalTag(IForgeRegistry registry, + public static TagKey optionalTag(IForgeRegistry registry, ResourceLocation id) { return registry.tags() .createOptionalTagKey(id, Collections.emptySet()); } - public static > TagKey forgeTag(IForgeRegistry registry, String path) { + public static TagKey forgeTag(IForgeRegistry registry, String path) { return optionalTag(registry, new ResourceLocation("forge", path)); } diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 7fda0fa65..42972dfa9 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -39,16 +39,16 @@ import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.worldgen.AllWorldFeatures; import com.tterrag.registrate.util.nullness.NonNullSupplier; -import net.minecraft.core.particles.ParticleType; import net.minecraft.data.DataGenerator; import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.Entity; import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.Level; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.DistExecutor; @@ -56,8 +56,6 @@ import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; -import net.minecraftforge.registries.DataSerializerEntry; @Mod(Create.ID) public class Create { @@ -80,6 +78,8 @@ public class Create { public static final TorquePropagator TORQUE_PROPAGATOR = new TorquePropagator(); public static final GlobalRailwayManager RAILWAYS = new GlobalRailwayManager(); public static final ServerLagger LAGGER = new ServerLagger(); + /** Use the {@link RandomSource} of a local {@link Level} or {@link Entity} or create one using {@link RandomSource#create()} */ + @Deprecated public static final Random RANDOM = new Random(); private static final NonNullSupplier REGISTRATE = CreateRegistrate.lazy(ID); @@ -119,11 +119,11 @@ public class Create { modEventBus.addListener(Create::init); modEventBus.addListener(EventPriority.LOWEST, Create::gatherData); - modEventBus.addGenericListener(Feature.class, AllWorldFeatures::registerOreFeatures); - modEventBus.addGenericListener(RecipeSerializer.class, AllRecipeTypes::register); - modEventBus.addGenericListener(ParticleType.class, AllParticleTypes::register); - modEventBus.addGenericListener(SoundEvent.class, AllSoundEvents::register); - modEventBus.addGenericListener(DataSerializerEntry.class, AllEntityDataSerializers::register); + modEventBus.addListener(AllWorldFeatures::registerOreFeatures); + modEventBus.addListener(AllRecipeTypes::register); + modEventBus.addListener(AllParticleTypes::register); + modEventBus.addListener(AllSoundEvents::register); + modEventBus.addListener(AllEntityDataSerializers::register); forgeEventBus.addListener(EventPriority.HIGH, SlidingDoorBlock::stopItQuark); @@ -149,12 +149,12 @@ public class Create { public static void gatherData(GatherDataEvent event) { DataGenerator gen = event.getGenerator(); - gen.addProvider(new AllAdvancements(gen)); - gen.addProvider(new LangMerger(gen)); - gen.addProvider(AllSoundEvents.provider(gen)); - gen.addProvider(new StandardRecipeGen(gen)); - gen.addProvider(new MechanicalCraftingRecipeGen(gen)); - gen.addProvider(new SequencedAssemblyRecipeGen(gen)); + gen.addProvider(true, new AllAdvancements(gen)); + gen.addProvider(true, new LangMerger(gen)); + gen.addProvider(true, AllSoundEvents.provider(gen)); + gen.addProvider(true, new StandardRecipeGen(gen)); + gen.addProvider(true, new MechanicalCraftingRecipeGen(gen)); + gen.addProvider(true, new SequencedAssemblyRecipeGen(gen)); ProcessingRecipeGen.registerAll(gen); } diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index 6f3da1702..dbd87a15e 100644 --- a/src/main/java/com/simibubi/create/CreateClient.java +++ b/src/main/java/com/simibubi/create/CreateClient.java @@ -2,18 +2,12 @@ package com.simibubi.create; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueSelectionHandler; -import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.TrainHUD; import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionRenderDispatcher; import com.simibubi.create.content.contraptions.components.structureMovement.render.SBBContraptionManager; -import com.simibubi.create.content.contraptions.goggles.GoggleOverlayRenderer; import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; -import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectHandler; -import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient; -import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; import com.simibubi.create.content.curiosities.weapons.PotatoCannonRenderHandler; import com.simibubi.create.content.curiosities.zapper.ZapperRenderHandler; -import com.simibubi.create.content.logistics.item.LinkedControllerClientHandler; import com.simibubi.create.content.logistics.trains.GlobalRailwayManager; import com.simibubi.create.content.schematics.ClientSchematicLoader; import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler; @@ -33,14 +27,11 @@ import com.simibubi.create.foundation.utility.outliner.Outliner; import net.minecraft.ChatFormatting; import net.minecraft.client.GraphicsStatus; import net.minecraft.client.Minecraft; -import net.minecraft.network.chat.ChatType; import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.HoverEvent; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.OverlayRegistry; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; @@ -84,7 +75,6 @@ public class CreateClient { BUFFER_CACHE.registerCompartment(SBBContraptionManager.CONTRAPTION, 20); BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20); - AllKeys.register(); // AllFluids.assignRenderLayers(); AllBlockPartials.init(); AllStitchedTextures.init(); @@ -92,22 +82,9 @@ public class CreateClient { PonderIndex.register(); PonderIndex.registerTags(); - registerOverlays(); - UIRenderHelper.init(); } - private static void registerOverlays() { - // Register overlays in reverse order - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.AIR_LEVEL_ELEMENT, "Create's Remaining Air", CopperBacktankArmorLayer.REMAINING_AIR_OVERLAY); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.EXPERIENCE_BAR_ELEMENT, "Create's Train Driver HUD", TrainHUD.OVERLAY); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Goggle Information", GoggleOverlayRenderer.OVERLAY); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Blueprints", BlueprintOverlayRenderer.OVERLAY); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Linked Controller", LinkedControllerClientHandler.OVERLAY); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Schematics", SCHEMATIC_HANDLER.getOverlayRenderer()); - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Toolboxes", ToolboxHandlerClient.OVERLAY); - } - public static void invalidateRenderers() { BUFFER_CACHE.invalidate(); @@ -120,22 +97,22 @@ public class CreateClient { if (mc.player == null) return; - if (mc.options.graphicsMode != GraphicsStatus.FABULOUS) + if (mc.options.graphicsMode().get() != GraphicsStatus.FABULOUS) return; if (AllConfigs.CLIENT.ignoreFabulousWarning.get()) return; - MutableComponent text = ComponentUtils.wrapInSquareBrackets(new TextComponent("WARN")) + MutableComponent text = ComponentUtils.wrapInSquareBrackets(Component.literal("WARN")) .withStyle(ChatFormatting.GOLD) - .append(new TextComponent( + .append(Component.literal( " Some of Create's visual features will not be available while Fabulous graphics are enabled!")) .withStyle(style -> style .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/create dismissFabulousWarning")) .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, - new TextComponent("Click here to disable this warning")))); + Component.literal("Click here to disable this warning")))); - mc.gui.handleChat(ChatType.CHAT, text, mc.player.getUUID()); + mc.player.displayClientMessage(text, false); } } diff --git a/src/main/java/com/simibubi/create/compat/jei/BlueprintTransferHandler.java b/src/main/java/com/simibubi/create/compat/jei/BlueprintTransferHandler.java index d4a25db7c..dc7281731 100644 --- a/src/main/java/com/simibubi/create/compat/jei/BlueprintTransferHandler.java +++ b/src/main/java/com/simibubi/create/compat/jei/BlueprintTransferHandler.java @@ -1,5 +1,7 @@ package com.simibubi.create.compat.jei; +import java.util.Optional; + import javax.annotation.ParametersAreNonnullByDefault; import org.jetbrains.annotations.Nullable; @@ -8,11 +10,14 @@ import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteReci import com.simibubi.create.content.curiosities.tools.BlueprintContainer; import com.simibubi.create.foundation.networking.AllPackets; +import mezz.jei.api.constants.RecipeTypes; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; +import mezz.jei.api.recipe.RecipeType; import mezz.jei.api.recipe.transfer.IRecipeTransferError; import mezz.jei.api.recipe.transfer.IRecipeTransferHandler; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.crafting.CraftingRecipe; @ParametersAreNonnullByDefault @@ -25,8 +30,13 @@ public class BlueprintTransferHandler implements IRecipeTransferHandler getRecipeClass() { - return CraftingRecipe.class; + public Optional> getMenuType() { + return Optional.empty(); + } + + @Override + public RecipeType getRecipeType() { + return RecipeTypes.CRAFTING; } @Override 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 ee5664e19..7bb61adc1 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -75,6 +75,7 @@ import mezz.jei.api.JeiPlugin; import mezz.jei.api.constants.RecipeTypes; import mezz.jei.api.forge.ForgeTypes; import mezz.jei.api.gui.drawable.IDrawable; +import mezz.jei.api.helpers.IPlatformFluidHelper; import mezz.jei.api.recipe.category.IRecipeCategory; import mezz.jei.api.registration.IGuiHandlerRegistration; import mezz.jei.api.registration.IRecipeCatalystRegistration; @@ -349,7 +350,7 @@ public class CreateJEI implements IModPlugin { } @Override - public void registerFluidSubtypes(ISubtypeRegistration registration) { + public void registerFluidSubtypes(ISubtypeRegistration registration, IPlatformFluidHelper platformFluidHelper) { PotionFluidSubtypeInterpreter interpreter = new PotionFluidSubtypeInterpreter(); PotionFluid potionFluid = AllFluids.POTION.get(); registration.registerSubtypeInterpreter(ForgeTypes.FLUID_STACK, potionFluid.getSource(), interpreter); 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 c0487661b..be300a89e 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 @@ -27,8 +27,6 @@ import mezz.jei.api.registration.IRecipeRegistration; import net.minecraft.ChatFormatting; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; import net.minecraftforge.fluids.FluidStack; @@ -77,18 +75,6 @@ public abstract class CreateRecipeCategory> implements IReci return icon; } - @Override - @Deprecated - public final ResourceLocation getUid() { - return type.getUid(); - } - - @Override - @Deprecated - public final Class getRecipeClass() { - return type.getRecipeClass(); - } - public void registerRecipes(IRecipeRegistration registration) { registration.addRecipes(type, recipes.get()); } @@ -159,12 +145,12 @@ 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 = Component.literal(String.valueOf(amount)).append(Lang.translateDirect("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD); if (tooltip.isEmpty()) tooltip.add(0, text); else { List siblings = tooltip.get(0).getSiblings(); - siblings.add(new TextComponent(" ")); + siblings.add(Component.literal(" ")); siblings.add(text); } }; diff --git a/src/main/java/com/simibubi/create/compat/jei/category/MechanicalCraftingCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/MechanicalCraftingCategory.java index ff9d62b7a..4f4f24458 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/MechanicalCraftingCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/MechanicalCraftingCategory.java @@ -23,7 +23,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; @@ -183,7 +183,7 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory list = new ArrayList<>(); - TranslatableComponent crash = new TranslatableComponent("jei.tooltip.error.crash"); + MutableComponent crash = Component.translatable("jei.tooltip.error.crash"); list.add(crash.withStyle(ChatFormatting.RED)); return list; } 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 888818f67..a914bf284 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 @@ -25,8 +25,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.resources.ResourceLocation; @ParametersAreNonnullByDefault @@ -100,7 +99,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory sequencedRecipe = sequence.get(i); SequencedAssemblySubCategory subCategory = getSubCategory(sequencedRecipe); int subWidth = subCategory.getWidth(); - TextComponent component = new TextComponent("" + romans[Math.min(i, 6)]); + MutableComponent component = Component.literal("" + romans[Math.min(i, 6)]); font.draw(matrixStack, component, font.width(component) / -2 + subWidth / 2, 2, 0x888888); subCategory.draw(sequencedRecipe, matrixStack, mouseX, mouseY, i); matrixStack.translate(subWidth + margin, 0, 0); @@ -144,7 +143,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"); + MutableComponent junk = Lang.translateDirect("recipe.assembly.junk"); boolean singleOutput = recipe.getOutputChance() == 1; boolean willRepeat = recipe.getLoops() > 1; 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..6e9c35bac 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.base; -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; @@ -11,6 +9,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; @@ -63,7 +62,7 @@ public class KineticEffectHandler { return; if (!world.isClientSide) return; - Random r = world.random; + RandomSource r = world.random; for (int i = 0; i < amount; i++) { Vec3 motion = VecHelper.offsetRandomly(Vec3.ZERO, r, maxMotion); Vec3 position = VecHelper.getCenterOf(kte.getBlockPos()); 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..9dcd8313e 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 @@ -15,16 +15,20 @@ import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.Color; -import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.resources.model.BakedModel; 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.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraftforge.client.ChunkRenderTypeSet; +import net.minecraftforge.client.model.data.ModelData; public class KineticTileEntityRenderer extends SafeTileEntityRenderer { @@ -55,8 +59,12 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer containers = new ArrayList<>(); groupedItems.grid.values() .forEach(stack -> { - if (stack.hasContainerItem()) - containers.add(stack.getContainerItem() + if (stack.hasCraftingRemainingItem()) + containers.add(stack.getCraftingRemainingItem() .copy()); }); 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..f9d944d82 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.crusher; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; @@ -16,6 +14,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; +import net.minecraft.util.RandomSource; import net.minecraft.world.Difficulty; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; @@ -111,7 +110,7 @@ public class CrushingWheelControllerBlock extends DirectionalBlock implements IT } @Override - public void animateTick(BlockState stateIn, Level worldIn, BlockPos pos, Random rand) { + public void animateTick(BlockState stateIn, Level worldIn, BlockPos pos, RandomSource rand) { if (!stateIn.getValue(VALID)) return; if (rand.nextInt(1) != 0) 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..02014d05b 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 @@ -3,7 +3,6 @@ package com.simibubi.create.content.contraptions.components.crusher; import java.util.ArrayList; import java.util.List; import java.util.Optional; -import java.util.Random; import java.util.UUID; import com.simibubi.create.AllRecipeTypes; @@ -29,6 +28,7 @@ import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.item.ItemEntity; @@ -283,7 +283,7 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity { else particleData = new ItemParticleOption(ParticleTypes.ITEM, stack); - Random r = level.random; + RandomSource r = level.random; for (int i = 0; i < 4; i++) level.addParticle(particleData, worldPosition.getX() + r.nextFloat(), worldPosition.getY() + r.nextFloat(), worldPosition.getZ() + r.nextFloat(), 0, 0, 0); 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..fe4627038 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 @@ -15,8 +15,6 @@ import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuild import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; @@ -59,9 +57,9 @@ public class DeployerApplicationRecipe extends ItemApplicationRecipe implements ItemStack[] matchingStacks = ingredients.get(1) .getItems(); if (matchingStacks.length == 0) - return new TextComponent("Invalid"); + return Component.literal("Invalid"); return Lang.translateDirect("recipe.assembly.deploying_item", - new TranslatableComponent(matchingStacks[0].getDescriptionId()).getString()); + Component.translatable(matchingStacks[0].getDescriptionId()).getString()); } @Override 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..83f329b6d 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 @@ -135,7 +135,7 @@ public class DeployerFakePlayer extends FakePlayer { public static void entitiesDontRetaliate(LivingSetAttackTargetEvent event) { if (!(event.getTarget() instanceof DeployerFakePlayer)) return; - LivingEntity entityLiving = event.getEntityLiving(); + LivingEntity entityLiving = event.getEntity(); if (!(entityLiving instanceof Mob)) return; Mob mob = (Mob) entityLiving; 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..798e1de60 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 @@ -392,7 +392,7 @@ public class DeployerHandler { Block.getDrops(blockstate, world, pos, tileentity, player, prevHeldItem) .forEach(item -> player.getInventory().placeItemBackInInventory(item)); - blockstate.spawnAfterBreak(world, pos, prevHeldItem); + blockstate.spawnAfterBreak(world, pos, prevHeldItem, true); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/ManualApplicationRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/ManualApplicationRecipe.java index 663d18a84..d72347d51 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/ManualApplicationRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/ManualApplicationRecipe.java @@ -38,7 +38,7 @@ public class ManualApplicationRecipe extends ItemApplicationRecipe { @SubscribeEvent public static void manualApplicationRecipesApplyInWorld(PlayerInteractEvent.RightClickBlock event) { - Level level = event.getWorld(); + Level level = event.getLevel(); ItemStack heldItem = event.getItemStack(); BlockPos pos = event.getPos(); BlockState blockState = level.getBlockState(pos); @@ -81,12 +81,12 @@ public class ManualApplicationRecipe extends ItemApplicationRecipe { if (!unbreakable && !keepHeld) { if (heldItem.isDamageableItem()) - heldItem.hurtAndBreak(1, event.getPlayer(), s -> s.broadcastBreakEvent(InteractionHand.MAIN_HAND)); + heldItem.hurtAndBreak(1, event.getEntity(), s -> s.broadcastBreakEvent(InteractionHand.MAIN_HAND)); else heldItem.shrink(1); } - awardAdvancements(event.getPlayer(), transformedBlock); + awardAdvancements(event.getEntity(), transformedBlock); event.setCancellationResult(InteractionResult.SUCCESS); event.setCanceled(true); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrentSound.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrentSound.java index b4ef2ea95..dd74b1244 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrentSound.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/AirCurrentSound.java @@ -1,6 +1,7 @@ package com.simibubi.create.content.contraptions.components.fan; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; @@ -9,7 +10,7 @@ public class AirCurrentSound extends AbstractTickableSoundInstance { private float pitch; protected AirCurrentSound(SoundEvent p_i46532_1_, float pitch) { - super(p_i46532_1_, SoundSource.BLOCKS); + super(p_i46532_1_, SoundSource.BLOCKS, SoundInstance.createUnseededRandom()); this.pitch = pitch; volume = 0.01f; looping = true; 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..09ee5eeff 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 @@ -5,7 +5,6 @@ import java.util.Optional; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCraftingRecipe; import com.simibubi.create.content.contraptions.components.press.PressingBehaviour.Mode; import com.simibubi.create.content.contraptions.components.press.PressingBehaviour.PressingBehaviourSpecifics; @@ -136,7 +135,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity implemen ItemEntity created = new ItemEntity(level, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), result); created.setDefaultPickUpDelay(); - created.setDeltaMovement(VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .05f)); + created.setDeltaMovement(VecHelper.offsetRandomly(Vec3.ZERO, level.random, .05f)); level.addFreshEntity(created); } item.shrink(1); 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..a3702184d 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 @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Optional; -import java.util.Random; import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -34,7 +33,6 @@ import com.simibubi.create.foundation.utility.recipe.RecipeFinder; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.core.Registry; import net.minecraft.core.particles.BlockParticleOption; import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleOptions; @@ -43,6 +41,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -69,6 +68,7 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.registries.ForgeRegistries; @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault @@ -76,7 +76,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity { private static final Object cuttingRecipesKey = new Object(); public static final Supplier> woodcuttingRecipeType = - Suppliers.memoize(() -> Registry.RECIPE_TYPE.get(new ResourceLocation("druidcraft", "woodcutting"))); + Suppliers.memoize(() -> ForgeRegistries.RECIPE_TYPES.getValue(new ResourceLocation("druidcraft", "woodcutting"))); public ProcessingInventory inventory; private int recipeIndex; @@ -279,7 +279,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity { else particleData = new ItemParticleOption(ParticleTypes.ITEM, stack); - Random r = level.random; + RandomSource r = level.random; Vec3 v = VecHelper.getCenterOf(this.worldPosition) .add(0, 5 / 16f, 0); for (int i = 0; i < 10; i++) { @@ -302,7 +302,7 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity { speed = .125f; } - Random r = level.random; + RandomSource r = level.random; Vec3 vec = getItemMovementVec(); Vec3 pos = VecHelper.getCenterOf(this.worldPosition); float offset = inventory.recipeDuration != 0 ? (float) (inventory.remainingTime) / inventory.recipeDuration : 0; 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..f5378a633 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.steam; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; @@ -15,6 +13,7 @@ import com.simibubi.create.foundation.utility.placement.PlacementHelpers; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -67,7 +66,7 @@ public class PoweredShaftBlock extends AbstractShaftBlock { } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { if (!stillValid(pState, pLevel, pPos)) pLevel.setBlock(pPos, AllBlocks.SHAFT.getDefaultState() .setValue(ShaftBlock.AXIS, pState.getValue(AXIS)) 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..eb4b5469f 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.steam.whistle; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; @@ -19,6 +17,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.util.StringRepresentable; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -180,7 +179,7 @@ public class WhistleBlock extends Block implements ITE, IWren } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { withTileEntityDo(pLevel, pPos, WhistleTileEntity::updatePitch); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleSoundInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleSoundInstance.java index 4919b895b..f48202603 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleSoundInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/whistle/WhistleSoundInstance.java @@ -7,6 +7,7 @@ import static com.simibubi.create.AllSoundEvents.WHISTLE_MEDIUM; import com.simibubi.create.content.contraptions.components.steam.whistle.WhistleBlock.WhistleSize; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundSource; import net.minecraft.world.phys.Vec3; @@ -19,7 +20,7 @@ public class WhistleSoundInstance extends AbstractTickableSoundInstance { public WhistleSoundInstance(WhistleSize size, BlockPos worldPosition) { super((size == WhistleSize.SMALL ? WHISTLE_HIGH : size == WhistleSize.MEDIUM ? WHISTLE_MEDIUM : WHISTLE_LOW) - .getMainEvent(), SoundSource.RECORDS); + .getMainEvent(), SoundSource.RECORDS, SoundInstance.createUnseededRandom()); this.size = size; looping = true; active = true; 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..d7c48ef36 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 @@ -25,7 +25,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.util.Mth; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -110,7 +110,7 @@ public class WhistleTileEntity extends SmartTileEntity implements IHaveGoggleInf String[] pitches = Lang.translateDirect("generic.notes") .getString() .split(";"); - TextComponent textComponent = new TextComponent(spacing); + MutableComponent textComponent = Component.literal(spacing); tooltip.add(textComponent.append(Lang.translateDirect("generic.pitch", pitches[pitch % pitches.length]))); return true; } 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..eba2fb78d 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 @@ -86,7 +86,7 @@ import net.minecraft.nbt.Tag; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.ai.village.poi.PoiTypes; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; @@ -115,7 +115,7 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.model.data.IModelData; +import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.IItemHandlerModifiable; @@ -148,7 +148,7 @@ public abstract class Contraption { private CompletableFuture simplifiedEntityColliderProvider; // Client - public Map modelData; + public Map modelData; public Map presentTileEntities; public List maybeInstancedTileEntities; public List specialRenderedTileEntities; @@ -982,7 +982,7 @@ public abstract class Contraption { // we add the POI data back now // (code copied from ServerWorld.onBlockStateChange) ServerLevel serverWorld = (ServerLevel) world; - PoiType.forState(block.state) + PoiTypes.forState(block.state) .ifPresent(poiType -> { world.getServer() .execute(() -> { @@ -1136,7 +1136,7 @@ public abstract class Contraption { } protected boolean shouldUpdateAfterMovement(StructureBlockInfo info) { - if (PoiType.forState(info.state) + if (PoiTypes.forState(info.state) .isPresent()) return false; if (info.state.getBlock() instanceof SlidingDoorBlock) 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..6ec92487a 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 @@ -33,7 +33,7 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.InputEvent.ClickInputEvent; +import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.event.TickEvent.PlayerTickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -69,7 +69,7 @@ public class ContraptionHandlerClient { @SubscribeEvent @OnlyIn(Dist.CLIENT) - public static void rightClickingOnContraptionsGetsHandledLocally(ClickInputEvent event) { + public static void rightClickingOnContraptionsGetsHandledLocally(InputEvent.InteractionKeyMappingTriggered event) { Minecraft mc = Minecraft.getInstance(); LocalPlayer player = mc.player; 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..608a2cf5d 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 @@ -9,7 +9,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; public interface IDisplayAssemblyExceptions { @@ -19,7 +18,7 @@ public interface IDisplayAssemblyExceptions { return false; if (!tooltip.isEmpty()) - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy() .append(Lang.translateDirect("gui.assembly.exception") 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..b0ed3ca3a 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 @@ -26,7 +26,7 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult.Type; import net.minecraft.world.phys.Vec3; import net.minecraftforge.common.ForgeMod; -import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.network.PacketDistributor; @@ -36,7 +36,7 @@ public class SuperGlueHandler { @SubscribeEvent public static void glueListensForBlockPlacement(EntityPlaceEvent event) { - LevelAccessor world = event.getWorld(); + LevelAccessor world = event.getLevel(); Entity entity = event.getEntity(); BlockPos pos = event.getPos(); 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..ee3b0ff27 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 @@ -28,7 +28,7 @@ public class SuperGlueItem extends Item { @SubscribeEvent public static void glueItemAlwaysPlacesWhenUsed(PlayerInteractEvent.RightClickBlock event) { if (event.getHitVec() != null) { - BlockState blockState = event.getWorld() + BlockState blockState = event.getLevel() .getBlockState(event.getHitVec() .getBlockPos()); if (blockState.getBlock()instanceof AbstractChassisBlock cb) 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..337d3e331 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 @@ -18,7 +18,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.item.ItemStack; @@ -62,7 +62,7 @@ public class SuperGlueSelectionHandler { if (clusterCooldown > 0) { if (clusterCooldown == 25) - player.displayClientMessage(TextComponent.EMPTY, true); + player.displayClientMessage(Component.empty(), true); CreateClient.OUTLINER.keep(clusterOutlineSlot); clusterCooldown--; } 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..3f9d39029 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 @@ -23,12 +23,12 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.GameType; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; public class TrainHUD { - public static final IIngameOverlay OVERLAY = TrainHUD::renderOverlay; + public static final IGuiOverlay OVERLAY = TrainHUD::renderOverlay; static LerpedFloat displayedSpeed = LerpedFloat.linear(); static LerpedFloat displayedThrottle = LerpedFloat.linear(); @@ -105,7 +105,7 @@ public class TrainHUD { return cce.getCarriage(); } - public static void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, + public static void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { Minecraft mc = Minecraft.getInstance(); if (mc.options.hideGui || mc.gameMode.getPlayerMode() == GameType.SPECTATOR) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlock.java index 4efb61f65..9f54717cf 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlock.java @@ -292,7 +292,7 @@ public class CartAssemblerBlock extends BaseRailBlock .forEach(itemStack -> player.getInventory() .placeItemBackInInventory(itemStack)); if (world instanceof ServerLevel) - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); world.setBlockAndUpdate(pos, getRailBlock(state)); return InteractionResult.SUCCESS; } 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..7559c9ba1 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 @@ -195,7 +195,7 @@ public class MinecartContraptionItem extends Item { @SubscribeEvent public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) { Entity entity = event.getTarget(); - Player player = event.getPlayer(); + Player player = event.getEntity(); if (player == null || entity == null) return; @@ -223,7 +223,7 @@ public class MinecartContraptionItem extends Item { return; } - if (event.getWorld().isClientSide) { + if (event.getLevel().isClientSide) { event.setCancellationResult(InteractionResult.SUCCESS); event.setCanceled(true); return; 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..6da40fd85 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.piston; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllSoundEvents; @@ -15,6 +13,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.util.StringRepresentable; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -111,7 +110,7 @@ public class MechanicalPistonBlock extends DirectionalAxisKineticBlock implement } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource r) { Direction direction = state.getValue(FACING); BlockState pole = worldIn.getBlockState(pos.relative(direction.getOpposite())); if (!AllBlocks.PISTON_EXTENSION_POLE.has(pole)) 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..467bb0a62 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.train; -import java.util.Random; - import com.mojang.math.Vector3f; import com.simibubi.create.AllItems; import com.simibubi.create.foundation.networking.AllPackets; @@ -13,6 +11,7 @@ import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.vehicle.AbstractMinecart; import net.minecraft.world.item.ItemStack; @@ -22,7 +21,7 @@ import net.minecraft.world.phys.Vec3; public class CouplingHandlerClient { static AbstractMinecart selectedCart; - static Random r = new Random(); + static RandomSource r = RandomSource.create(); public static void tick() { if (selectedCart == null) 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..ed8094cdb 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 @@ -35,7 +35,7 @@ public class MinecartCouplingItem extends Item { if (!(interacted instanceof AbstractMinecart)) return; AbstractMinecart minecart = (AbstractMinecart) interacted; - Player player = event.getPlayer(); + Player player = event.getEntity(); if (player == null) return; LazyOptional capability = @@ -60,7 +60,7 @@ public class MinecartCouplingItem extends Item { protected static boolean onCouplingInteractOnMinecart(PlayerInteractEvent.EntityInteract event, AbstractMinecart minecart, Player player, MinecartController controller) { - Level world = event.getWorld(); + Level world = event.getLevel(); if (controller.isFullyCoupled()) { if (!world.isClientSide) CouplingHandler.status(player, "two_couplings_max"); @@ -76,7 +76,7 @@ public class MinecartCouplingItem extends Item { int couplings = (controller.isConnectedToCoupling() ? 1 : 0) + (controller.isLeadingCoupling() ? 1 : 0); if (couplings == 0) return false; - if (event.getWorld().isClientSide) + if (event.getLevel().isClientSide) return true; for (boolean forward : Iterate.trueAndFalse) { 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..a3fbf8c69 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 @@ -36,7 +36,7 @@ import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.common.util.NonNullConsumer; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.world.ChunkEvent; +import net.minecraftforge.event.level.ChunkEvent; public class CapabilityMinecartController implements ICapabilitySerializable { @@ -144,7 +144,7 @@ public class CapabilityMinecartController implements ICapabilitySerializable carts = loadedMinecartsByUUID.get(event.getWorld()); + Map carts = loadedMinecartsByUUID.get(event.getLevel()); for (MinecartController minecartController : carts.values()) { if (minecartController == null) continue; @@ -153,7 +153,7 @@ public class CapabilityMinecartController implements ICapabilitySerializable getQuads(BlockState state, Direction side, Random rand, IModelData data) { - List quads = super.getQuads(state, side, rand, data); - if (data.hasProperty(PIPE_PROPERTY)) { - PipeModelData pipeData = data.getData(PIPE_PROPERTY); + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { + List quads = super.getQuads(state, side, rand, data, renderType); + if (data.has(PIPE_PROPERTY)) { + PipeModelData pipeData = data.get(PIPE_PROPERTY); quads = side != null && pipeData.hasRim(side) ? new ArrayList<>() : new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData); + addQuads(quads, state, side, rand, data, pipeData, renderType); } return quads; } - private void addQuads(List quads, BlockState state, Direction side, Random rand, IModelData data, - PipeModelData pipeData) { + private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, + PipeModelData pipeData, RenderType renderType) { BakedModel bracket = pipeData.getBracket(); if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data)); + quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); if (hideAttachmentConnector && side == Direction.UP) return; for (Direction d : Iterate.directions) @@ -81,10 +82,10 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData { quads.addAll(AllBlockPartials.PIPE_ATTACHMENTS.get(pipeData.getRim(d)) .get(d) .get() - .getQuads(state, side, rand, data)); + .getQuads(state, side, rand, data, renderType)); if (pipeData.isEncased()) quads.addAll(AllBlockPartials.FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data)); + .getQuads(state, side, rand, data, renderType)); } private static class PipeModelData { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java index 7bf15694d..6e4322d26 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.fluids; -import java.util.Random; - import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock; @@ -13,6 +11,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.BlockGetter; @@ -130,7 +129,7 @@ public class PumpBlock extends DirectionalKineticBlock implements SimpleWaterlog } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..af9be4892 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 @@ -14,7 +14,6 @@ import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; @@ -70,7 +69,7 @@ public class FillingRecipe extends ProcessingRecipe implements IA List matchingFluidStacks = fluidIngredients.get(0) .getMatchingFluidStacks(); if (matchingFluidStacks.size() == 0) - return new TextComponent("Invalid"); + return Component.literal("Invalid"); return Lang.translateDirect("recipe.assembly.spout_filling_fluid", matchingFluidStacks.get(0).getDisplayName().getString()); } 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..685dc3ae4 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.fluids.pipes; import java.util.Map; import java.util.Optional; -import java.util.Random; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; @@ -20,6 +19,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; @@ -108,7 +108,7 @@ public class AxisPipeBlock extends RotatedPillarBlock implements IWrenchableWith } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..3935309c7 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 @@ -8,7 +8,6 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert import static net.minecraft.world.level.block.state.properties.BlockStateProperties.WEST; import java.util.Map; -import java.util.Random; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllTileEntities; @@ -25,6 +24,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; @@ -101,7 +101,7 @@ public class EncasedPipeBlock extends Block implements IWrenchable, ISpecialBloc } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..c8b93b2e1 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.fluids.pipes; import java.util.Arrays; import java.util.Optional; -import java.util.Random; import javax.annotation.Nullable; @@ -23,6 +22,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; @@ -171,7 +171,7 @@ public class FluidPipeBlock extends PipeBlock } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..c5417ce72 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.fluids.pipes; -import java.util.Random; - import javax.annotation.Nonnull; import com.simibubi.create.AllShapes; @@ -16,6 +14,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; @@ -122,7 +121,7 @@ public class FluidValveBlock extends DirectionalAxisKineticBlock implements IAxi } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..7079dd8fb 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.fluids.pipes; -import java.util.Random; - import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.fluids.FluidPropagator; @@ -16,6 +14,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; @@ -124,7 +123,7 @@ public class SmartFluidPipeBlock extends FaceAttachedHorizontalDirectionalBlock } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { FluidPropagator.propagateChangedPipe(world, pos, state); } 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..2a7482c07 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 @@ -10,7 +10,6 @@ import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.item.alchemy.Potion; @@ -82,7 +81,7 @@ public class PotionFluid extends VirtualFluid { @Override public Component getDisplayName(FluidStack stack) { - return new TranslatableComponent(getTranslationKey(stack)); + return Component.translatable(getTranslationKey(stack)); } @Override 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..b4854a8a4 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 @@ -14,8 +14,7 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.util.Tuple; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectInstance; @@ -105,10 +104,10 @@ public class PotionFluidHandler { List list = PotionUtils.getAllEffects(fs.getOrCreateTag()); List> list1 = Lists.newArrayList(); if (list.isEmpty()) { - tooltip.add((new TranslatableComponent("effect.none")).withStyle(ChatFormatting.GRAY)); + tooltip.add((Component.translatable("effect.none")).withStyle(ChatFormatting.GRAY)); } else { for (MobEffectInstance effectinstance : list) { - TranslatableComponent textcomponent = new TranslatableComponent(effectinstance.getDescriptionId()); + MutableComponent textcomponent = Component.translatable(effectinstance.getDescriptionId()); MobEffect effect = effectinstance.getEffect(); Map map = effect.getAttributeModifiers(); if (!map.isEmpty()) { @@ -125,7 +124,7 @@ public class PotionFluidHandler { if (effectinstance.getAmplifier() > 0) { textcomponent.append(" ") - .append(new TranslatableComponent("potion.potency." + effectinstance.getAmplifier()).getString()); + .append(Component.translatable("potion.potency." + effectinstance.getAmplifier()).getString()); } if (effectinstance.getDuration() > 20) { @@ -140,8 +139,8 @@ public class PotionFluidHandler { } if (!list1.isEmpty()) { - tooltip.add(new TextComponent("")); - tooltip.add((new TranslatableComponent("potion.whenDrank")).withStyle(ChatFormatting.DARK_PURPLE)); + tooltip.add(Component.literal("")); + tooltip.add((Component.translatable("potion.whenDrank")).withStyle(ChatFormatting.DARK_PURPLE)); for (Tuple tuple : list1) { AttributeModifier attributemodifier2 = tuple.getB(); @@ -155,19 +154,19 @@ public class PotionFluidHandler { } if (d0 > 0.0D) { - tooltip.add((new TranslatableComponent( + tooltip.add((Component.translatable( "attribute.modifier.plus." + attributemodifier2.getOperation() .toValue(), ItemStack.ATTRIBUTE_MODIFIER_FORMAT.format(d1), - new TranslatableComponent(tuple.getA()))) + Component.translatable(tuple.getA()))) .withStyle(ChatFormatting.BLUE)); } else if (d0 < 0.0D) { d1 = d1 * -1.0D; - tooltip.add((new TranslatableComponent( + tooltip.add((Component.translatable( "attribute.modifier.take." + attributemodifier2.getOperation() .toValue(), ItemStack.ATTRIBUTE_MODIFIER_FORMAT.format(d1), - new TranslatableComponent(tuple.getA()))) + Component.translatable(tuple.getA()))) .withStyle(ChatFormatting.RED)); } } 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..69f3a84a6 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 @@ -29,7 +29,6 @@ import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; @@ -147,8 +146,8 @@ public class BoilerData { if (!isActive()) return false; - Component indent = new TextComponent(IHaveGoggleInformation.spacing); - Component indent2 = new TextComponent(IHaveGoggleInformation.spacing + " "); + Component indent = Component.literal(IHaveGoggleInformation.spacing); + Component indent2 = Component.literal(IHaveGoggleInformation.spacing + " "); calcMinMaxForSize(boilerSize); @@ -169,7 +168,7 @@ public class BoilerData { double totalSU = getEngineEfficiency(boilerSize) * 16 * Math.max(boilerLevel, attachedEngines) * BlockStressValues.getCapacity(AllBlocks.STEAM_ENGINE.get()); - tooltip.add(Lang.empty()); + tooltip.add(Component.empty()); Lang.translate("tooltip.capacityProvided") .style(ChatFormatting.GRAY) @@ -234,12 +233,12 @@ public class BoilerData { } private MutableComponent blockComponent(int level) { - return new TextComponent( + return Component.literal( "" + "\u2588".repeat(minValue) + "\u2592".repeat(level - minValue) + "\u2591".repeat(maxValue - level)); } private MutableComponent barComponent(int level) { - return TextComponent.EMPTY.copy() + return Component.empty() .append(bars(Math.max(0, minValue - 1), ChatFormatting.DARK_GREEN)) .append(bars(minValue > 0 ? 1 : 0, ChatFormatting.GREEN)) .append(bars(Math.max(0, level - minValue), ChatFormatting.DARK_GREEN)) @@ -250,7 +249,7 @@ public class BoilerData { } private MutableComponent bars(int level, ChatFormatting format) { - return new TextComponent(Strings.repeat('|', level)).withStyle(format); + return Component.literal(Strings.repeat('|', level)).withStyle(format); } public boolean evaluate(FluidTankTileEntity controller) { 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..8fad341a4 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 @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Random; import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.api.connectivity.ConnectivityHandler; @@ -12,14 +11,16 @@ 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.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.data.IModelData; -import net.minecraftforge.client.model.data.ModelDataMap.Builder; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelData.Builder; import net.minecraftforge.client.model.data.ModelProperty; public class FluidTankModel extends CTModel { @@ -46,22 +47,22 @@ public class FluidTankModel extends CTModel { CullData cullData = new CullData(); for (Direction d : Iterate.horizontalDirections) cullData.setCulled(d, ConnectivityHandler.isConnected(world, pos, pos.relative(d))); - return super.gatherModelData(builder, world, pos, state).withInitial(CULL_PROPERTY, cullData); + return super.gatherModelData(builder, world, pos, state).with(CULL_PROPERTY, cullData); } @Override - public List getQuads(BlockState state, Direction side, Random rand, IModelData extraData) { + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData extraData, RenderType renderType) { if (side != null) return Collections.emptyList(); List quads = new ArrayList<>(); for (Direction d : Iterate.directions) { - if (extraData.hasProperty(CULL_PROPERTY) && extraData.getData(CULL_PROPERTY) + if (extraData.has(CULL_PROPERTY) && extraData.get(CULL_PROPERTY) .isCulled(d)) continue; - quads.addAll(super.getQuads(state, d, rand, extraData)); + quads.addAll(super.getQuads(state, d, rand, extraData, renderType)); } - quads.addAll(super.getQuads(state, null, rand, extraData)); + quads.addAll(super.getQuads(state, null, rand, extraData, renderType)); return quads; } 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..ac31ad293 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 @@ -13,7 +13,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; @@ -24,26 +23,26 @@ public class GoggleConfigScreen extends AbstractSimiScreen { private final List tooltip; public GoggleConfigScreen() { - Component componentSpacing = new TextComponent(" "); + Component componentSpacing = Component.literal(" "); tooltip = new ArrayList<>(); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay1"))); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay2") .withStyle(ChatFormatting.GRAY))); - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay3"))); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay4"))); - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay5") .withStyle(ChatFormatting.GRAY))); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay6") .withStyle(ChatFormatting.GRAY))); - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("gui.config.overlay7"))); tooltip.add(componentSpacing.plainCopy() 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..d06f060a5 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 @@ -30,7 +30,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.GameType; @@ -38,19 +37,19 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; public class GoggleOverlayRenderer { - public static final IIngameOverlay OVERLAY = GoggleOverlayRenderer::renderOverlay; + public static final IGuiOverlay OVERLAY = GoggleOverlayRenderer::renderOverlay; private static final Map outlines = CreateClient.OUTLINER.getOutlines(); public static int hoverTicks = 0; public static BlockPos lastHovered = null; - public static void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, + public static void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { Minecraft mc = Minecraft.getInstance(); if (mc.options.hideGui || mc.gameMode.getPlayerMode() == GameType.SPECTATOR) @@ -100,7 +99,7 @@ public class GoggleOverlayRenderer { if (hasHoveringInformation) { if (!tooltip.isEmpty()) - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); IHaveHoveringInformation hte = (IHaveHoveringInformation) te; hoverAddedInformation = hte.addToTooltip(tooltip, mc.player.isShiftKeyDown()); @@ -143,11 +142,11 @@ public class GoggleOverlayRenderer { if (!pistonFound) return; if (!tooltip.isEmpty()) - tooltip.add(TextComponent.EMPTY); + tooltip.add(Component.empty()); tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy() .append(Lang.translateDirect("gui.goggles.pole_length")) - .append(new TextComponent(" " + poles))); + .append(Component.literal(" " + poles))); } if (tooltip.isEmpty()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GogglesModel.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GogglesModel.java index 84c2aae73..d683b65dd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GogglesModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GogglesModel.java @@ -14,11 +14,11 @@ public class GogglesModel extends BakedModelWrapper { } @Override - public BakedModel handlePerspective(TransformType cameraTransformType, PoseStack mat) { + public BakedModel applyTransform(TransformType cameraTransformType, PoseStack mat, boolean leftHanded) { if (cameraTransformType == TransformType.HEAD) return AllBlockPartials.GOGGLES.get() - .handlePerspective(cameraTransformType, mat); - return super.handlePerspective(cameraTransformType, mat); + .applyTransform(cameraTransformType, mat, leftHanded); + return super.applyTransform(cameraTransformType, mat, leftHanded); } } 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..c4acb873e 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 @@ -8,7 +8,6 @@ import com.simibubi.create.foundation.utility.LangBuilder; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -27,7 +26,7 @@ public interface IHaveGoggleInformation { * Use Lang.[...].forGoggles(list) */ @Deprecated - Component componentSpacing = new TextComponent(spacing); + Component componentSpacing = Component.literal(spacing); /** * this method will be called when looking at a TileEntity that implemented this 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..d09d31d62 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 @@ -19,7 +19,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; @@ -239,7 +238,7 @@ public class SequencedAssemblyRecipe implements Recipe { int length = sequencedAssemblyRecipe.sequence.size(); int step = sequencedAssemblyRecipe.getStep(stack); int total = length * sequencedAssemblyRecipe.loops; - toolTip.add(new TextComponent("")); + toolTip.add(Component.literal("")); toolTip.add(Lang.translateDirect("recipe.sequenced_assembly") .withStyle(ChatFormatting.GRAY)); toolTip.add(Lang.translateDirect("recipe.assembly.progress", step, total) @@ -256,7 +255,7 @@ public class SequencedAssemblyRecipe implements Recipe { toolTip.add(Lang.translateDirect("recipe.assembly.next", textComponent) .withStyle(ChatFormatting.AQUA)); else - toolTip.add(new TextComponent("-> ").append(textComponent) + toolTip.add(Component.literal("-> ").append(textComponent) .withStyle(ChatFormatting.DARK_AQUA)); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeSerializer.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeSerializer.java index 173366166..7a7622002 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeSerializer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeSerializer.java @@ -10,10 +10,8 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraftforge.registries.ForgeRegistryEntry; -public class SequencedAssemblyRecipeSerializer extends ForgeRegistryEntry> - implements RecipeSerializer { +public class SequencedAssemblyRecipeSerializer implements RecipeSerializer { public SequencedAssemblyRecipeSerializer() {} 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..f89c61d65 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.particle; 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; @@ -35,7 +34,7 @@ public class AirFlowParticle extends SimpleAnimatedParticle { this.lifetime = 40; hasPhysics = false; selectSprite(7); - Vec3 offset = VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .25f); + Vec3 offset = VecHelper.offsetRandomly(Vec3.ZERO, world.random, .25f); this.setPos(x + offset.x, y + offset.y, z + offset.z); this.xo = x; this.yo = y; diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleData.java b/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleData.java index d1ee0af6c..560502d41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleData.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleData.java @@ -2,13 +2,13 @@ package com.simibubi.create.content.contraptions.particle; import com.mojang.serialization.Codec; -import net.minecraft.client.particle.ParticleEngine; import net.minecraft.client.particle.ParticleProvider; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleOptions.Deserializer; import net.minecraft.core.particles.ParticleType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.RegisterParticleProvidersEvent; public interface ICustomParticleData { @@ -30,8 +30,8 @@ public interface ICustomParticleData { public ParticleProvider getFactory(); @OnlyIn(Dist.CLIENT) - public default void register(ParticleType type, ParticleEngine particles) { - particles.register(type, getFactory()); + public default void register(ParticleType type, RegisterParticleProvidersEvent event) { + event.register(type, getFactory()); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleDataWithSprite.java b/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleDataWithSprite.java index 7f465b9b4..6a6e2909a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleDataWithSprite.java +++ b/src/main/java/com/simibubi/create/content/contraptions/particle/ICustomParticleDataWithSprite.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.particle; import com.mojang.serialization.Codec; -import net.minecraft.client.particle.ParticleEngine; import net.minecraft.client.particle.ParticleEngine.SpriteParticleRegistration; import net.minecraft.client.particle.ParticleProvider; import net.minecraft.core.particles.ParticleOptions; @@ -10,6 +9,7 @@ import net.minecraft.core.particles.ParticleOptions.Deserializer; import net.minecraft.core.particles.ParticleType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.RegisterParticleProvidersEvent; public interface ICustomParticleDataWithSprite extends ICustomParticleData { @@ -36,8 +36,8 @@ public interface ICustomParticleDataWithSprite extend @Override @OnlyIn(Dist.CLIENT) - public default void register(ParticleType type, ParticleEngine particles) { - particles.register(type, getMetaFactory()); + public default void register(ParticleType type, RegisterParticleProvidersEvent event) { + event.register(type, getMetaFactory()); } } 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..44c8df685 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 @@ -101,13 +101,13 @@ public class BasinRecipe extends ProcessingRecipe { if (!ingredient.test(extracted)) continue; // Catalyst items are never consumed - if (extracted.hasContainerItem() && extracted.getContainerItem() + if (extracted.hasCraftingRemainingItem() && extracted.getCraftingRemainingItem() .sameItem(extracted)) continue Ingredients; if (!simulate) availableItems.extractItem(slot, 1, false); - else if (extracted.hasContainerItem()) - recipeOutputItems.add(extracted.getContainerItem() + else if (extracted.hasCraftingRemainingItem()) + recipeOutputItems.add(extracted.getCraftingRemainingItem() .copy()); extractedItemsFromSlot[slot]++; continue Ingredients; 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..05f4c8d2d 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.processing; -import java.util.Random; - import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.fluid.FluidRenderer; @@ -21,6 +19,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; @@ -49,7 +48,7 @@ public class BasinRenderer extends SmartTileEntityRenderer { TransformStack.cast(ms) .rotateY(basin.ingredientRotation.getValue(partialTicks)); - Random r = new Random(pos.hashCode()); + RandomSource r = RandomSource.create(pos.hashCode()); Vec3 baseVector = new Vec3(.125, level, 0); IItemHandlerModifiable inv = basin.itemCapability.orElse(new ItemStackHandler()); 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..38297459a 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 @@ -5,7 +5,6 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Optional; -import java.util.Random; import javax.annotation.Nonnull; @@ -47,6 +46,7 @@ import net.minecraft.nbt.StringTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; @@ -525,7 +525,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (simulate) return true; for (ItemStack itemStack : outputItems) { - if (itemStack.hasContainerItem() && itemStack.getContainerItem() + if (itemStack.hasCraftingRemainingItem() && itemStack.getCraftingRemainingItem() .sameItem(itemStack)) continue; spoutputBuffer.add(itemStack.copy()); @@ -570,7 +570,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor private boolean acceptItemOutputsIntoBasin(List outputItems, boolean simulate, IItemHandler targetInv) { for (ItemStack itemStack : outputItems) { // Catalyst items are never consumed - if (itemStack.hasContainerItem() && itemStack.getContainerItem() + if (itemStack.hasCraftingRemainingItem() && itemStack.getCraftingRemainingItem() .sameItem(itemStack)) continue; if (!ItemHandlerHelper.insertItemStacked(targetInv, itemStack.copy(), simulate) @@ -609,7 +609,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor } private void createFluidParticles() { - Random r = level.random; + RandomSource r = level.random; if (!visualizedOutputFluids.isEmpty()) createOutputFluidParticles(r); @@ -656,7 +656,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor } } - private void createOutputFluidParticles(Random r) { + private void createOutputFluidParticles(RandomSource r) { BlockState blockState = getBlockState(); if (!(blockState.getBlock() instanceof BasinBlock)) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java index 17444bb20..d7599330c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeSerializer.java @@ -17,12 +17,10 @@ import net.minecraft.util.GsonHelper; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.registries.ForgeRegistryEntry; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class ProcessingRecipeSerializer> extends ForgeRegistryEntry> - implements RecipeSerializer { +public class ProcessingRecipeSerializer> implements RecipeSerializer { private final ProcessingRecipeFactory factory; 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..aa74f630d 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 @@ -182,7 +182,7 @@ public class BlazeBurnerBlock extends HorizontalDirectionalBlock implements ITE< return InteractionResultHolder.fail(ItemStack.EMPTY); if (!doNotConsume) { - ItemStack container = stack.hasContainerItem() ? stack.getContainerItem() : ItemStack.EMPTY; + ItemStack container = stack.hasCraftingRemainingItem() ? stack.getCraftingRemainingItem() : ItemStack.EMPTY; if (!world.isClientSide) { stack.shrink(1); } 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..e4c6ca040 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.processing.burner; -import java.util.Random; - import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; @@ -23,6 +21,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; @@ -42,7 +41,7 @@ public class BlazeBurnerMovementBehaviour implements MovementBehaviour { if (!shouldRender(context)) return; - Random r = context.world.getRandom(); + RandomSource r = context.world.getRandom(); Vec3 c = context.position; Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f) .multiply(1, 0, 1)); 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..e4cdec3d7 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 @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.processing.burner; import java.util.List; -import java.util.Random; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; @@ -24,6 +23,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -291,7 +291,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity { if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE) return; - Random r = level.getRandom(); + RandomSource r = level.getRandom(); Vec3 c = VecHelper.getCenterOf(worldPosition); Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f) @@ -323,7 +323,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity { public void spawnParticleBurst(boolean soulFlame) { Vec3 c = VecHelper.getCenterOf(worldPosition); - Random r = level.random; + RandomSource r = level.random; for (int i = 0; i < 20; i++) { Vec3 offset = VecHelper.offsetRandomly(Vec3.ZERO, r, .5f) .multiply(1, .25f, 1) 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..2c30ecfed 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 @@ -6,7 +6,6 @@ import java.util.List; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; public enum InstructionSpeedModifiers { @@ -24,7 +23,7 @@ public enum InstructionSpeedModifiers { value = modifier; } private InstructionSpeedModifiers(int modifier, String label) { - this.label = new TextComponent(label); + this.label = Component.literal(label); translationKey = "gui.sequenced_gearshift.speed." + Lang.asId(name()); value = modifier; } 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..12d63cb62 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.relays.advanced.sequencer; -import java.util.Random; - import com.simibubi.create.AllItems; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; @@ -15,6 +13,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -65,7 +64,7 @@ public class SequencedGearshiftBlock extends HorizontalAxisKineticBlock implemen } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource r) { boolean previouslyPowered = state.getValue(STATE) != 0; boolean isPowered = worldIn.hasNeighborSignal(pos); withTileEntityDo(worldIn, pos, sgte -> sgte.onRedstoneUpdate(isPowered, previouslyPowered)); 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..11bb19fb2 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 @@ -17,7 +17,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.ListTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; public class SequencedGearshiftScreen extends AbstractSimiScreen { @@ -150,7 +149,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { if (def.hasValueParameter) { String text = def.formatValue(instruction.value); int stringWidth = font.width(text); - label(ms, 90 + (12 - stringWidth / 2), yOffset - 3, new TextComponent(text)); + label(ms, 90 + (12 - stringWidth / 2), yOffset - 3, Component.literal(text)); } if (def.hasSpeedParameter) label(ms, 127, yOffset - 3, instruction.speedModifier.label); 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..50fef95ed 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 @@ -77,7 +77,7 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; import net.minecraftforge.common.Tags; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -96,7 +96,7 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(new RenderProperties()); } @@ -147,7 +147,7 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE { @@ -28,11 +29,11 @@ public class BeltModel extends BakedModelWrapper { } @Override - public List getQuads(BlockState state, Direction side, Random rand, IModelData extraData) { - List quads = super.getQuads(state, side, rand, extraData); - if (!extraData.hasProperty(CASING_PROPERTY)) + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData extraData, RenderType renderType) { + List quads = super.getQuads(state, side, rand, extraData, renderType); + if (!extraData.has(CASING_PROPERTY)) return quads; - CasingType type = extraData.getData(CASING_PROPERTY); + CasingType type = extraData.get(CASING_PROPERTY); if (type == CasingType.NONE || type == CasingType.BRASS) return quads; 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..1a3aed05a 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 @@ -22,7 +22,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; @@ -473,7 +473,7 @@ public class BeltSlicer { mc.player.displayClientMessage(Lang.translateDirect(feedback.langKey) .withStyle(feedback.formatting), true); else - mc.player.displayClientMessage(new TextComponent(""), true); + mc.player.displayClientMessage(Component.literal(""), true); if (feedback.bb != null) CreateClient.OUTLINER.chaseAABB("BeltSlicer", feedback.bb) 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..04613a782 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 @@ -54,8 +54,7 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.model.data.IModelData; -import net.minecraftforge.client.model.data.ModelDataMap; +import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; @@ -511,8 +510,8 @@ public class BeltTileEntity extends KineticTileEntity { public static final ModelProperty CASING_PROPERTY = new ModelProperty<>(); @Override - public IModelData getModelData() { - return new ModelDataMap.Builder().withInitial(CASING_PROPERTY, casing) + public ModelData getModelData() { + return ModelData.builder().with(CASING_PROPERTY, casing) .build(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockModel.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockModel.java index dc52fdd69..d738810c0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockModel.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/BracketedKineticBlockModel.java @@ -2,21 +2,21 @@ package com.simibubi.create.content.contraptions.relays.elementary; import java.util.Collections; import java.util.List; -import java.util.Random; -import com.jozufozu.flywheel.core.virtual.VirtualEmptyModelData; +import com.jozufozu.flywheel.core.model.ModelUtil; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.BakedModelWrapper; -import net.minecraftforge.client.model.data.IModelData; -import net.minecraftforge.client.model.data.ModelDataMap; +import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.client.model.data.ModelProperty; public class BracketedKineticBlockModel extends BakedModelWrapper { @@ -28,30 +28,35 @@ public class BracketedKineticBlockModel extends BakedModelWrapper { } @Override - public IModelData getModelData(BlockAndTintGetter world, BlockPos pos, BlockState state, IModelData tileData) { - if (VirtualEmptyModelData.is(tileData)) + public ModelData getModelData(BlockAndTintGetter world, BlockPos pos, BlockState state, ModelData tileData) { + if (isVirtual(tileData)) return tileData; BracketedModelData data = new BracketedModelData(); BracketedTileEntityBehaviour attachmentBehaviour = TileEntityBehaviour.get(world, pos, BracketedTileEntityBehaviour.TYPE); if (attachmentBehaviour != null) data.putBracket(attachmentBehaviour.getBracket()); - return new ModelDataMap.Builder().withInitial(BRACKET_PROPERTY, data) + return ModelData.builder().with(BRACKET_PROPERTY, data) .build(); } @Override - public List getQuads(BlockState state, Direction side, Random rand, IModelData data) { - if (!VirtualEmptyModelData.is(data)) { - if (data.hasProperty(BRACKET_PROPERTY)) { - BracketedModelData pipeData = data.getData(BRACKET_PROPERTY); + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { + if (!isVirtual(data)) { + if (data.has(BRACKET_PROPERTY)) { + BracketedModelData pipeData = data.get(BRACKET_PROPERTY); BakedModel bracket = pipeData.getBracket(); if (bracket != null) - return bracket.getQuads(state, side, rand, data); + return bracket.getQuads(state, side, rand, data, renderType); } return Collections.emptyList(); } - return super.getQuads(state, side, rand, data); + return super.getQuads(state, side, rand, data, renderType); + } + + // TODO: move to Flywheel's ModelUtil + private static boolean isVirtual(ModelData data) { + return data.has(ModelUtil.VIRTUAL_PROPERTY) && data.get(ModelUtil.VIRTUAL_PROPERTY); } private static class BracketedModelData { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/GearshiftBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/GearshiftBlock.java index 099d2c3f8..4d19ec27a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/encased/GearshiftBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/encased/GearshiftBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.contraptions.relays.encased; -import java.util.Random; - import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.RotationPropagator; import com.simibubi.create.content.contraptions.base.KineticTileEntity; @@ -9,6 +7,7 @@ import com.simibubi.create.foundation.block.ITE; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -76,7 +75,7 @@ public class GearshiftBlock extends AbstractEncasedShaftBlock implements ITE { player.getInventory().placeItemBackInInventory(itemStack); }); - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); world.destroyBlock(pos, false); playRemoveSound(world, pos); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItem.java b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItem.java index 58cdb01d7..9b4f63d58 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/wrench/WrenchItem.java @@ -25,7 +25,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.event.entity.player.AttackEntityEvent; public class WrenchItem extends Item { @@ -71,7 +71,7 @@ public class WrenchItem extends Item { if (player != null && !player.isCreative()) Block.getDrops(state, (ServerLevel) world, pos, world.getBlockEntity(pos), player, context.getItemInHand()) .forEach(itemStack -> player.getInventory().placeItemBackInInventory(itemStack)); - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); world.destroyBlock(pos, false); AllSoundEvents.WRENCH_REMOVE.playOnServer(world, pos, 1, Create.RANDOM.nextFloat() * .5f + .5f); return InteractionResult.SUCCESS; @@ -81,7 +81,7 @@ public class WrenchItem extends Item { Entity target = event.getTarget(); if (!(target instanceof AbstractMinecart)) return; - Player player = event.getPlayer(); + Player player = event.getEntity(); ItemStack heldItem = player.getMainHandItem(); if (!AllItems.WRENCH.isIn(heldItem)) return; @@ -93,7 +93,7 @@ public class WrenchItem extends Item { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new WrenchItemRenderer())); } 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..633ade1e8 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/ChromaticCompoundItem.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities; -import java.util.Random; - import org.apache.commons.lang3.mutable.MutableBoolean; import com.simibubi.create.AllItems; @@ -20,6 +18,7 @@ import net.minecraft.core.NonNullList; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; @@ -67,7 +66,7 @@ public class ChromaticCompoundItem extends Item { } @Override - public int getItemStackLimit(ItemStack stack) { + public int getMaxStackSize(ItemStack stack) { return isBarVisible(stack) ? 1 : 16; } @@ -162,7 +161,7 @@ public class ChromaticCompoundItem extends Item { } // Find a light source and eat it. - Random r = world.random; + RandomSource r = world.random; int range = 3; float rate = 1 / 2f; if (r.nextFloat() > rate) 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..322ed97ff 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 @@ -10,8 +10,8 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.network.protocol.game.ClientboundSetSubtitleTextPacket; import net.minecraft.network.protocol.game.ClientboundSetTitleTextPacket; import net.minecraft.network.protocol.game.ClientboundSetTitlesAnimationPacket; @@ -20,7 +20,6 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -70,13 +69,13 @@ public class BackTankUtil { player.connection.send(new ClientboundSetTitlesAnimationPacket(10, 40, 10)); player.connection.send(new ClientboundSetSubtitleTextPacket( - new TextComponent("\u26A0 ").withStyle(depleted ? ChatFormatting.RED : ChatFormatting.GOLD) + Component.literal("\u26A0 ").withStyle(depleted ? ChatFormatting.RED : ChatFormatting.GOLD) .append(component.withStyle(ChatFormatting.GRAY)))); - player.connection.send(new ClientboundSetTitleTextPacket(new TextComponent(""))); + player.connection.send(new ClientboundSetTitleTextPacket(Component.literal(""))); } public static int maxAir(ItemStack backtank) { - return maxAir(EnchantmentHelper.getItemEnchantmentLevel(AllEnchantments.CAPACITY.get(), backtank)); + return maxAir(backtank.getEnchantmentLevel(AllEnchantments.CAPACITY.get())); } public static int maxAir(int enchantLevel) { 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..32893362b 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 @@ -25,7 +25,6 @@ import net.minecraft.client.renderer.entity.RenderLayerParent; import net.minecraft.client.renderer.entity.layers.RenderLayer; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.tags.FluidTags; import net.minecraft.util.StringUtil; import net.minecraft.world.entity.LivingEntity; @@ -33,12 +32,12 @@ import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.GameType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; public class CopperBacktankArmorLayer> extends RenderLayer { - public static final IIngameOverlay REMAINING_AIR_OVERLAY = CopperBacktankArmorLayer::renderRemainingAirOverlay; + public static final IGuiOverlay REMAINING_AIR_OVERLAY = CopperBacktankArmorLayer::renderRemainingAirOverlay; public CopperBacktankArmorLayer(RenderLayerParent renderer) { super(renderer); @@ -106,7 +105,7 @@ public class CopperBacktankArmorLayer p_150895_2_) { - if (!allowdedIn(p_150895_1_)) + if (!allowedIn(p_150895_1_)) return; ItemStack stack = new ItemStack(this); diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java index da941de04..181dbc866 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java @@ -4,7 +4,6 @@ import java.util.List; import com.simibubi.create.AllItems; import com.simibubi.create.AllSoundEvents; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.particle.AirParticleData; import com.simibubi.create.foundation.advancement.AllAdvancements; @@ -73,7 +72,7 @@ public class CopperBacktankTileEntity extends KineticTileEntity implements Namea int max = BackTankUtil.maxAir(capacityEnchantLevel); if (level.isClientSide) { Vec3 centerOf = VecHelper.getCenterOf(worldPosition); - Vec3 v = VecHelper.offsetRandomly(centerOf, Create.RANDOM, .65f); + Vec3 v = VecHelper.offsetRandomly(centerOf, level.random, .65f); Vec3 m = centerOf.subtract(v); if (airLevel != max) level.addParticle(new AirParticleData(1, .05f), v.x, v.y, v.z, m.x, m.y, m.z); 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..06c796e51 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 @@ -8,7 +8,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.player.Player; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -20,8 +20,8 @@ public class DivingBootsItem extends CopperArmorItem { } @SubscribeEvent - public static void accellerateDescentUnderwater(LivingUpdateEvent event) { - LivingEntity entity = event.getEntityLiving(); + public static void accellerateDescentUnderwater(LivingTickEvent event) { + LivingEntity entity = event.getEntity(); if (!affects(entity)) return; diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java index bde2a4e65..1183c5435 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java @@ -12,7 +12,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -24,8 +24,8 @@ public class DivingHelmetItem extends CopperArmorItem { } @SubscribeEvent - public static void breatheUnderwater(LivingUpdateEvent event) { - LivingEntity entity = event.getEntityLiving(); + public static void breatheUnderwater(LivingTickEvent event) { + LivingEntity entity = event.getEntity(); Level world = entity.level; boolean second = world.getGameTime() % 20 == 0; boolean drowning = entity.getAirSupply() == 0; diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellTileEntity.java index 619e6e3f0..da99e9285 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/HauntedBellTileEntity.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.bell; -import java.util.Random; - import com.jozufozu.flywheel.core.PartialModel; import com.simibubi.create.AllBlockPartials; @@ -11,6 +9,7 @@ import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -67,7 +66,7 @@ public class HauntedBellTileEntity extends AbstractBellTileEntity { if (!level.isClientSide) return; - Random rand = level.getRandom(); + RandomSource rand = level.getRandom(); if (rand.nextFloat() > 0.25f) return; @@ -75,7 +74,7 @@ public class HauntedBellTileEntity extends AbstractBellTileEntity { playSound(rand); } - protected void spawnParticle(Random rand) { + protected void spawnParticle(RandomSource rand) { double x = worldPosition.getX() + rand.nextDouble(); double y = worldPosition.getY() + 0.5; double z = worldPosition.getZ() + rand.nextDouble(); @@ -85,7 +84,7 @@ public class HauntedBellTileEntity extends AbstractBellTileEntity { level.addParticle(ParticleTypes.SOUL, x, y, z, vx, vy, vz); } - protected void playSound(Random rand) { + protected void playSound(RandomSource rand) { float vol = rand.nextFloat() * 0.4F + rand.nextFloat() > 0.9F ? 0.6F : 0.0F; float pitch = 0.6F + rand.nextFloat() * 0.4F; level.playSound(null, worldPosition, SoundEvents.SOUL_ESCAPE, SoundSource.BLOCKS, vol, pitch); diff --git a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java index 4eea011d7..df6cebab2 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/bell/PeculiarBellBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.curiosities.bell; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.AllTileEntities; @@ -9,6 +7,7 @@ import com.simibubi.create.AllTileEntities; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -81,7 +80,7 @@ public class PeculiarBellBlock extends AbstractBellBlock } public void spawnConversionParticles(LevelAccessor world, BlockPos blockPos) { - Random random = world.getRandom(); + RandomSource random = world.getRandom(); int num = random.nextInt(10) + 15; for (int i = 0; i < num; i++) { float pitch = random.nextFloat() * 120 - 90; diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorBlock.java b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorBlock.java index 2f1dbd340..5cb2f4af4 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorBlock.java @@ -54,8 +54,8 @@ public class SlidingDoorBlock extends DoorBlock implements IWrenchable, ITE getQuads(BlockState state, Direction side, Random rand, IModelData extraData) { - List superQuads = super.getQuads(state, side, rand, extraData); - if (side != null || !extraData.hasProperty(CONNECTION_PROPERTY)) + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData extraData, RenderType renderType) { + List superQuads = super.getQuads(state, side, rand, extraData, renderType); + if (side != null || !extraData.has(CONNECTION_PROPERTY)) return superQuads; List quads = new ArrayList<>(superQuads); - ConnectionData data = extraData.getData(CONNECTION_PROPERTY); + ConnectionData data = extraData.get(CONNECTION_PROPERTY); for (Direction d : Iterate.horizontalDirections) if (data.isConnected(d)) quads.addAll(AllBlockPartials.METAL_GIRDER_BRACKETS.get(d) .get() - .getQuads(state, side, rand, extraData)); + .getQuads(state, side, rand, extraData, renderType)); return quads; } 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..8d9454342 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 @@ -3,8 +3,6 @@ package com.simibubi.create.content.curiosities.girder; import static net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock.FACE; import static net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; @@ -30,6 +28,7 @@ import net.minecraft.core.Direction.AxisDirection; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -145,7 +144,7 @@ public class GirderBlock extends Block implements SimpleWaterloggedBlock, IWrenc } @Override - public void tick(BlockState p_60462_, ServerLevel p_60463_, BlockPos p_60464_, Random p_60465_) { + public void tick(BlockState p_60462_, ServerLevel p_60463_, BlockPos p_60464_, RandomSource p_60465_) { Block.updateOrDestroy(p_60462_, Block.updateFromNeighbourShapes(p_60462_, p_60463_, p_60464_), p_60463_, p_60464_, 3); } 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..9db0959db 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 @@ -21,6 +21,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -29,11 +30,11 @@ import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.RenderLevelLastEvent; -import net.minecraftforge.client.model.data.EmptyModelData; +import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.event.TickEvent.ClientTickEvent; import net.minecraftforge.event.TickEvent.Phase; -import net.minecraftforge.event.world.BlockEvent.BreakEvent; -import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.BreakEvent; +import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -46,7 +47,7 @@ public class SymmetryHandler { @SubscribeEvent(priority = EventPriority.LOWEST) public static void onBlockPlaced(EntityPlaceEvent event) { - if (event.getWorld() + if (event.getLevel() .isClientSide()) return; if (!(event.getEntity() instanceof Player)) @@ -66,7 +67,7 @@ public class SymmetryHandler { @SubscribeEvent(priority = EventPriority.LOWEST) public static void onBlockDestroyed(BreakEvent event) { - if (event.getWorld() + if (event.getLevel() .isClientSide()) return; @@ -85,7 +86,7 @@ public class SymmetryHandler { public static void render(RenderLevelLastEvent event) { Minecraft mc = Minecraft.getInstance(); LocalPlayer player = mc.player; - Random random = new Random(); + RandomSource random = RandomSource.create(); for (int i = 0; i < Inventory.getSelectionSize(); i++) { ItemStack stackInSlot = player.getInventory() @@ -122,10 +123,10 @@ public class SymmetryHandler { mc.getBlockRenderer() .getModelRenderer() .tesselateBlock(player.level, model, Blocks.AIR.defaultBlockState(), pos, ms, builder, true, - random, Mth.getSeed(pos), OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE); + random, Mth.getSeed(pos), OverlayTexture.NO_OVERLAY, ModelData.EMPTY, RenderType.solid()); - buffer.endBatch(); ms.popPose(); + buffer.endBatch(); } } 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..ad0a9904d 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 @@ -44,7 +44,7 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.common.util.BlockSnapshot; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.fml.DistExecutor; @@ -331,7 +331,7 @@ public class SymmetryWandItem extends Item { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new SymmetryWandItemRenderer())); } 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..6763bea91 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 @@ -19,7 +19,6 @@ import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.Vec3; @@ -61,9 +60,9 @@ public class SymmetryWandScreen extends AbstractSimiScreen { int x = guiLeft; int y = guiTop; - labelType = new Label(x + 49, y + 28, TextComponent.EMPTY).colored(0xFFFFFFFF) + labelType = new Label(x + 49, y + 28, Component.empty()).colored(0xFFFFFFFF) .withShadow(); - labelAlign = new Label(x + 49, y + 50, TextComponent.EMPTY).colored(0xFFFFFFFF) + labelAlign = new Label(x + 49, y + 50, Component.empty()).colored(0xFFFFFFFF) .withShadow(); int state = diff --git a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java index 6257a88df..bfc16a6f7 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/toolbox/ToolboxBlock.java @@ -163,7 +163,7 @@ public class ToolboxBlock extends HorizontalDirectionalBlock implements SimpleWa return InteractionResult.SUCCESS; withTileEntityDo(world, pos, - toolbox -> NetworkHooks.openGui((ServerPlayer) player, toolbox, toolbox::sendToContainer)); + toolbox -> NetworkHooks.openScreen((ServerPlayer) player, toolbox, toolbox::sendToContainer)); return InteractionResult.SUCCESS; } 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..06c7d77b1 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 @@ -32,12 +32,12 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; public class ToolboxHandlerClient { - public static final IIngameOverlay OVERLAY = ToolboxHandlerClient::renderOverlay; + public static final IGuiOverlay OVERLAY = ToolboxHandlerClient::renderOverlay; static int COOLDOWN = 0; @@ -155,7 +155,7 @@ public class ToolboxHandlerClient { ScreenOpener.open(new RadialToolboxMenu(toolboxes, RadialToolboxMenu.State.SELECT_BOX, null)); } - public static void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height) { + public static void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { Minecraft mc = Minecraft.getInstance(); if (mc.options.hideGui) return; 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..f0f336984 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 @@ -434,7 +434,7 @@ public class BlueprintEntity extends HangingEntity int i = section.index; if (!level.isClientSide && player instanceof ServerPlayer) { - NetworkHooks.openGui((ServerPlayer) player, section, buf -> { + NetworkHooks.openScreen((ServerPlayer) player, section, buf -> { buf.writeVarInt(getId()); buf.writeVarInt(i); }); 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..a0deb1c22 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 @@ -36,8 +36,8 @@ import net.minecraft.world.level.GameType; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.HitResult.Type; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.registries.ForgeRegistries; @@ -46,7 +46,7 @@ import net.minecraftforge.registries.tags.ITagManager; public class BlueprintOverlayRenderer { - public static final IIngameOverlay OVERLAY = BlueprintOverlayRenderer::renderOverlay; + public static final IGuiOverlay OVERLAY = BlueprintOverlayRenderer::renderOverlay; static boolean active; static boolean empty; @@ -239,7 +239,7 @@ public class BlueprintOverlayRenderer { } } - public static void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, + public static void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { Minecraft mc = Minecraft.getInstance(); if (mc.options.hideGui) diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java index a32a7c5dd..e711c77a3 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java @@ -36,17 +36,17 @@ import net.minecraft.world.phys.HitResult.Type; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; -import net.minecraftforge.client.event.InputEvent.ClickInputEvent; +import net.minecraftforge.client.event.InputEvent; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.common.ForgeMod; import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; import net.minecraftforge.event.entity.living.LivingKnockBackEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.world.BlockEvent.BreakEvent; -import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.BreakEvent; +import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -79,11 +79,11 @@ public class ExtendoGripItem extends Item { public static final String DUAL_EXTENDO_MARKER = "createDualExtendo"; @SubscribeEvent - public static void holdingExtendoGripIncreasesRange(LivingUpdateEvent event) { + public static void holdingExtendoGripIncreasesRange(LivingTickEvent event) { if (!(event.getEntity() instanceof Player)) return; - Player player = (Player) event.getEntityLiving(); + Player player = (Player) event.getEntity(); CompoundTag persistentData = player.getPersistentData(); boolean inOff = AllItems.EXTENDO_GRIP.isIn(player.getOffhandItem()); @@ -124,7 +124,7 @@ public class ExtendoGripItem extends Item { @SubscribeEvent public static void addReachToJoiningPlayersHoldingExtendo(PlayerEvent.PlayerLoggedInEvent event) { - Player player = event.getPlayer(); + Player player = event.getEntity(); CompoundTag persistentData = player.getPersistentData(); if (persistentData.contains(DUAL_EXTENDO_MARKER)) @@ -137,7 +137,7 @@ public class ExtendoGripItem extends Item { @SubscribeEvent @OnlyIn(Dist.CLIENT) - public static void dontMissEntitiesWhenYouHaveHighReachDistance(ClickInputEvent event) { + public static void dontMissEntitiesWhenYouHaveHighReachDistance(InputEvent.InteractionKeyMappingTriggered event) { Minecraft mc = Minecraft.getInstance(); LocalPlayer player = mc.player; if (mc.level == null || player == null) @@ -311,7 +311,7 @@ public class ExtendoGripItem extends Item { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new ExtendoGripItemRenderer())); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripRenderHandler.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripRenderHandler.java index fbfd0735b..057b900b0 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripRenderHandler.java @@ -109,7 +109,7 @@ public class ExtendoGripRenderHandler { // Render gun ms.pushPose(); ms.translate(flip * -0.1f, 0, -0.3f); - ItemInHandRenderer firstPersonRenderer = mc.getItemInHandRenderer(); + ItemInHandRenderer firstPersonRenderer = mc.getEntityRenderDispatcher().getItemInHandRenderer(); TransformType transform = rightHand ? TransformType.FIRST_PERSON_RIGHT_HAND : TransformType.FIRST_PERSON_LEFT_HAND; firstPersonRenderer.renderItem(mc.player, notInOffhand ? heldItem : offhandItem, transform, !rightHand, @@ -139,11 +139,11 @@ public class ExtendoGripRenderHandler { } private static ItemStack getRenderedMainHandStack() { - return Minecraft.getInstance().getItemInHandRenderer().mainHandItem; + return Minecraft.getInstance().getEntityRenderDispatcher().getItemInHandRenderer().mainHandItem; } private static ItemStack getRenderedOffHandStack() { - return Minecraft.getInstance().getItemInHandRenderer().offHandItem; + return Minecraft.getInstance().getEntityRenderDispatcher().getItemInHandRenderer().offHandItem; } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItem.java b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItem.java index 65ffc7bf4..3e007d31f 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItem.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.curiosities.tools; -import java.util.Random; import java.util.function.Consumer; import javax.annotation.ParametersAreNonnullByDefault; @@ -17,6 +16,7 @@ import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; @@ -36,7 +36,7 @@ import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.common.ToolAction; import net.minecraftforge.common.ToolActions; import net.minecraftforge.common.util.FakePlayer; @@ -214,7 +214,7 @@ public class SandPaperItem extends Item implements CustomUseEffectsItem { } @Override - public boolean triggerUseEffects(ItemStack stack, LivingEntity entity, int count, Random random) { + public boolean triggerUseEffects(ItemStack stack, LivingEntity entity, int count, RandomSource random) { CompoundTag tag = stack.getOrCreateTag(); if (tag.contains("Polishing")) { ItemStack polishing = ItemStack.of(tag.getCompound("Polishing")); @@ -251,7 +251,7 @@ public class SandPaperItem extends Item implements CustomUseEffectsItem { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new SandPaperItemRenderer())); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java index e87875809..f537bcb46 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java @@ -24,8 +24,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction.Axis; 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.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -45,7 +43,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; public class PotatoCannonItem extends ProjectileWeaponItem { @@ -222,21 +220,21 @@ public class PotatoCannonItem extends ProjectileWeaponItem { String _reload = "potato_cannon.ammo.reload_ticks"; String _knockback = "potato_cannon.ammo.knockback"; - tooltip.add(new TextComponent("")); - tooltip.add(new TranslatableComponent(ammo.getDescriptionId()).append(new TextComponent(":")) + tooltip.add(Component.literal("")); + tooltip.add(Component.translatable(ammo.getDescriptionId()).append(Component.literal(":")) .withStyle(ChatFormatting.GRAY)); PotatoCannonProjectileType type = PotatoProjectileTypeManager.getTypeForStack(ammo) .get(); - TextComponent spacing = new TextComponent(" "); + MutableComponent spacing = Component.literal(" "); ChatFormatting green = ChatFormatting.GREEN; ChatFormatting darkGreen = ChatFormatting.DARK_GREEN; float damageF = type.getDamage() * additionalDamageMult; - MutableComponent damage = new TextComponent( + MutableComponent damage = Component.literal( damageF == Mth.floor(damageF) ? "" + Mth.floor(damageF) : "" + damageF); - MutableComponent reloadTicks = new TextComponent("" + type.getReloadTicks()); + MutableComponent reloadTicks = Component.literal("" + type.getReloadTicks()); MutableComponent knockback = - new TextComponent("" + (type.getKnockback() + additionalKnockback)); + Component.literal("" + (type.getKnockback() + additionalKnockback)); damage = damage.withStyle(additionalDamageMult > 1 ? green : darkGreen); knockback = knockback.withStyle(additionalKnockback > 0 ? green : darkGreen); @@ -278,7 +276,7 @@ public class PotatoCannonItem extends ProjectileWeaponItem { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new PotatoCannonItemRenderer())); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonRenderHandler.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonRenderHandler.java index 916397bf3..0b0cfa4b8 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonRenderHandler.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.curiosities.weapons; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllItems; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.particle.AirParticleData; import com.simibubi.create.content.curiosities.zapper.ShootableGadgetRenderHandler; import com.simibubi.create.foundation.utility.VecHelper; @@ -37,11 +36,11 @@ public class PotatoCannonRenderHandler extends ShootableGadgetRenderHandler { return; ClientLevel world = Minecraft.getInstance().level; for (int i = 0; i < 2; i++) { - Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), Create.RANDOM, .025f); + Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), world.random, .025f); world.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), location.x, location.y, location.z, m.x, m.y, m.z); - Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), Create.RANDOM, .5f); + Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), world.random, .5f); world.addParticle(new AirParticleData(1, 1 / 4f), location.x, location.y, location.z, m2.x, m2.y, m2.z); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootableGadgetRenderHandler.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootableGadgetRenderHandler.java index 4c70d5dcc..0337cd5eb 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootableGadgetRenderHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ShootableGadgetRenderHandler.java @@ -78,12 +78,12 @@ public abstract class ShootableGadgetRenderHandler { AbstractClientPlayer player = mc.player; PlayerRenderer playerrenderer = (PlayerRenderer) mc.getEntityRenderDispatcher() .getRenderer(player); - ItemInHandRenderer firstPersonRenderer = mc.getItemInHandRenderer(); + ItemInHandRenderer firstPersonRenderer = mc.getEntityRenderDispatcher().getItemInHandRenderer(); PoseStack ms = event.getPoseStack(); MultiBufferSource buffer = event.getMultiBufferSource(); int light = event.getPackedLight(); - float pt = event.getPartialTicks(); + float pt = event.getPartialTick(); boolean rightHand = event.getHand() == InteractionHand.MAIN_HAND ^ mc.player.getMainArm() == HumanoidArm.LEFT; float recoil = rightHand ? Mth.lerp(pt, lastRightHandAnimation, rightHandAnimation) diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperInteractionHandler.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperInteractionHandler.java index 84c37ddf9..48dc71e48 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperInteractionHandler.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperInteractionHandler.java @@ -30,11 +30,11 @@ public class ZapperInteractionHandler { @SubscribeEvent public static void leftClickingBlocksWithTheZapperSelectsTheBlock(PlayerInteractEvent.LeftClickBlock event) { - if (event.getWorld().isClientSide) + if (event.getLevel().isClientSide) return; - ItemStack heldItem = event.getPlayer() + ItemStack heldItem = event.getEntity() .getMainHandItem(); - if (heldItem.getItem() instanceof ZapperItem && trySelect(heldItem, event.getPlayer())) { + if (heldItem.getItem() instanceof ZapperItem && trySelect(heldItem, event.getEntity())) { event.setCancellationResult(InteractionResult.FAIL); event.setCanceled(true); } 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..4ae79f11a 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 @@ -16,7 +16,6 @@ import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Blocks; @@ -44,7 +43,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen { this.background = background; this.zapper = zapper; this.hand = hand; - title = TextComponent.EMPTY; + title = Component.empty(); brightColor = 0xFEFEFE; fontColor = AllGuiTextures.FONT_COLOR; 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..067839b23 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 @@ -23,7 +23,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; public class WorldshaperItem extends ZapperItem { @@ -98,7 +98,7 @@ public class WorldshaperItem extends ZapperItem { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new WorldshaperItemRenderer())); } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java index 1028fc319..7a7948c23 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/terrainzapper/WorldshaperScreen.java @@ -22,7 +22,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; @@ -82,7 +81,7 @@ public class WorldshaperScreen extends ZapperScreen { int x = guiLeft; int y = guiTop; - brushLabel = new Label(x + 61, y + 25, TextComponent.EMPTY).withShadow(); + brushLabel = new Label(x + 61, y + 25, Component.empty()).withShadow(); brushInput = new SelectionScrollInput(x + 56, y + 20, 77, 18).forOptions(brushOptions) .titled(Lang.translateDirect("gui.terrainzapper.brush")) .writingTo(brushLabel) @@ -111,7 +110,7 @@ public class WorldshaperScreen extends ZapperScreen { brushParams.clear(); for (int index = 0; index < 3; index++) { - Label label = new Label(x + 65 + 20 * index, y + 45, TextComponent.EMPTY).withShadow(); + Label label = new Label(x + 65 + 20 * index, y + 45, Component.empty()).withShadow(); final int finalIndex = index; ScrollInput input = new ScrollInput(x + 56 + 20 * index, y + 40, 18, 18) @@ -155,10 +154,10 @@ public class WorldshaperScreen extends ZapperScreen { if (currentBrush.hasConnectivityOptions()) { int x1 = x + 7 + 4 * 18; int y1 = y + 79; - followDiagonalsIndicator = new Indicator(x1, y1 - 6, TextComponent.EMPTY); + followDiagonalsIndicator = new Indicator(x1, y1 - 6, Component.empty()); followDiagonals = new IconButton(x1, y1, AllIcons.I_FOLLOW_DIAGONAL); x1 += 18; - acrossMaterialsIndicator = new Indicator(x1, y1 - 6, TextComponent.EMPTY); + acrossMaterialsIndicator = new Indicator(x1, y1 - 6, Component.empty()); acrossMaterials = new IconButton(x1, y1, AllIcons.I_FOLLOW_MATERIAL); followDiagonals.withCallback(() -> { 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..84d64ad51 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 @@ -40,7 +40,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; @@ -752,7 +751,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave .withStyle(ChatFormatting.WHITE)); for (ItemStack item : allStacks) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.brass_tunnel.contains_entry", new TranslatableComponent(item.getDescriptionId()) + .append(Lang.translateDirect("tooltip.brass_tunnel.contains_entry", Component.translatable(item.getDescriptionId()) .getString(), item.getCount())) .withStyle(ChatFormatting.GRAY)); } 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..c35f7c019 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 @@ -32,7 +32,7 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; import net.minecraftforge.common.util.LazyOptional; public abstract class AbstractChuteBlock extends Block implements IWrenchable, ITE { @@ -42,7 +42,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I } @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(new ReducedDestroyEffects()); } 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..873aa83e6 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 @@ -38,7 +38,6 @@ import net.minecraft.core.particles.ItemParticleOption; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.util.Mth; import net.minecraft.world.Containers; import net.minecraft.world.entity.item.ItemEntity; @@ -719,7 +718,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor .withStyle(ChatFormatting.YELLOW))); if (!item.isEmpty()) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.chute.contains", new TranslatableComponent(item.getDescriptionId()) + .append(Lang.translateDirect("tooltip.chute.contains", Component.translatable(item.getDescriptionId()) .getString(), item.getCount())) .withStyle(ChatFormatting.GREEN)); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteBlock.java index 92f23a34c..88a5a4c14 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteBlock.java @@ -1,11 +1,10 @@ package com.simibubi.create.content.logistics.block.chute; -import java.util.Random; - import com.simibubi.create.AllTileEntities; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -38,7 +37,7 @@ public class SmartChuteBlock extends AbstractChuteBlock { } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource r) { boolean previouslyPowered = state.getValue(POWERED); if (previouslyPowered != worldIn.hasNeighborSignal(pos)) worldIn.setBlock(pos, state.cycle(POWERED), 2); 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..8d84b0c33 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 @@ -50,10 +50,10 @@ public class EjectorTargetHandler { if (currentItem == null) return; BlockPos pos = event.getPos(); - Level world = event.getWorld(); + Level world = event.getLevel(); if (!world.isClientSide) return; - Player player = event.getPlayer(); + Player player = event.getEntity(); if (player == null || player.isSpectator() || !player.isShiftKeyDown()) return; @@ -71,9 +71,9 @@ public class EjectorTargetHandler { public static void leftClickingBlocksDeselectsThem(PlayerInteractEvent.LeftClickBlock event) { if (currentItem == null) return; - if (!event.getWorld().isClientSide) + if (!event.getLevel().isClientSide) return; - if (!event.getPlayer() + if (!event.getEntity() .isShiftKeyDown()) return; BlockPos pos = event.getPos(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/PoweredLatchBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/PoweredLatchBlock.java index 60119b98a..56858b057 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/PoweredLatchBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/PoweredLatchBlock.java @@ -1,12 +1,11 @@ package com.simibubi.create.content.logistics.block.diodes; -import java.util.Random; - import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionResult; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -70,7 +69,7 @@ public class PoweredLatchBlock extends ToggleLatchBlock { } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource random) { boolean back = state.getValue(POWERED); boolean shouldBack = this.shouldTurnOn(worldIn, pos, state); boolean side = state.getValue(POWERED_SIDE); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/ToggleLatchBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/ToggleLatchBlock.java index 4dc408e76..47c86403a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/ToggleLatchBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/ToggleLatchBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.diodes; -import java.util.Random; - import com.simibubi.create.AllItems; import net.minecraft.core.BlockPos; @@ -9,6 +7,7 @@ import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -63,7 +62,7 @@ public class ToggleLatchBlock extends AbstractDiodeBlock { } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource random) { boolean poweredPreviously = state.getValue(POWERED); super.tick(state, worldIn, pos, random); BlockState newState = worldIn.getBlockState(pos); 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..9ba8cd707 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 @@ -39,7 +39,7 @@ public class DisplayLinkBlockItem extends BlockItem { public static void gathererItemAlwaysPlacesWhenUsed(PlayerInteractEvent.RightClickBlock event) { ItemStack usedItem = event.getItemStack(); if (usedItem.getItem() instanceof DisplayLinkBlockItem) { - if (AllBlocks.DISPLAY_LINK.has(event.getWorld() + if (AllBlocks.DISPLAY_LINK.has(event.getLevel() .getBlockState(event.getPos()))) return; event.setUseBlock(Result.DENY); 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..42e414a65 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 @@ -35,7 +35,6 @@ import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; 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.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; @@ -137,7 +136,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { int rows = stats.maxRows(); int startIndex = Math.min(te.targetLine, rows); - targetLineLabel = new Label(x + 65, y + 109, TextComponent.EMPTY).withShadow(); + targetLineLabel = new Label(x + 65, y + 109, Component.empty()).withShadow(); targetLineLabel.text = target.getLineOptionText(startIndex); if (rows > 1) { @@ -189,7 +188,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { if (!sources.isEmpty()) { int startIndex = Math.max(sources.indexOf(te.activeSource), 0); - sourceTypeLabel = new Label(x + 65, y + 30, TextComponent.EMPTY).withShadow(); + sourceTypeLabel = new Label(x + 65, y + 30, Component.empty()).withShadow(); sourceTypeLabel.text = sources.get(startIndex) .getName(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/AccumulatedItemCountDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/AccumulatedItemCountDisplaySource.java index b72de2b78..274417f3a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/AccumulatedItemCountDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/AccumulatedItemCountDisplaySource.java @@ -5,14 +5,14 @@ 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 net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class AccumulatedItemCountDisplaySource extends NumericSingleLineDisplaySource { @Override protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { - return new TextComponent(String.valueOf(context.sourceConfig() + return Component.literal(String.valueOf(context.sourceConfig() .getInt("Collected"))); } 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..34678b644 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 @@ -15,8 +15,8 @@ import com.simibubi.create.foundation.utility.Lang; 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.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.LecternBlockEntity; @@ -50,7 +50,7 @@ public class BoilerDisplaySource extends DisplaySource { return reduce.orElse(EMPTY_LINE); }); - return List.of(componentList.reduce((comp1, comp2) -> comp1.append(new TextComponent("\n")) + return List.of(componentList.reduce((comp1, comp2) -> comp1.append(Component.literal("\n")) .append(comp2)) .orElse(EMPTY_LINE)); } @@ -128,9 +128,9 @@ public class BoilerDisplaySource extends DisplaySource { int lw = labelWidth(); if (forFlapDisplay) { - size = new TextComponent(Strings.repeat(' ', lw - labelWidthOf("size"))).append(size); - water = new TextComponent(Strings.repeat(' ', lw - labelWidthOf("water"))).append(water); - heat = new TextComponent(Strings.repeat(' ', lw - labelWidthOf("heat"))).append(heat); + size = Component.literal(Strings.repeat(' ', lw - labelWidthOf("size"))).append(size); + water = Component.literal(Strings.repeat(' ', lw - labelWidthOf("water"))).append(water); + heat = Component.literal(Strings.repeat(' ', lw - labelWidthOf("heat"))).append(heat); } return Stream.of(List.of(Lang.translateDirect(label, boiler.getHeatLevelTextComponent())), @@ -150,7 +150,7 @@ public class BoilerDisplaySource extends DisplaySource { private MutableComponent labelOf(String label) { if (label.isBlank()) - return TextComponent.EMPTY.copy(); + return Component.empty(); return Lang.translateDirect("boiler." + label); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/DisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/DisplaySource.java index c779b4a56..cff9268c6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/DisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/DisplaySource.java @@ -15,16 +15,14 @@ import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; 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.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; public abstract class DisplaySource extends DisplayBehaviour { - public static final List EMPTY = ImmutableList.of(new TextComponent("")); - public static final MutableComponent EMPTY_LINE = new TextComponent(""); - public static final MutableComponent WHITESPACE = new TextComponent(" "); + public static final List EMPTY = ImmutableList.of(Component.literal("")); + public static final MutableComponent EMPTY_LINE = Component.literal(""); + public static final MutableComponent WHITESPACE = Component.literal(" "); public abstract List provideText(DisplayLinkContext context, DisplayTargetStats stats); @@ -55,7 +53,7 @@ public abstract class DisplaySource extends DisplayBehaviour { } public Component getName() { - return new TranslatableComponent(id.getNamespace() + ".display_source." + getTranslationKey()); + return Component.translatable(id.getNamespace() + ".display_source." + getTranslationKey()); } public void loadFlapDisplayLayout(DisplayLinkContext context, FlapDisplayTileEntity flapDisplay, FlapDisplayLayout layout, int lineIndex) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/EnchantPowerDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/EnchantPowerDisplaySource.java index 4ce1e54b1..8ddbb5ebe 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/EnchantPowerDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/EnchantPowerDisplaySource.java @@ -1,13 +1,12 @@ package com.simibubi.create.content.logistics.block.display.source; -import java.util.Random; - import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -17,13 +16,13 @@ import net.minecraft.world.level.block.entity.EnchantmentTableBlockEntity; public class EnchantPowerDisplaySource extends NumericSingleLineDisplaySource { - protected static final Random random = new Random(); + protected static final RandomSource random = RandomSource.create(); protected static final ItemStack stack = new ItemStack(Items.DIAMOND_PICKAXE); @Override protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { if (!(context.getSourceTE() instanceof EnchantmentTableBlockEntity enchantmentTile)) - return ZERO; + return ZERO.copy(); BlockPos pos = context.getSourcePos(); Level level = context.level(); @@ -39,7 +38,7 @@ public class EnchantPowerDisplaySource extends NumericSingleLineDisplaySource { int cost = EnchantmentHelper.getEnchantmentCost(random, 2, (int) enchantPower, stack); - return new TextComponent(String.valueOf(cost)); + return Component.literal(String.valueOf(cost)); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidAmountDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidAmountDisplaySource.java index 55b96be2a..b7002bdcc 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidAmountDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/FluidAmountDisplaySource.java @@ -7,8 +7,8 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBe import com.simibubi.create.foundation.tileEntity.behaviour.inventory.TankManipulationBehaviour; import com.simibubi.create.foundation.utility.FluidFormatter; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.IFluidHandler; @@ -38,7 +38,7 @@ public class FluidAmountDisplaySource extends SingleLineDisplaySource { collected += stack.getAmount(); } - return new TextComponent(FluidFormatter.asString(collected, false)); + return Component.literal(FluidFormatter.asString(collected, false)); } @Override 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 f0ef3d45f..ce56dc6c3 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 @@ -19,8 +19,8 @@ import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.FluidFormatter; import com.simibubi.create.foundation.utility.IntAttached; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.material.Fluid; import net.minecraftforge.fluids.FluidStack; @@ -63,7 +63,7 @@ public class FluidListDisplaySource extends ValueListDisplaySource { .limit(maxRows) .map(entry -> IntAttached.with( entry.getValue(), - new TranslatableComponent(fluidNames.get(entry.getKey()).getTranslationKey())) + Component.translatable(fluidNames.get(entry.getKey()).getTranslationKey())) ); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemCountDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemCountDisplaySource.java index b74f7827f..8ac66970e 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemCountDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/ItemCountDisplaySource.java @@ -6,8 +6,8 @@ import com.simibubi.create.content.logistics.block.redstone.ContentObserverTileE import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; +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.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.items.IItemHandler; @@ -18,14 +18,14 @@ public class ItemCountDisplaySource extends NumericSingleLineDisplaySource { protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { BlockEntity sourceTE = context.getSourceTE(); if (!(sourceTE instanceof ContentObserverTileEntity cote)) - return ZERO; + return ZERO.copy(); InvManipulationBehaviour invManipulationBehaviour = cote.getBehaviour(InvManipulationBehaviour.TYPE); FilteringBehaviour filteringBehaviour = cote.getBehaviour(FilteringBehaviour.TYPE); IItemHandler handler = invManipulationBehaviour.getInventory(); if (handler == null) - return ZERO; + return ZERO.copy(); int collected = 0; for (int i = 0; i < handler.getSlots(); i++) { @@ -37,7 +37,7 @@ public class ItemCountDisplaySource extends NumericSingleLineDisplaySource { collected += stack.getCount(); } - return new TextComponent(String.valueOf(collected)); + return Component.literal(String.valueOf(collected)); } @Override 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..df059fb3d 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 @@ -12,7 +12,6 @@ import net.minecraft.nbt.FloatTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -24,7 +23,7 @@ public class ItemThoughputDisplaySource extends AccumulatedItemCountDisplaySourc protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { CompoundTag conf = context.sourceConfig(); if (conf.contains("Inactive")) - return new TextComponent("0"); + return ZERO.copy(); double interval = 20 * Math.pow(60, conf.getInt("Interval")); double rate = conf.getFloat("Rate") * 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..0dbf26fba 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 @@ -15,7 +15,7 @@ public class KineticSpeedDisplaySource extends NumericSingleLineDisplaySource { @Override protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { if (!(context.getSourceTE()instanceof SpeedGaugeTileEntity gaugeTile)) - return ZERO; + return ZERO.copy(); boolean absoluteValue = context.sourceConfig() .getInt("Directional") == 0; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/NumericSingleLineDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/NumericSingleLineDisplaySource.java index 475a63cc8..78af65478 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/NumericSingleLineDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/NumericSingleLineDisplaySource.java @@ -3,11 +3,11 @@ package com.simibubi.create.content.logistics.block.display.source; import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; public abstract class NumericSingleLineDisplaySource extends SingleLineDisplaySource { - protected static final TextComponent ZERO = new TextComponent("0"); + protected static final Component ZERO = Component.literal("0"); @Override protected String getFlapDisplayLayoutName(DisplayLinkContext context) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/PercentOrProgressBarDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/PercentOrProgressBarDisplaySource.java index 3cf68de45..8578bc41f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/PercentOrProgressBarDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/PercentOrProgressBarDisplaySource.java @@ -9,8 +9,8 @@ import com.simibubi.create.content.logistics.block.display.target.DisplayTargetS import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection; import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.level.block.entity.SignBlockEntity; @@ -47,11 +47,11 @@ public abstract class PercentOrProgressBarDisplaySource extends NumericSingleLin for (int i = 0; i < emptySpaces; i++) s.append("\u2592"); - return new TextComponent(s.toString()); + return Component.literal(s.toString()); } protected MutableComponent formatNumeric(DisplayLinkContext context, Float currentLevel) { - return new TextComponent(Mth.clamp((int) (currentLevel * 100), 0, 100) + "%"); + return Component.literal(Mth.clamp((int) (currentLevel * 100), 0, 100) + "%"); } @Nullable 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..a96cd4e4b 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 @@ -4,8 +4,8 @@ import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraftforge.api.distmarker.Dist; @@ -20,7 +20,7 @@ public class RedstonePowerDisplaySource extends PercentOrProgressBarDisplaySourc @Override protected MutableComponent formatNumeric(DisplayLinkContext context, Float currentLevel) { - return new TextComponent(String.valueOf((int) (currentLevel * 15))); + return Component.literal(String.valueOf((int) (currentLevel * 15))); } @Override 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..9968335a2 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 @@ -9,8 +9,8 @@ import com.simibubi.create.foundation.utility.IntAttached; import com.simibubi.create.foundation.utility.Lang; 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.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.scores.Objective; @@ -41,7 +41,7 @@ public class ScoreboardDisplaySource extends ValueListDisplaySource { .getPlayerScores(objective) .stream() .limit(maxRows) - .map(score -> IntAttached.with(score.getScore(), new TextComponent(score.getOwner()).copy())) + .map(score -> IntAttached.with(score.getScore(), Component.literal(score.getOwner()).copy())) .sorted(IntAttached.comparator()); } 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..274b3cee7 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 @@ -12,8 +12,8 @@ import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -51,7 +51,7 @@ public abstract class SingleLineDisplaySource extends DisplaySource { String label = context.sourceConfig() .getString("Label"); if (!label.isEmpty()) - line = new TextComponent(label + " ").append(line); + line = Component.literal(label + " ").append(line); } return ImmutableList.of(line); @@ -64,7 +64,7 @@ public abstract class SingleLineDisplaySource extends DisplaySource { String label = context.sourceConfig() .getString("Label"); if (!label.isEmpty()) - return ImmutableList.of(ImmutableList.of(new TextComponent(label + " "), provideLine(context, stats))); + return ImmutableList.of(ImmutableList.of(Component.literal(label + " "), provideLine(context, stats))); } return super.provideFlapDisplayText(context, stats); 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..da57d5a26 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 @@ -20,20 +20,20 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; public class StationSummaryDisplaySource extends DisplaySource { - protected static final MutableComponent UNPREDICTABLE = new TextComponent(" ~ "); + protected static final MutableComponent UNPREDICTABLE = Component.literal(" ~ "); protected static final List EMPTY_ENTRY_4 = - ImmutableList.of(WHITESPACE, new TextComponent(" . "), WHITESPACE, WHITESPACE); + ImmutableList.of(WHITESPACE, Component.literal(" . "), WHITESPACE, WHITESPACE); protected static final List EMPTY_ENTRY_5 = - ImmutableList.of(WHITESPACE, new TextComponent(" . "), WHITESPACE, WHITESPACE, WHITESPACE); + ImmutableList.of(WHITESPACE, Component.literal(" . "), WHITESPACE, WHITESPACE, WHITESPACE); @Override public List provideText(DisplayLinkContext context, DisplayTargetStats stats) { @@ -67,7 +67,7 @@ public class StationSummaryDisplaySource extends DisplaySource { min++; sec = 0; } - lines.add(min > 0 ? new TextComponent(String.valueOf(min)) : WHITESPACE); + lines.add(min > 0 ? Component.literal(String.valueOf(min)) : WHITESPACE); lines.add(min > 0 ? Lang.translateDirect("display_source.station_summary.minutes") : Lang.translateDirect("display_source.station_summary.seconds", sec)); } @@ -86,7 +86,7 @@ public class StationSummaryDisplaySource extends DisplaySource { platform = platform.replace(string, ""); platform = platform.replace("*", "?"); - lines.add(new TextComponent(platform.trim())); + lines.add(Component.literal(platform.trim())); list.add(lines); }); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StopWatchDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StopWatchDisplaySource.java index 86d42f35d..9b0b70a83 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/StopWatchDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/StopWatchDisplaySource.java @@ -5,8 +5,8 @@ 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 net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class StopWatchDisplaySource extends SingleLineDisplaySource { @@ -32,7 +32,7 @@ public class StopWatchDisplaySource extends SingleLineDisplaySource { int minutes = (diff / 60 / 20) % 60; int seconds = (diff / 20) % 60; - MutableComponent component = new TextComponent((hours == 0 ? "" : (hours < 10 ? " " : "") + hours + ":") + MutableComponent component = Component.literal((hours == 0 ? "" : (hours < 10 ? " " : "") + hours + ":") + (minutes < 10 ? hours == 0 ? " " : "0" : "") + minutes + ":" + (seconds < 10 ? "0" : "") + seconds); return component; 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..0f90bfe2a 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 @@ -8,15 +8,15 @@ import com.simibubi.create.content.logistics.trains.management.display.FlapDispl import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.server.level.ServerLevel; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; public class TimeOfDayDisplaySource extends SingleLineDisplaySource { - public static final MutableComponent EMPTY_TIME = new TextComponent("--:--"); + public static final MutableComponent EMPTY_TIME = Component.literal("--:--"); @Override protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) { @@ -49,7 +49,7 @@ public class TimeOfDayDisplaySource extends SingleLineDisplaySource { minutes = Create.RANDOM.nextInt(40) + 60; } - MutableComponent component = new TextComponent( + MutableComponent component = Component.literal( (hours < 10 ? " " : "") + hours + ":" + (minutes < 10 ? "0" : "") + minutes + (c12 ? " " : "")); return c12 ? component.append(suffix) : component; 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..3ac80b423 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 @@ -19,8 +19,8 @@ import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.IntAttached; import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.block.entity.LecternBlockEntity; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -63,7 +63,7 @@ public abstract class ValueListDisplaySource extends DisplaySource { current = atIndex; continue; } - current.append(new TextComponent("\n")) + current.append(Component.literal("\n")) .append(atIndex); if ((i + 1) % ENTRIES_PER_PAGE == 0) { condensed.add(current); @@ -99,7 +99,7 @@ public abstract class ValueListDisplaySource extends DisplaySource { : Arrays.asList(name, shortened.getFirst(), shortened.getSecond()); } - MutableComponent formattedNumber = new TextComponent(String.valueOf(number)).append(WHITESPACE); + MutableComponent formattedNumber = Component.literal(String.valueOf(number)).append(WHITESPACE); return valueFirst() ? Arrays.asList(formattedNumber, name) : Arrays.asList(name, formattedNumber); } @@ -137,14 +137,14 @@ public abstract class ValueListDisplaySource extends DisplaySource { private Couple shorten(int number) { if (number >= 1000000) - return Couple.create(new TextComponent(String.valueOf(number / 1000000)), + return Couple.create(Component.literal(String.valueOf(number / 1000000)), Lang.translateDirect("display_source.value_list.million") .append(WHITESPACE)); if (number >= 1000) - return Couple.create(new TextComponent(String.valueOf(number / 1000)), + return Couple.create(Component.literal(String.valueOf(number / 1000)), Lang.translateDirect("display_source.value_list.thousand") .append(WHITESPACE)); - return Couple.create(new TextComponent(String.valueOf(number)), WHITESPACE); + return Couple.create(Component.literal(String.valueOf(number)), WHITESPACE); } protected boolean shortenNumbers(DisplayLinkContext context) { 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..819f5e32c 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 @@ -39,7 +39,7 @@ public abstract class DisplayTarget extends DisplayBehaviour { if (line == 0) return; - CompoundTag tag = target.getTileData(); + CompoundTag tag = target.getPersistentData(); CompoundTag compound = tag.getCompound("DisplayLink"); compound.putLong("Line" + line, context.te() .getBlockPos() @@ -48,7 +48,7 @@ public abstract class DisplayTarget extends DisplayBehaviour { } public boolean isReserved(int line, BlockEntity target, DisplayLinkContext context) { - CompoundTag tag = target.getTileData(); + CompoundTag tag = target.getPersistentData(); CompoundTag compound = tag.getCompound("DisplayLink"); if (!compound.contains("Line" + line)) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AbstractFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/AbstractFunnelBlock.java index 4726ef2b7..a1dbe0629 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AbstractFunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/AbstractFunnelBlock.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.logistics.block.funnel; -import java.util.Random; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -16,6 +15,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipula import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -31,7 +31,7 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; public abstract class AbstractFunnelBlock extends Block implements ITE, IWrenchable { @@ -43,7 +43,7 @@ public abstract class AbstractFunnelBlock extends Block implements ITE consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(new ReducedDestroyEffects()); } @@ -77,7 +77,7 @@ public abstract class AbstractFunnelBlock extends Block implements ITE { if (te.state != 0 && rand.nextFloat() < 0.25F) addParticles(stateIn, worldIn, pos, 0.5F); 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..6d04fe32e 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.redstone; -import java.util.Random; - import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; @@ -18,6 +16,7 @@ import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -113,7 +112,7 @@ public class ContentObserverBlock extends HorizontalDirectionalBlock implements } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource random) { worldIn.setBlock(pos, state.setValue(POWERED, false), 2); worldIn.updateNeighborsAt(pos, this); } 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..bfcc0f74c 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.logistics.block.redstone; import static net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED; -import java.util.Random; import java.util.function.BiConsumer; import com.simibubi.create.AllBlocks; @@ -20,6 +19,7 @@ import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -217,7 +217,7 @@ public class NixieTubeBlock extends DoubleFaceAttachedBlock } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource r) { updateDisplayedRedstoneValue(state, worldIn, pos); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeTileEntity.java index 90729a8c7..458eb28f9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeTileEntity.java @@ -15,8 +15,8 @@ import com.simibubi.create.foundation.utility.DynamicComponent; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -82,7 +82,7 @@ public class NixieTubeTileEntity extends SmartTileEntity { public MutableComponent getFullText() { return customText.map(DynamicComponent::get) - .orElse(new TextComponent("" + redstoneStrength)); + .orElse(Component.literal("" + redstoneStrength)); } public void updateRedstoneStrength(int signalStrength) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneContactBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneContactBlock.java index bb17964e9..03ee8b5e6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneContactBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneContactBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.redstone; -import java.util.Random; - import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; @@ -12,6 +10,7 @@ import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -79,7 +78,7 @@ public class RedstoneContactBlock extends WrenchableDirectionalBlock { } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource random) { boolean hasValidContact = hasValidContact(worldIn, pos, state.getValue(FACING)); if (state.getValue(POWERED) != hasValidContact) worldIn.setBlockAndUpdate(pos, state.setValue(POWERED, hasValidContact)); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkBlock.java index 4ac22be1f..c05385471 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/RedstoneLinkBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.redstone; -import java.util.Random; - import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.block.ITE; @@ -11,6 +9,7 @@ import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -61,7 +60,7 @@ public class RedstoneLinkBlock extends WrenchableDirectionalBlock implements ITE } @Override - public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, Random r) { + public void tick(BlockState state, ServerLevel worldIn, BlockPos pos, RandomSource r) { updateTransmittedSignal(state, worldIn, pos); } 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..879a2a844 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 @@ -3,7 +3,6 @@ package com.simibubi.create.content.logistics.block.redstone; import java.util.HashSet; import java.util.LinkedList; import java.util.List; -import java.util.Random; import java.util.Set; import java.util.function.BiConsumer; @@ -15,6 +14,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -149,7 +149,7 @@ public class RoseQuartzLampBlock extends Block implements IWrenchable { } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRand) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRand) { boolean wasPowering = pState.getValue(POWERING); boolean shouldBePowering = pState.getValue(ACTIVATE); 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..f2152a9b5 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.block.redstone; -import java.util.Random; - import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; @@ -14,6 +12,7 @@ import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -94,7 +93,7 @@ public class StockpileSwitchBlock extends HorizontalDirectionalBlock } @Override - public void tick(BlockState blockState, ServerLevel world, BlockPos pos, Random random) { + public void tick(BlockState blockState, ServerLevel world, BlockPos pos, RandomSource random) { getTileEntityOptional(world, pos).ifPresent(StockpileSwitchTileEntity::updatePowerAfterDelay); } 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..0e61be3ff 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 @@ -15,7 +15,6 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; public class StockpileSwitchScreen extends AbstractSimiScreen { @@ -57,7 +56,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { .startWithValue(te.getState() ? 1 : 0); offBelow = new ScrollInput(x + 36, y + 40, 102, 18).withRange(0, 100) - .titled(TextComponent.EMPTY.plainCopy()) + .titled(Component.empty()) .calling(state -> { lastModification = 0; offBelow.titled(Lang.translateDirect("gui.stockpile_switch.move_to_upper_at", state)); @@ -69,7 +68,7 @@ public class StockpileSwitchScreen extends AbstractSimiScreen { .setState((int) (te.offWhenBelow * 100)); onAbove = new ScrollInput(x + 36, y + 18, 102, 18).withRange(1, 101) - .titled(TextComponent.EMPTY.plainCopy()) + .titled(Component.empty()) .calling(state -> { lastModification = 0; onAbove.titled(Lang.translateDirect("gui.stockpile_switch.move_to_lower_at", state)); 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..e232cc80b 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 @@ -28,15 +28,14 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; +import net.minecraftforge.client.gui.overlay.ForgeGui; +import net.minecraftforge.client.gui.overlay.IGuiOverlay; public class LinkedControllerClientHandler { - public static final IIngameOverlay OVERLAY = LinkedControllerClientHandler::renderOverlay; + public static final IGuiOverlay OVERLAY = LinkedControllerClientHandler::renderOverlay; public static Mode MODE = Mode.IDLE; public static int PACKET_RATE = 5; @@ -210,7 +209,7 @@ public class LinkedControllerClientHandler { controls.forEach(kb -> kb.setDown(false)); } - public static void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width1, + public static void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width1, int height1) { Minecraft mc = Minecraft.getInstance(); if (mc.options.hideGui) @@ -220,7 +219,7 @@ public class LinkedControllerClientHandler { return; poseStack.pushPose(); - Screen tooltipScreen = new Screen(TextComponent.EMPTY) { + Screen tooltipScreen = new Screen(Component.empty()) { }; tooltipScreen.init(mc, width1, height1); 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..500c06b1e 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 @@ -29,7 +29,7 @@ import net.minecraft.world.level.block.LecternBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IItemRenderProperties; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.network.NetworkHooks; @@ -88,7 +88,7 @@ public class LinkedControllerItem extends Item implements MenuProvider { if (player.isShiftKeyDown() && hand == InteractionHand.MAIN_HAND) { if (!world.isClientSide && player instanceof ServerPlayer && player.mayBuild()) - NetworkHooks.openGui((ServerPlayer) player, this, buf -> { + NetworkHooks.openScreen((ServerPlayer) player, this, buf -> { buf.writeItem(heldItem); }); return InteractionResultHolder.success(heldItem); @@ -143,7 +143,7 @@ public class LinkedControllerItem extends Item implements MenuProvider { @Override @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new LinkedControllerItemRenderer())); } 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..adfb33b81 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 @@ -89,7 +89,7 @@ public class LinkedControllerItemRenderer extends CustomRenderedItemModelRendere if (renderType == RenderType.NORMAL) { Minecraft mc = Minecraft.getInstance(); - boolean rightHanded = mc.options.mainHand == HumanoidArm.RIGHT; + boolean rightHanded = mc.options.mainHand().get() == HumanoidArm.RIGHT; TransformType mainHand = rightHanded ? TransformType.FIRST_PERSON_RIGHT_HAND : TransformType.FIRST_PERSON_LEFT_HAND; TransformType offHand = 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..c1e224826 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 @@ -11,7 +11,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.ClickType; @@ -52,7 +52,7 @@ public class AttributeFilterContainer extends AbstractFilterContainer { super.init(inv, contentHolder); ItemStack stack = new ItemStack(Items.NAME_TAG); stack.setHoverName( - new TextComponent("Selected Tags").withStyle(ChatFormatting.RESET, ChatFormatting.BLUE)); + Component.literal("Selected Tags").withStyle(ChatFormatting.RESET, ChatFormatting.BLUE)); ghostInventory.setStackInSlot(1, stack); } 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..f70c5bfa3 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 @@ -22,7 +22,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.ItemStack; @@ -86,9 +85,9 @@ public class AttributeFilterScreen extends AbstractFilterScreen selectedAttributes.add(new TextComponent("- ") + menu.selectedAttributes.forEach(at -> selectedAttributes.add(Component.literal("- ") .append(at.getFirst() .format(at.getSecond())) .withStyle(ChatFormatting.GRAY))); @@ -243,7 +242,7 @@ public class AttributeFilterScreen extends AbstractFilterScreen makeSummary = makeSummary(stack); if (makeSummary.isEmpty()) return; - ItemDescription.add(tooltip, new TextComponent(" ")); + ItemDescription.add(tooltip, Component.literal(" ")); ItemDescription.add(tooltip, makeSummary); } } @@ -92,14 +91,14 @@ public class FilterItem extends Item implements MenuProvider { int count = 0; for (int i = 0; i < filterItems.getSlots(); i++) { if (count > 3) { - list.add(new TextComponent("- ...").withStyle(ChatFormatting.DARK_GRAY)); + list.add(Component.literal("- ...").withStyle(ChatFormatting.DARK_GRAY)); break; } ItemStack filterStack = filterItems.getStackInSlot(i); if (filterStack.isEmpty()) continue; - list.add(new TextComponent("- ").append(filterStack.getHoverName()).withStyle(ChatFormatting.GRAY)); + list.add(Component.literal("- ").append(filterStack.getHoverName()).withStyle(ChatFormatting.GRAY)); count++; } @@ -124,10 +123,10 @@ public class FilterItem extends Item implements MenuProvider { ItemAttribute attribute = ItemAttribute.fromNBT(compound); boolean inverted = compound.getBoolean("Inverted"); if (count > 3) { - list.add(new TextComponent("- ...").withStyle(ChatFormatting.DARK_GRAY)); + list.add(Component.literal("- ...").withStyle(ChatFormatting.DARK_GRAY)); break; } - list.add(new TextComponent("- ").append(attribute.format(inverted))); + list.add(Component.literal("- ").append(attribute.format(inverted))); count++; } @@ -144,7 +143,7 @@ public class FilterItem extends Item implements MenuProvider { if (!player.isShiftKeyDown() && hand == InteractionHand.MAIN_HAND) { if (!world.isClientSide && player instanceof ServerPlayer) - NetworkHooks.openGui((ServerPlayer) player, this, buf -> { + NetworkHooks.openScreen((ServerPlayer) player, this, buf -> { buf.writeItem(heldItem); }); return InteractionResultHolder.success(heldItem); 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..539d5bca1 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 @@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.player.Inventory; public class FilterScreen extends AbstractFilterScreen { @@ -58,8 +57,8 @@ public class FilterScreen extends AbstractFilterScreen { sendOptionUpdate(Option.WHITELIST); }); whitelist.setToolTip(allowN); - blacklistIndicator = new Indicator(x + 18, y + 67, TextComponent.EMPTY); - whitelistIndicator = new Indicator(x + 36, y + 67, TextComponent.EMPTY); + blacklistIndicator = new Indicator(x + 18, y + 67, Component.empty()); + whitelistIndicator = new Indicator(x + 36, y + 67, Component.empty()); addRenderableWidgets(blacklist, whitelist, blacklistIndicator, whitelistIndicator); respectNBT = new IconButton(x + 60, y + 73, AllIcons.I_RESPECT_NBT); @@ -74,8 +73,8 @@ public class FilterScreen extends AbstractFilterScreen { sendOptionUpdate(Option.IGNORE_DATA); }); ignoreNBT.setToolTip(ignoreDataN); - respectNBTIndicator = new Indicator(x + 60, y + 67, TextComponent.EMPTY); - ignoreNBTIndicator = new Indicator(x + 78, y + 67, TextComponent.EMPTY); + respectNBTIndicator = new Indicator(x + 60, y + 67, Component.empty()); + ignoreNBTIndicator = new Indicator(x + 78, y + 67, Component.empty()); addRenderableWidgets(respectNBT, ignoreNBT, respectNBTIndicator, ignoreNBTIndicator); handleIndicators(); 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..55cef5970 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 @@ -27,7 +27,7 @@ import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery import com.simibubi.create.foundation.utility.Lang; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -121,7 +121,7 @@ public interface ItemAttribute { } @OnlyIn(value = Dist.CLIENT) - default TranslatableComponent format(boolean inverted) { + default MutableComponent format(boolean inverted) { return Lang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), getTranslationParameters()); } @@ -299,7 +299,7 @@ public interface ItemAttribute { @Override @OnlyIn(value = Dist.CLIENT) - public TranslatableComponent format(boolean inverted) { + public MutableComponent format(boolean inverted) { return Lang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""), group.getDisplayName()); } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/EnchantAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/EnchantAttribute.java index 3fb1102ab..2f30a0517 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/EnchantAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/EnchantAttribute.java @@ -8,7 +8,7 @@ import javax.annotation.Nullable; import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.Enchantment; @@ -43,7 +43,7 @@ public class EnchantAttribute implements ItemAttribute { public Object[] getTranslationParameters() { String parameter = ""; if(enchantment != null) - parameter = new TranslatableComponent(enchantment.getDescriptionId()).getString(); + parameter = Component.translatable(enchantment.getDescriptionId()).getString(); return new Object[] { parameter }; } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/FluidContentsAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/FluidContentsAttribute.java index 7ba3997e9..e78a75642 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/FluidContentsAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/FluidContentsAttribute.java @@ -9,7 +9,6 @@ import javax.annotation.Nullable; import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.material.Fluid; @@ -46,7 +45,7 @@ public class FluidContentsAttribute implements ItemAttribute { public Object[] getTranslationParameters() { String parameter = ""; if (fluid != null) - parameter = new TranslatableComponent(fluid.getAttributes().getTranslationKey()).getString(); + parameter = fluid.getFluidType().getDescription().getString(); return new Object[] { parameter }; } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAmuletAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAmuletAttribute.java index a3891eb43..b5bf2afb1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAmuletAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAmuletAttribute.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.Enchantment; @@ -56,7 +56,7 @@ public class AstralSorceryAmuletAttribute implements ItemAttribute { Enchantment enchant = ForgeRegistries.ENCHANTMENTS.getValue(ResourceLocation.tryParse(enchName)); if(enchant != null) { - something = new TranslatableComponent(enchant.getDescriptionId()).getString(); + something = Component.translatable(enchant.getDescriptionId()).getString(); } if(enchType == 1) something = "existing " + something; diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAttunementAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAttunementAttribute.java index 6acb2fe4c..017151f8a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAttunementAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryAttunementAttribute.java @@ -6,7 +6,7 @@ import java.util.List; import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -57,7 +57,7 @@ public class AstralSorceryAttunementAttribute implements ItemAttribute { @Override public Object[] getTranslationParameters() { ResourceLocation constResource = new ResourceLocation(constellationName); - String something = new TranslatableComponent(String.format("%s.constellation.%s", constResource.getNamespace(), constResource.getPath())).getString(); + String something = Component.translatable(String.format("%s.constellation.%s", constResource.getNamespace(), constResource.getPath())).getString(); return new Object[] { something }; } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryCrystalAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryCrystalAttribute.java index 968d3b812..1d829c3c6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryCrystalAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryCrystalAttribute.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -46,7 +46,7 @@ public class AstralSorceryCrystalAttribute implements ItemAttribute { @Override public Object[] getTranslationParameters() { ResourceLocation traitResource = new ResourceLocation(traitName); - String something = new TranslatableComponent(String.format("crystal.property.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString(); + String something = Component.translatable(String.format("crystal.property.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString(); return new Object[] { something }; } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryPerkGemAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryPerkGemAttribute.java index 3875b9086..1ce05d45a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryPerkGemAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/attribute/astralsorcery/AstralSorceryPerkGemAttribute.java @@ -8,7 +8,7 @@ import com.simibubi.create.content.logistics.item.filter.ItemAttribute; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -46,7 +46,7 @@ public class AstralSorceryPerkGemAttribute implements ItemAttribute { @Override public Object[] getTranslationParameters() { ResourceLocation traitResource = new ResourceLocation(traitName); - String something = new TranslatableComponent(String.format("perk.attribute.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString(); + String something = Component.translatable(String.format("perk.attribute.%s.%s.name", traitResource.getNamespace(), traitResource.getPath())).getString(); return new Object[] { something }; } 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..16ec03e50 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 @@ -37,9 +37,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.KeybindComponent; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; @@ -90,6 +88,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { validForRender = false; firstPositionUpdate = true; arrivalSoundTicks = Integer.MIN_VALUE; + derailParticleOffset = VecHelper.offsetRandomly(Vec3.ZERO, world.random, 1.5f) + .multiply(1, .25f, 1); } @Override @@ -390,8 +390,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { @Override protected void handleStallInformation(float x, float y, float z, float angle) {} - Vec3 derailParticleOffset = VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, 1.5f) - .multiply(1, .25f, 1); + Vec3 derailParticleOffset; private void spawnDerailParticles(Carriage carriage) { if (random.nextFloat() < 1 / 20f) { @@ -592,7 +591,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { GlobalStation currentStation = carriage.train.getCurrentStation(); if (currentStation != null && spaceDown) { sendPrompt(player, Lang.translateDirect("train.arrived_at", - new TextComponent(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); + Component.literal(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); return true; } @@ -604,7 +603,7 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { if (currentStation != null && targetSpeed != 0) { stationMessage = false; sendPrompt(player, Lang.translateDirect("train.departing_from", - new TextComponent(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); + Component.literal(currentStation.name).withStyle(s -> s.withColor(0x704630))), false); } if (currentStation == null) { @@ -617,8 +616,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { double f = (nav.distanceToDestination / navDistanceTotal); int progress = (int) (Mth.clamp(1 - ((1 - f) * (1 - f)), 0, 1) * 30); boolean arrived = progress == 0; - TextComponent whiteComponent = new TextComponent(Strings.repeat("|", progress)); - TextComponent greenComponent = new TextComponent(Strings.repeat("|", 30 - progress)); + MutableComponent whiteComponent = Component.literal(Strings.repeat("|", progress)); + MutableComponent greenComponent = Component.literal(Strings.repeat("|", 30 - progress)); int fromColor = 0x00_FFC244; int toColor = 0x00_529915; @@ -684,14 +683,14 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { private void displayApproachStationMessage(Player player, GlobalStation station) { sendPrompt(player, Lang.translateDirect("contraption.controls.approach_station", - new KeybindComponent("key.jump"), station.name), false); + Component.keybind("key.jump"), station.name), false); stationMessage = true; } private void cleanUpApproachStationMessage(Player player) { if (!stationMessage) return; - player.displayClientMessage(new TextComponent(""), true); + player.displayClientMessage(Component.literal(""), true); stationMessage = false; } 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..b8fae41d9 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 @@ -1,7 +1,5 @@ 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; @@ -11,6 +9,7 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.core.Direction.Axis; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; @@ -41,7 +40,7 @@ public class CarriageParticles { if (leadingAnchor == null || !leadingAnchor.closerThan(camEntity.position(), 64)) return; - Random r = entity.level.random; + RandomSource r = entity.level.random; Vec3 contraptionMotion = entity.position() .subtract(entity.getPrevPositionVec()); double length = contraptionMotion.length(); 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..1c5a0349b 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 @@ -8,6 +8,7 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -248,7 +249,7 @@ public class CarriageSounds { class LoopingSound extends AbstractTickableSoundInstance { protected LoopingSound(SoundEvent p_119606_, SoundSource p_119607_) { - super(p_119606_, p_119607_); + super(p_119606_, p_119607_, SoundInstance.createUnseededRandom()); attenuation = Attenuation.LINEAR; looping = true; delay = 0; 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..8dd8b40de 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 @@ -1064,7 +1064,7 @@ public class Train { stack = fuelItems.extractItem(slot, 1, false); fuelTicks += burnTime * stack.getCount(); - ItemStack containerItem = stack.getContainerItem(); + ItemStack containerItem = stack.getCraftingRemainingItem(); if (!containerItem.isEmpty()) ItemHandlerHelper.insertItemStacked(fuelItems, containerItem, false); return; 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..57858ca6e 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 @@ -52,7 +52,7 @@ import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.InputEvent.ClickInputEvent; +import net.minecraftforge.client.event.InputEvent; public class TrainRelocator { @@ -71,7 +71,7 @@ public class TrainRelocator { } @OnlyIn(Dist.CLIENT) - public static void onClicked(ClickInputEvent event) { + public static void onClicked(InputEvent.InteractionKeyMappingTriggered event) { if (relocatingTrain == null) 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..f8728ef9a 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 @@ -7,7 +7,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -130,7 +129,7 @@ public class TrainStatus { } public void displayInformation(String key, boolean itsAGoodThing, Object... args) { - queued.add(new TextComponent(" - ").withStyle(ChatFormatting.GRAY) + queued.add(Component.literal(" - ").withStyle(ChatFormatting.GRAY) .append(Lang.translateDirect("train.status." + key, args) .withStyle(st -> st.withColor(itsAGoodThing ? 0xD5ECC2 : 0xFFD3B4)))); if (queued.size() > 3) 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..e7b838349 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 @@ -3,7 +3,6 @@ package com.simibubi.create.content.logistics.trains.management.display; import static net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED; import java.util.List; -import java.util.Random; import java.util.function.Predicate; import com.simibubi.create.AllBlocks; @@ -30,6 +29,7 @@ import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -250,7 +250,7 @@ public class FlapDisplayBlock extends HorizontalKineticBlock } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { if (pState.getBlock() != this) return; BlockPos belowPos = 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..098c2df02 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 @@ -18,7 +18,6 @@ import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; @@ -145,7 +144,7 @@ public class FlapDisplayTileEntity extends KineticTileEntity { FlapDisplaySection flapDisplaySection = sections.get(0); if (rawComponentText == null) { manualLines[lineIndex] = false; - flapDisplaySection.setText(new TextComponent("")); + flapDisplaySection.setText(Component.literal("")); notifyUpdate(); return; } 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..4c03fcd42 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 @@ -1,7 +1,5 @@ package com.simibubi.create.content.logistics.trains.management.edgePoint.signal; -import java.util.Random; - import javax.annotation.Nullable; import com.simibubi.create.AllTileEntities; @@ -12,6 +10,7 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.util.StringRepresentable; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -86,7 +85,7 @@ public class SignalBlock extends Block implements ITE, IWrench } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRand) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRand) { if (pState.getValue(POWERED) && !pLevel.hasNeighborSignal(pPos)) pLevel.setBlock(pPos, pState.cycle(POWERED), 2); } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationMarker.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationMarker.java index 42da0c200..86bd15b07 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationMarker.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationMarker.java @@ -19,7 +19,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.saveddata.maps.MapDecoration; import net.minecraft.world.level.saveddata.maps.MapItemSavedData; @@ -40,7 +39,7 @@ public class StationMarker { BlockPos source = NbtUtils.readBlockPos(tag.getCompound("source")); BlockPos target = NbtUtils.readBlockPos(tag.getCompound("target")); Component name = Component.Serializer.fromJson(tag.getString("name")); - if (name == null) name = TextComponent.EMPTY; + if (name == null) name = Component.empty(); return new StationMarker(source, target, name); } @@ -54,7 +53,7 @@ public class StationMarker { String name = stationOption.get() .getStation().name; return new StationMarker(pos, TileEntityBehaviour.get(stationOption.get(), TrackTargetingBehaviour.TYPE) - .getPositionForMapMarker(), new TextComponent(name)); + .getPositionForMapMarker(), Component.literal(name)); } public CompoundTag save() { 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..7e384065c 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 @@ -23,7 +23,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; public class StationScreen extends AbstractStationScreen { @@ -58,7 +57,7 @@ public class StationScreen extends AbstractStationScreen { onTextChanged = s -> nameBox.x = nameBoxX(s, nameBox); nameBox = new EditBox(new NoShadowFontWrapper(font), x + 23, y + 4, background.width - 20, 10, - new TextComponent(station.name)); + Component.literal(station.name)); nameBox.setBordered(false); nameBox.setMaxLength(25); nameBox.setTextColor(0x442000); @@ -92,7 +91,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.width - 75, 10, Component.literal("")); trainNameBox.setBordered(false); trainNameBox.setMaxLength(35); trainNameBox.setTextColor(0xC6C6C6); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java index cbf3c891b..c44a68fb7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/TrainEditPacket.java @@ -10,7 +10,7 @@ import com.simibubi.create.foundation.networking.AllPackets; import com.simibubi.create.foundation.networking.SimplePacketBase; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; @@ -52,7 +52,7 @@ public class TrainEditPacket extends SimplePacketBase { if (train == null) return; if (!name.isBlank()) - train.name = new TextComponent(name); + train.name = Component.literal(name); train.icon = TrainIconType.byId(iconType); if (sender != null) AllPackets.channel.send(PacketDistributor.ALL.noArg(), new TrainEditReturnPacket(id, name, iconType)); 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..7c7501d05 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 @@ -11,7 +11,6 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; @@ -32,7 +31,7 @@ public interface IScheduleInput { public default List getTitleAs(String type) { ResourceLocation id = getId(); return ImmutableList - .of(new TranslatableComponent(id.getNamespace() + ".schedule." + type + "." + id.getPath())); + .of(Component.translatable(id.getNamespace() + ".schedule." + type + "." + id.getPath())); } public default ItemStack getSecondLineIcon() { 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..ab40c131c 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 @@ -26,7 +26,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; public class Schedule { @@ -64,7 +63,7 @@ public class Schedule { return list.stream() .map(Pair::getFirst) .map(rl -> rl.getNamespace() + ".schedule." + langSection + rl.getPath()) - .map(TranslatableComponent::new) + .map(Component::translatable) .toList(); } 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..006a53e34 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 @@ -18,7 +18,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -58,7 +57,7 @@ public class ScheduleItem extends Item implements MenuProvider { if (!player.isShiftKeyDown() && hand == InteractionHand.MAIN_HAND) { if (!world.isClientSide && player instanceof ServerPlayer) - NetworkHooks.openGui((ServerPlayer) player, this, buf -> { + NetworkHooks.openScreen((ServerPlayer) player, this, buf -> { buf.writeItem(heldItem); }); return InteractionResultHolder.success(heldItem); @@ -133,8 +132,8 @@ public class ScheduleItem extends Item implements MenuProvider { if (schedule == null || schedule.entries.isEmpty()) return; - MutableComponent caret = new TextComponent("> ").withStyle(ChatFormatting.GRAY); - MutableComponent arrow = new TextComponent("-> ").withStyle(ChatFormatting.GRAY); + MutableComponent caret = Component.literal("> ").withStyle(ChatFormatting.GRAY); + MutableComponent arrow = Component.literal("-> ").withStyle(ChatFormatting.GRAY); List entries = schedule.entries; for (int i = 0; i < entries.size(); i++) { @@ -145,7 +144,7 @@ public class ScheduleItem extends Item implements MenuProvider { ChatFormatting format = current ? ChatFormatting.YELLOW : ChatFormatting.GOLD; MutableComponent prefix = current ? arrow : caret; tooltip.add(prefix.copy() - .append(new TextComponent(destination.getFilter()).withStyle(format))); + .append(Component.literal(destination.getFilter()).withStyle(format))); } } 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..7c7f9ae97 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 @@ -25,7 +25,7 @@ public class ScheduleItemRetrieval { @SubscribeEvent public static void removeScheduleFromConductor(EntityInteract event) { Entity entity = event.getTarget(); - Player player = event.getPlayer(); + Player player = event.getEntity(); if (player == null || entity == null) return; if (player.isSpectator()) 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..661354eab 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 @@ -21,8 +21,8 @@ import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -371,7 +371,7 @@ public class ScheduleRuntime { int size = schedule.entries.size(); if (index >= size) { if (!schedule.cyclic) - return new TrainDeparturePrediction(train, time, new TextComponent(" "), destination); + return new TrainDeparturePrediction(train, time, Component.literal(" "), destination); index %= size; } @@ -389,7 +389,7 @@ public class ScheduleRuntime { } } - return new TrainDeparturePrediction(train, time, new TextComponent(text), destination); + return new TrainDeparturePrediction(train, time, Component.literal(text), destination); } public CompoundTag write() { @@ -448,12 +448,12 @@ public class ScheduleRuntime { public MutableComponent getWaitingStatus(Level level) { List> conditions = schedule.entries.get(currentEntry).conditions; if (conditions.isEmpty() || conditionProgress.isEmpty() || conditionContext.isEmpty()) - return TextComponent.EMPTY.copy(); + return Component.empty(); List list = conditions.get(0); int progress = conditionProgress.get(0); if (progress >= list.size()) - return TextComponent.EMPTY.copy(); + return Component.empty(); CompoundTag tag = conditionContext.get(0); ScheduleWaitCondition condition = list.get(progress); 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..c5a90f9e7 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 @@ -55,14 +55,13 @@ import net.minecraft.client.gui.components.Widget; import net.minecraft.client.renderer.Rect2i; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.FormattedCharSequence; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.gui.GuiUtils; +import net.minecraftforge.client.gui.ScreenUtils; public class ScheduleScreen extends AbstractSimiContainerScreen { @@ -116,7 +115,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen minecraft.player.closeContainer()); addRenderableWidget(confirmButton); - cyclicIndicator = new Indicator(leftPos + 21, topPos + 196, TextComponent.EMPTY); + cyclicIndicator = new Indicator(leftPos + 21, topPos + 196, Component.empty()); cyclicIndicator.state = schedule.cyclic ? State.ON : State.OFF; addRenderableWidget(cyclicIndicator); @@ -171,7 +170,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen getSummary() { - return Pair.of(getIcon(), new TextComponent(getOperator().formatted + " " + getThreshold()).append(getUnit())); + return Pair.of(getIcon(), Component.literal(getOperator().formatted + " " + getThreshold()).append(getUnit())); } @Override @@ -119,7 +118,7 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio builder.addSelectionScrollInput(0, 24, (i, l) -> { i.forOptions(Ops.translatedOptions()) .titled(Lang.translateDirect("schedule.condition.threshold.train_holds")) - .format(state -> new TextComponent(" " + Ops.values()[state].formatted)); + .format(state -> Component.literal(" " + Ops.values()[state].formatted)); }, "Operator"); builder.addIntegerTextInput(29, 41, (e, t) -> { }, "Threshold"); 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..e92bdb828 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 @@ -16,7 +16,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -31,7 +30,7 @@ public class FluidThresholdCondition extends CargoThresholdCondition { @Override protected Component getUnit() { - return new TextComponent("b"); + return Component.literal("b"); } @Override @@ -135,7 +134,7 @@ public class FluidThresholdCondition extends CargoThresholdCondition { public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { int lastDisplaySnapshot = getLastDisplaySnapshot(tag); if (lastDisplaySnapshot == -1) - return TextComponent.EMPTY.copy(); + return Component.empty(); 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")); 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..d2535733e 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 @@ -14,7 +14,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -27,7 +26,7 @@ public class ItemThresholdCondition extends CargoThresholdCondition { @Override protected Component getUnit() { - return new TextComponent(inStacks() ? "\u25A4" : ""); + return Component.literal(inStacks() ? "\u25A4" : ""); } @Override @@ -126,7 +125,7 @@ public class ItemThresholdCondition extends CargoThresholdCondition { public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) { int lastDisplaySnapshot = getLastDisplaySnapshot(tag); if (lastDisplaySnapshot == -1) - return TextComponent.EMPTY.copy(); + return Component.empty(); int offset = getOperator() == Ops.LESS ? -1 : getOperator() == Ops.GREATER ? 1 : 0; return Lang.translateDirect("schedule.condition.threshold.status", lastDisplaySnapshot, Math.max(0, getThreshold() + offset), 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..c73b291bb 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 @@ -14,7 +14,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; @@ -50,7 +49,7 @@ public class PlayerPassengerCondition extends ScheduleWaitCondition { int target = getTarget(); return ImmutableList.of(Lang.translateDirect("schedule.condition.player_count.seated", Lang.translateDirect("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), - new TextComponent("" + target).withStyle(ChatFormatting.DARK_AQUA)))); + Component.literal("" + target).withStyle(ChatFormatting.DARK_AQUA)))); } @Override 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..2ebac55ee 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 @@ -17,7 +17,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -54,13 +53,13 @@ public class RedstoneLinkCondition extends ScheduleWaitCondition { public List getTitleAs(String type) { return ImmutableList.of( Lang.translateDirect("schedule.condition.redstone_link.frequency_" + (lowActivation() ? "unpowered" : "powered")), - new TextComponent(" #1 ").withStyle(ChatFormatting.GRAY) + Component.literal(" #1 ").withStyle(ChatFormatting.GRAY) .append(freq.getFirst() .getStack() .getHoverName() .copy() .withStyle(ChatFormatting.DARK_AQUA)), - new TextComponent(" #2 ").withStyle(ChatFormatting.GRAY) + Component.literal(" #2 ").withStyle(ChatFormatting.GRAY) .append(freq.getSecond() .getStack() .getHoverName() 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..082110657 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 @@ -20,7 +20,6 @@ import net.minecraft.client.gui.GuiComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; @@ -82,7 +81,7 @@ public class TimeOfDayCondition extends ScheduleWaitCondition { public List getTitleAs(String type) { return ImmutableList.of(Lang.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(Component.literal(" -> ").withStyle(ChatFormatting.DARK_GRAY)) .append(Lang .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") 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..17d29a859 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 @@ -11,8 +11,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; 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.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; @@ -60,14 +58,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 Component.literal(getValue() + getUnit().suffix); + return Component.literal(getValue() + " ").append(Lang.translateDirect(getUnit().key)); } @Override public List getTitleAs(String type) { return ImmutableList.of( - new TranslatableComponent(getId().getNamespace() + ".schedule." + type + "." + getId().getPath()), + Component.translatable(getId().getNamespace() + ".schedule." + type + "." + getId().getPath()), Lang.translateDirect("schedule.condition.for_x_time", formatTime(false)) .withStyle(ChatFormatting.DARK_AQUA)); } @@ -117,7 +115,7 @@ public abstract class TimedWaitCondition extends ScheduleWaitCondition { 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))); + Component.literal(num + " ").append(Lang.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..fa68328c4 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 @@ -11,7 +11,7 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; @@ -29,8 +29,8 @@ public class ChangeThrottleInstruction extends ScheduleInstruction { return Pair.of(icon(), formatted()); } - private TextComponent formatted() { - return new TextComponent(intData("Value") + "%"); + private MutableComponent formatted() { + return Component.literal(intData("Value") + "%"); } @Override 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..ee0ba940f 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 @@ -9,7 +9,6 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -18,7 +17,7 @@ public class ChangeTitleInstruction extends TextScheduleInstruction { @Override public Pair getSummary() { - return Pair.of(icon(), new TextComponent(getLabelText())); + return Pair.of(icon(), Component.literal(getLabelText())); } @Override 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..4c8ff33a5 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 @@ -13,7 +13,6 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; @@ -23,7 +22,7 @@ public class DestinationInstruction extends TextScheduleInstruction { @Override public Pair getSummary() { - return Pair.of(AllBlocks.TRACK_STATION.asStack(), new TextComponent(getLabelText())); + return Pair.of(AllBlocks.TRACK_STATION.asStack(), Component.literal(getLabelText())); } @Override 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..8f80a0bee 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 @@ -9,7 +9,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -22,7 +21,7 @@ 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()))); + .withStyle(ChatFormatting.GOLD), Lang.translateDirect("generic.in_quotes", Component.literal(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..b15f50616 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 @@ -23,7 +23,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.event.InputEvent.ClickInputEvent; +import net.minecraftforge.client.event.InputEvent; public class CurvedTrackInteraction { @@ -57,7 +57,7 @@ public class CurvedTrackInteraction { mc.getSoundManager() .play(new SimpleSoundInstance(soundtype.getHitSound(), SoundSource.BLOCKS, (soundtype.getVolume() + 1.0F) / 8.0F, soundtype.getPitch() * 0.5F, - new BlockPos(result.vec()))); + level.random, new BlockPos(result.vec()))); } boolean creative = player.getAbilities().instabuild; @@ -102,7 +102,7 @@ public class CurvedTrackInteraction { breakPos = null; } - public static boolean onClickInput(ClickInputEvent event) { + public static boolean onClickInput(InputEvent.InteractionKeyMappingTriggered event) { BezierPointSelection result = TrackBlockOutline.result; if (result == null) return false; diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/track/FakeTrackBlock.java b/src/main/java/com/simibubi/create/content/logistics/trains/track/FakeTrackBlock.java index cb69aba49..d447d7de6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/track/FakeTrackBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/track/FakeTrackBlock.java @@ -1,13 +1,12 @@ package com.simibubi.create.content.logistics.trains.track; -import java.util.Random; - import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.block.ProperWaterloggedBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.context.BlockPlaceContext; @@ -67,7 +66,7 @@ public class FakeTrackBlock extends Block implements EntityBlock, ProperWaterlog } @Override - public void randomTick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) { + public void randomTick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { if (pLevel.getBlockEntity(pPos) instanceof FakeTrackTileEntity te) te.randomTick(); } 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..72f1260fa 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 @@ -57,12 +57,13 @@ 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.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; @@ -100,7 +101,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.ticks.LevelTickAccess; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; public class TrackBlock extends Block implements ITE, IWrenchable, ITrackBlock, ISpecialBlockItemRequirement, ProperWaterloggedBlock { @@ -126,7 +127,7 @@ public class TrackBlock extends Block } @OnlyIn(Dist.CLIENT) - public void initializeClient(Consumer consumer) { + public void initializeClient(Consumer consumer) { consumer.accept(new RenderProperties()); } @@ -221,7 +222,7 @@ public class TrackBlock extends Block } @Override - public void tick(BlockState state, ServerLevel level, BlockPos pos, Random p_60465_) { + public void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource p_60465_) { TrackPropagator.onRailAdded(level, pos, state); if (!state.getValue(SHAPE) .isPortal()) @@ -287,12 +288,12 @@ 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(Component.literal(" ").append(Lang.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); - player.displayClientMessage(new TextComponent(" - ").withStyle(ChatFormatting.GRAY) + player.displayClientMessage(Component.literal(" - ").withStyle(ChatFormatting.GRAY) .append(component.withStyle(st -> st.withColor(0xFFD3B4))), false); } 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..b30b26895 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 @@ -36,7 +36,7 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.DrawSelectionEvent; +import net.minecraftforge.client.event.RenderHighlightEvent; import net.minecraftforge.common.ForgeMod; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -167,7 +167,7 @@ public class TrackBlockOutline { } @SubscribeEvent - public static void drawCustomBlockSelection(DrawSelectionEvent.HighlightBlock event) { + public static void drawCustomBlockSelection(RenderHighlightEvent.Block event) { Minecraft mc = Minecraft.getInstance(); BlockHitResult target = event.getTarget(); BlockPos pos = target.getBlockPos(); diff --git a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java index 228a820b4..2c28be0e1 100644 --- a/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java +++ b/src/main/java/com/simibubi/create/content/palettes/AllPaletteBlocks.java @@ -67,7 +67,7 @@ public class AllPaletteBlocks { public static final BlockEntry OAK_WINDOW = woodenWindowBlock(WoodType.OAK, Blocks.OAK_PLANKS), SPRUCE_WINDOW = woodenWindowBlock(WoodType.SPRUCE, Blocks.SPRUCE_PLANKS), - BIRCH_WINDOW = woodenWindowBlock(WoodType.BIRCH, Blocks.BIRCH_PLANKS, () -> RenderType::translucent), + BIRCH_WINDOW = woodenWindowBlock(WoodType.BIRCH, Blocks.BIRCH_PLANKS, () -> RenderType::translucent, true), JUNGLE_WINDOW = woodenWindowBlock(WoodType.JUNGLE, Blocks.JUNGLE_PLANKS), ACACIA_WINDOW = woodenWindowBlock(WoodType.ACACIA, Blocks.ACACIA_PLANKS), DARK_OAK_WINDOW = woodenWindowBlock(WoodType.DARK_OAK, Blocks.DARK_OAK_PLANKS), @@ -75,7 +75,7 @@ public class AllPaletteBlocks { WARPED_WINDOW = woodenWindowBlock(WoodType.WARPED, Blocks.WARPED_PLANKS), ORNATE_IRON_WINDOW = customWindowBlock("ornate_iron_window", () -> Items.IRON_NUGGET, () -> AllSpriteShifts.ORNATE_IRON_WINDOW, - () -> RenderType::cutout, () -> MaterialColor.TERRACOTTA_LIGHT_GRAY); + () -> RenderType::cutout, false, () -> MaterialColor.TERRACOTTA_LIGHT_GRAY); public static final BlockEntry OAK_WINDOW_PANE = woodenWindowPane(WoodType.OAK, OAK_WINDOW), 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..a8d7c192a 100644 --- a/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java +++ b/src/main/java/com/simibubi/create/content/palettes/ConnectedPillarBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.palettes; -import java.util.Random; - import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.core.BlockPos; @@ -10,6 +8,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; @@ -90,7 +89,7 @@ public class ConnectedPillarBlock extends LayeredBlock { } @Override - public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) { + public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSource pRandom) { if (pState.getBlock() != this) return; BlockPos belowPos = diff --git a/src/main/java/com/simibubi/create/content/palettes/WindowBlock.java b/src/main/java/com/simibubi/create/content/palettes/WindowBlock.java index 54018f9a5..c7695ed2b 100644 --- a/src/main/java/com/simibubi/create/content/palettes/WindowBlock.java +++ b/src/main/java/com/simibubi/create/content/palettes/WindowBlock.java @@ -1,7 +1,5 @@ package com.simibubi.create.content.palettes; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.api.distmarker.Dist; @@ -9,17 +7,28 @@ import net.minecraftforge.api.distmarker.OnlyIn; public class WindowBlock extends ConnectedGlassBlock { - public WindowBlock(Properties p_i48392_1_) { + protected final boolean translucent; + + public WindowBlock(Properties p_i48392_1_, boolean translucent) { super(p_i48392_1_); + this.translucent = translucent; + } + + public boolean isTranslucent() { + return translucent; } @Override @OnlyIn(Dist.CLIENT) public boolean skipRendering(BlockState state, BlockState adjacentBlockState, Direction side) { - return adjacentBlockState.getBlock() instanceof ConnectedGlassBlock - ? (!ItemBlockRenderTypes.canRenderInLayer(state, RenderType.translucent()) && side.getAxis() - .isHorizontal() || state.getBlock() == adjacentBlockState.getBlock()) - : super.skipRendering(state, adjacentBlockState, side); + if (state.getBlock() == adjacentBlockState.getBlock()) { + return true; + } + if (state.getBlock() instanceof WindowBlock windowBlock + && adjacentBlockState.getBlock() instanceof ConnectedGlassBlock) { + return !windowBlock.isTranslucent() && side.getAxis().isHorizontal(); + } + return super.skipRendering(state, adjacentBlockState, side); } } 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..7021169fd 100644 --- a/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java +++ b/src/main/java/com/simibubi/create/content/schematics/ClientSchematicLoader.java @@ -24,7 +24,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -86,8 +85,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.displayClientMessage(Lang.translateDirect("schematics.uploadTooLarge").append(" (" + size / 1000 + " KB)."), false); + player.displayClientMessage(Lang.translateDirect("schematics.maxAllowedSize").append(" " + maxSize + " KB"), false); } return false; } @@ -137,7 +136,7 @@ public class ClientSchematicLoader { if (Files.isDirectory(path)) return; - availableSchematics.add(new TextComponent(path.getFileName().toString())); + availableSchematics.add(Component.literal(path.getFileName().toString())); }); } catch (NoSuchFileException e) { // No Schematics created yet 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..cbf647e62 100644 --- a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java +++ b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java @@ -18,8 +18,6 @@ import net.minecraft.nbt.StringTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -80,7 +78,7 @@ public class MaterialChecklist { MutableComponent textComponent; if (blocksNotLoaded) { - textComponent = new TextComponent("\n" + ChatFormatting.RED); + textComponent = Component.literal("\n" + ChatFormatting.RED); textComponent = textComponent.append(Lang.translateDirect("materialChecklist.blocksNotLoaded")); pages.add(StringTag.valueOf(Component.Serializer.toJson(textComponent))); } @@ -95,7 +93,7 @@ public class MaterialChecklist { return name1.compareTo(name2); }); - textComponent = new TextComponent(""); + textComponent = Component.literal(""); List completed = new ArrayList<>(); for (Item item : keys) { int amount = getRequiredAmount(item); @@ -109,9 +107,9 @@ public class MaterialChecklist { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - textComponent.append(new TextComponent("\n >>>").withStyle(ChatFormatting.BLUE)); + textComponent.append(Component.literal("\n >>>").withStyle(ChatFormatting.BLUE)); pages.add(StringTag.valueOf(Component.Serializer.toJson(textComponent))); - textComponent = new TextComponent(""); + textComponent = Component.literal(""); } itemsWritten++; @@ -121,9 +119,9 @@ public class MaterialChecklist { for (Item item : completed) { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - textComponent.append(new TextComponent("\n >>>").withStyle(ChatFormatting.DARK_GREEN)); + textComponent.append(Component.literal("\n >>>").withStyle(ChatFormatting.DARK_GREEN)); pages.add(StringTag.valueOf(Component.Serializer.toJson(textComponent))); - textComponent = new TextComponent(""); + textComponent = Component.literal(""); } itemsWritten++; @@ -155,12 +153,12 @@ public class MaterialChecklist { private Component entry(ItemStack item, int amount, boolean unfinished) { int stacks = amount / 64; int remainder = amount % 64; - MutableComponent tc = new TranslatableComponent(item.getDescriptionId()); + MutableComponent tc = Component.translatable(item.getDescriptionId()); if (!unfinished) tc.append(" \u2714"); tc.withStyle(unfinished ? ChatFormatting.BLUE : ChatFormatting.DARK_GREEN); - return tc.append(new TextComponent("\n" + " x" + amount).withStyle(ChatFormatting.BLACK)) - .append(new TextComponent(" | " + stacks + "\u25A4 +" + remainder + "\n").withStyle(ChatFormatting.GRAY)); + return tc.append(Component.literal("\n" + " x" + amount).withStyle(ChatFormatting.BLACK)) + .append(Component.literal(" | " + stacks + "\u25A4 +" + remainder + "\n").withStyle(ChatFormatting.GRAY)); } } 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..b590c90f2 100644 --- a/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java +++ b/src/main/java/com/simibubi/create/content/schematics/ServerSchematicLoader.java @@ -27,7 +27,7 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.level.Level; @@ -164,10 +164,10 @@ public class ServerSchematicLoader { Integer maxFileSize = getConfig().maxTotalSchematicSize.get(); if (size > maxFileSize * 1000) { - player.sendMessage(Lang.translateDirect("schematics.uploadTooLarge") - .append(new TextComponent(" (" + size / 1000 + " KB).")), player.getUUID()); - player.sendMessage(Lang.translateDirect("schematics.maxAllowedSize") - .append(new TextComponent(" " + maxFileSize + " KB")), player.getUUID()); + player.sendSystemMessage(Lang.translateDirect("schematics.uploadTooLarge") + .append(Component.literal(" (" + size / 1000 + " KB)."))); + player.sendSystemMessage(Lang.translateDirect("schematics.maxAllowedSize") + .append(Component.literal(" " + maxFileSize + " KB"))); return false; } return true; diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableBlock.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableBlock.java index 7e54b4b8b..6c25ab9e1 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableBlock.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableBlock.java @@ -65,7 +65,7 @@ public class SchematicTableBlock extends HorizontalDirectionalBlock implements I return InteractionResult.SUCCESS; withTileEntityDo(worldIn, pos, - te -> NetworkHooks.openGui((ServerPlayer) player, te, te::sendToContainer)); + te -> NetworkHooks.openScreen((ServerPlayer) player, te, te::sendToContainer)); return InteractionResult.SUCCESS; } 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..8f818f6b7 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 @@ -25,7 +25,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.Util; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.ItemStack; @@ -73,8 +72,8 @@ public class SchematicTableScreen extends AbstractSimiContainerScreen availableSchematics1 = schematicSender.getAvailableSchematics(); Component schematic = availableSchematics1.get(schematicsArea.getState()); - schematicSender.startNewUpload(schematic.getContents()); + schematicSender.startNewUpload(schematic.getString()); } }); @@ -118,7 +117,7 @@ public class SchematicTableScreen extends AbstractSimiContainerScreen NetworkHooks.openGui((ServerPlayer) player, te, te::sendToContainer)); + te -> NetworkHooks.openScreen((ServerPlayer) player, te, te::sendToContainer)); return InteractionResult.SUCCESS; } diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonRenderer.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonRenderer.java index f41be9754..041516dd6 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonRenderer.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicannonRenderer.java @@ -1,9 +1,7 @@ package com.simibubi.create.content.schematics.block; -import java.util.Random; - import com.jozufozu.flywheel.backend.Backend; -import com.jozufozu.flywheel.core.virtual.VirtualEmptyModelData; +import com.jozufozu.flywheel.core.model.ModelUtil; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Vector3f; @@ -25,6 +23,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; @@ -181,7 +180,7 @@ public class SchematicannonRenderer extends SafeTileEntityRenderer { sendOptionUpdate(Option.PLAY, true); }); - playIndicator = new Indicator(x + 75, y + 79, TextComponent.EMPTY); + playIndicator = new Indicator(x + 75, y + 79, Component.empty()); pauseButton = new IconButton(x + 93, y + 86, AllIcons.I_PAUSE); pauseButton.withCallback(() -> { sendOptionUpdate(Option.PAUSE, true); }); - pauseIndicator = new Indicator(x + 93, y + 79, TextComponent.EMPTY); + pauseIndicator = new Indicator(x + 93, y + 79, Component.empty()); resetButton = new IconButton(x + 111, y + 86, AllIcons.I_STOP); resetButton.withCallback(() -> { sendOptionUpdate(Option.STOP, true); }); - resetIndicator = new Indicator(x + 111, y + 79, TextComponent.EMPTY); + resetIndicator = new Indicator(x + 111, y + 79, Component.empty()); resetIndicator.state = State.RED; addRenderableWidgets(playButton, playIndicator, pauseButton, pauseIndicator, resetButton, resetIndicator); @@ -122,7 +121,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen { @@ -170,7 +169,7 @@ public class SchematicannonScreen extends AbstractSimiContainerScreen(3); @@ -229,11 +229,11 @@ public class SchematicHandler { } } - public IIngameOverlay getOverlayRenderer() { + public IGuiOverlay getOverlayRenderer() { return overlayRenderer; } - public void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height) { + public void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { if (Minecraft.getInstance().options.hideGui || !active) return; if (activeSchematicItem != null) 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..4c1ddce8f 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 @@ -14,7 +14,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.gui.components.EditBox; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; public class SchematicPromptScreen extends AbstractSimiScreen { @@ -42,7 +41,7 @@ public class SchematicPromptScreen extends AbstractSimiScreen { int x = guiLeft; int y = guiTop; - nameField = new EditBox(font, x + 49, y + 26, 131, 10, TextComponent.EMPTY); + nameField = new EditBox(font, x + 49, y + 26, 131, 10, Component.empty()); nameField.setTextColor(-1); nameField.setTextColorUneditable(-1); nameField.setBordered(false); 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..5374336d2 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 @@ -2,7 +2,6 @@ package com.simibubi.create.content.schematics.client; import java.util.LinkedHashMap; import java.util.Map; -import java.util.Random; import com.jozufozu.flywheel.core.model.ModelUtil; import com.jozufozu.flywheel.core.model.ShadeSeparatedBufferBuilder; @@ -17,17 +16,18 @@ import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; import com.simibubi.create.foundation.render.TileEntityRenderHelper; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.BlockRenderDispatcher; import net.minecraft.client.renderer.block.ModelBlockRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.BoundingBox; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.model.data.EmptyModelData; +import net.minecraftforge.client.model.data.ModelData; public class SchematicRenderer { @@ -89,10 +89,11 @@ public class SchematicRenderer { protected SuperByteBuffer drawLayer(RenderType layer) { BlockRenderDispatcher dispatcher = ModelUtil.VANILLA_RENDERER; + ModelBlockRenderer renderer = dispatcher.getModelRenderer(); ThreadLocalObjects objects = THREAD_LOCAL_OBJECTS.get(); PoseStack poseStack = objects.poseStack; - Random random = objects.random; + RandomSource random = objects.random; BlockPos.MutableBlockPos mutableBlockPos = objects.mutableBlockPos; SchematicWorld renderWorld = schematic; BoundingBox bounds = renderWorld.getBounds(); @@ -105,25 +106,29 @@ public class SchematicRenderer { unshadedBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK); shadeSeparatingWrapper.prepare(builder, unshadedBuilder); - ForgeHooksClient.setRenderType(layer); ModelBlockRenderer.enableCaching(); for (BlockPos localPos : BlockPos.betweenClosed(bounds.minX(), bounds.minY(), bounds.minZ(), bounds.maxX(), bounds.maxY(), bounds.maxZ())) { BlockPos pos = mutableBlockPos.setWithOffset(localPos, anchor); BlockState state = renderWorld.getBlockState(pos); - poseStack.pushPose(); - poseStack.translate(localPos.getX(), localPos.getY(), localPos.getZ()); - - if (state.getRenderShape() == RenderShape.MODEL && ItemBlockRenderTypes.canRenderInLayer(state, layer)) { + if (state.getRenderShape() == RenderShape.MODEL) { + BakedModel model = dispatcher.getBlockModel(state); BlockEntity tileEntity = renderWorld.getBlockEntity(localPos); - dispatcher.renderBatched(state, pos, renderWorld, poseStack, shadeSeparatingWrapper, true, random, - tileEntity != null ? tileEntity.getModelData() : EmptyModelData.INSTANCE); - } + ModelData modelData = tileEntity != null ? tileEntity.getModelData() : ModelData.EMPTY; + long seed = state.getSeed(pos); + random.setSeed(seed); + if (model.getRenderTypes(state, random, modelData).contains(layer)) { + poseStack.pushPose(); + poseStack.translate(localPos.getX(), localPos.getY(), localPos.getZ()); - poseStack.popPose(); + renderer.tesselateBlock(renderWorld, model, state, pos, poseStack, shadeSeparatingWrapper, true, + random, seed, OverlayTexture.NO_OVERLAY, modelData, layer); + + poseStack.popPose(); + } + } } ModelBlockRenderer.clearCache(); - ForgeHooksClient.setRenderType(null); shadeSeparatingWrapper.clear(); unshadedBuilder.end(); @@ -140,7 +145,7 @@ public class SchematicRenderer { private static class ThreadLocalObjects { public final PoseStack poseStack = new PoseStack(); - public final Random random = new Random(); + public final RandomSource random = RandomSource.createNewThreadLocalInstance(); public final BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(); public final ShadeSeparatingVertexConsumer shadeSeparatingWrapper = new ShadeSeparatingVertexConsumer(); public final BufferBuilder unshadedBuilder = new BufferBuilder(512); 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..0fb23211e 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 @@ -14,7 +14,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; public class ToolSelectionScreen extends Screen { @@ -33,7 +32,7 @@ public class ToolSelectionScreen extends Screen { protected int h; public ToolSelectionScreen(List tools, Consumer callback) { - super(new TextComponent("Tool Selection")); + super(Component.literal("Tool Selection")); this.minecraft = Minecraft.getInstance(); this.tools = tools; this.callback = callback; 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..7a93d5fb7 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 @@ -3,7 +3,7 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import net.minecraftforge.client.gui.ForgeIngameGui; +import net.minecraftforge.client.gui.overlay.ForgeGui; public interface ISchematicTool { @@ -14,7 +14,7 @@ public interface ISchematicTool { 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 renderOverlay(ForgeGui 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/PlacementToolBase.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/PlacementToolBase.java index ca7b40d21..b008466bf 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 @@ -3,7 +3,7 @@ package com.simibubi.create.content.schematics.client.tools; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.foundation.render.SuperRenderTypeBuffer; -import net.minecraftforge.client.gui.ForgeIngameGui; +import net.minecraftforge.client.gui.overlay.ForgeGui; public abstract class PlacementToolBase extends SchematicToolBase { @@ -23,7 +23,7 @@ public abstract class PlacementToolBase extends SchematicToolBase { } @Override - public void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height) { + public void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) { super.renderOverlay(gui, poseStack, partialTicks, width, height); } 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..b55542e4d 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 @@ -24,7 +24,7 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult.Type; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.gui.ForgeIngameGui; +import net.minecraftforge.client.gui.overlay.ForgeGui; public abstract class SchematicToolBase implements ISchematicTool { @@ -124,7 +124,7 @@ public abstract class SchematicToolBase implements ISchematicTool { public void renderTool(PoseStack ms, SuperRenderTypeBuffer buffer) {} @Override - public void renderOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height) {} + public void renderOverlay(ForgeGui gui, PoseStack poseStack, float partialTicks, int width, int height) {} @Override public void renderOnSchematic(PoseStack ms, SuperRenderTypeBuffer buffer) { 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..507f9565d 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 @@ -8,7 +8,7 @@ import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; public enum Tools { @@ -31,7 +31,7 @@ public enum Tools { return tool; } - public TranslatableComponent getDisplayName() { + public MutableComponent getDisplayName() { return Lang.translateDirect("schematic.tool." + Lang.asId(name())); } 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..d204654f0 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 @@ -31,7 +31,6 @@ import net.minecraft.nbt.NbtAccounter; import net.minecraft.nbt.NbtIo; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; @@ -84,7 +83,7 @@ public class SchematicItem extends Item { if (stack.hasTag()) { if (stack.getTag() .contains("File")) - tooltip.add(new TextComponent(ChatFormatting.GOLD + stack.getTag() + tooltip.add(Component.literal(ChatFormatting.GOLD + stack.getTag() .getString("File"))); } else { tooltip.add(Lang.translateDirect("schematic.invalid").withStyle(ChatFormatting.RED)); diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index bf43cd997..a6cd5f1d8 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -23,6 +23,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.train.capability.CapabilityMinecartController; import com.simibubi.create.content.contraptions.components.turntable.TurntableHandler; +import com.simibubi.create.content.contraptions.goggles.GoggleOverlayRenderer; import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipe; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler; import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; @@ -72,7 +73,6 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.entity.EntityRenderDispatcher; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -81,21 +81,23 @@ import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.ConfigGuiHandler; +import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.client.event.ClientPlayerNetworkEvent; -import net.minecraftforge.client.event.DrawSelectionEvent; import net.minecraftforge.client.event.EntityRenderersEvent; -import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; +import net.minecraftforge.client.event.RegisterGuiOverlaysEvent; +import net.minecraftforge.client.event.RenderHighlightEvent; import net.minecraftforge.client.event.RenderLevelLastEvent; import net.minecraftforge.client.event.RenderTooltipEvent; +import net.minecraftforge.client.event.ViewportEvent; +import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; import net.minecraftforge.event.TickEvent.ClientTickEvent; import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.event.TickEvent.RenderTickEvent; import net.minecraftforge.event.entity.EntityMountEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; @@ -174,21 +176,21 @@ public class ClientEvents { } @SubscribeEvent - public static void onRenderSelection(DrawSelectionEvent event) {} + public static void onRenderSelection(RenderHighlightEvent.Block event) {} @SubscribeEvent - public static void onJoin(ClientPlayerNetworkEvent.LoggedInEvent event) { + public static void onJoin(ClientPlayerNetworkEvent.LoggingIn event) { CreateClient.checkGraphicsFanciness(); } @SubscribeEvent - public static void onLeave(ClientPlayerNetworkEvent.LoggedOutEvent event) { + public static void onLeave(ClientPlayerNetworkEvent.LoggingOut event) { CreateClient.RAILWAYS.cleanUp(); } @SubscribeEvent - public static void onLoadWorld(WorldEvent.Load event) { - LevelAccessor world = event.getWorld(); + public static void onLoadWorld(LevelEvent.Load event) { + LevelAccessor world = event.getLevel(); if (world.isClientSide() && world instanceof ClientLevel && !(world instanceof WrappedClientWorld)) { CreateClient.invalidateRenderers(); AnimationTickHolder.reset(); @@ -196,14 +198,14 @@ public class ClientEvents { } @SubscribeEvent - public static void onUnloadWorld(WorldEvent.Unload event) { - if (!event.getWorld() + public static void onUnloadWorld(LevelEvent.Unload event) { + if (!event.getLevel() .isClientSide()) return; CreateClient.invalidateRenderers(); CreateClient.SOUL_PULSE_EFFECT_HANDLER.refresh(); AnimationTickHolder.reset(); - ControlsHandler.levelUnloaded(event.getWorld()); + ControlsHandler.levelUnloaded(event.getLevel()); } @SubscribeEvent @@ -232,7 +234,7 @@ public class ClientEvents { } @SubscribeEvent - public static void onCameraSetup(EntityViewRenderEvent.CameraSetup event) { + public static void onCameraSetup(ViewportEvent.ComputeCameraAngles event) { float partialTicks = AnimationTickHolder.getPartialTicks(); if (CameraAngleAnimationService.isYawAnimating()) @@ -251,7 +253,7 @@ public class ClientEvents { public static void addToItemTooltip(ItemTooltipEvent event) { if (!AllConfigs.CLIENT.tooltips.get()) return; - if (event.getPlayer() == null) + if (event.getEntity() == null) return; ItemStack stack = event.getItemStack(); @@ -259,7 +261,7 @@ public class ClientEvents { .getDescriptionId(stack); if (translationKey.startsWith(ITEM_PREFIX) || translationKey.startsWith(BLOCK_PREFIX)) - if (TooltipHelper.hasTooltip(stack, event.getPlayer())) { + if (TooltipHelper.hasTooltip(stack, event.getEntity())) { List itemTooltip = event.getToolTip(); List toolTip = new ArrayList<>(); toolTip.add(itemTooltip.remove(0)); @@ -274,7 +276,7 @@ public class ClientEvents { List kineticStats = ItemDescription.getKineticStats(item.getBlock()); if (!kineticStats.isEmpty()) { event.getToolTip() - .add(new TextComponent("")); + .add(Component.literal("")); event.getToolTip() .addAll(kineticStats); } @@ -314,7 +316,7 @@ public class ClientEvents { } @SubscribeEvent - public static void getFogDensity(EntityViewRenderEvent.RenderFogEvent event) { + public static void getFogDensity(ViewportEvent.RenderFog event) { Camera info = event.getCamera(); Level level = Minecraft.getInstance().level; BlockPos blockPos = info.getBlockPosition(); @@ -347,7 +349,7 @@ public class ClientEvents { } @SubscribeEvent - public static void getFogColor(EntityViewRenderEvent.FogColors event) { + public static void getFogColor(ViewportEvent.ComputeFogColor event) { Camera info = event.getCamera(); Level level = Minecraft.getInstance().level; BlockPos blockPos = info.getBlockPosition(); @@ -398,13 +400,25 @@ public class ClientEvents { TrainHatArmorLayer.registerOnAll(dispatcher); } + @SubscribeEvent + public static void registerGuiOverlays(RegisterGuiOverlaysEvent event) { + // Register overlays in reverse order + event.registerAbove(VanillaGuiOverlay.AIR_LEVEL.id(), "Create's Remaining Air", CopperBacktankArmorLayer.REMAINING_AIR_OVERLAY); + event.registerAbove(VanillaGuiOverlay.EXPERIENCE_BAR.id(), "Create's Train Driver HUD", TrainHUD.OVERLAY); + event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), "Create's Goggle Information", GoggleOverlayRenderer.OVERLAY); + event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), "Create's Blueprints", BlueprintOverlayRenderer.OVERLAY); + event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), "Create's Linked Controller", LinkedControllerClientHandler.OVERLAY); + event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), "Create's Schematics", CreateClient.SCHEMATIC_HANDLER.getOverlayRenderer()); + event.registerAbove(VanillaGuiOverlay.HOTBAR.id(), "Create's Toolboxes", ToolboxHandlerClient.OVERLAY); + } + @SubscribeEvent public static void onLoadComplete(FMLLoadCompleteEvent event) { ModContainer createContainer = ModList.get() .getModContainerById(Create.ID) .orElseThrow(() -> new IllegalStateException("Create mod container missing on LoadComplete")); - createContainer.registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, - () -> new ConfigGuiHandler.ConfigGuiFactory( + createContainer.registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, + () -> new ConfigScreenHandler.ConfigScreenFactory( (mc, previousScreen) -> BaseConfigScreen.forCreate(previousScreen))); } diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index fe6332c10..700931339 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -43,21 +43,21 @@ import net.minecraftforge.event.AddReloadListenerEvent; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.OnDatapackSyncEvent; import net.minecraftforge.event.RegisterCommandsEvent; +import net.minecraftforge.event.TickEvent.LevelTickEvent; import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.event.TickEvent.ServerTickEvent; -import net.minecraftforge.event.TickEvent.WorldTickEvent; import net.minecraftforge.event.entity.EntityEvent; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.EntityJoinLevelEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedOutEvent; +import net.minecraftforge.event.level.BlockEvent.FluidPlaceBlockEvent; +import net.minecraftforge.event.level.ChunkEvent; +import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.event.server.ServerStoppingEvent; import net.minecraftforge.event.world.BiomeLoadingEvent; -import net.minecraftforge.event.world.BlockEvent.FluidPlaceBlockEvent; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModList; @@ -85,14 +85,14 @@ public class CommonEvents { @SubscribeEvent public static void playerLoggedIn(PlayerLoggedInEvent event) { - Player player = event.getPlayer(); + Player player = event.getEntity(); ToolboxHandler.playerLogin(player); Create.RAILWAYS.playerLogin(player); } @SubscribeEvent public static void playerLoggedOut(PlayerLoggedOutEvent event) { - Player player = event.getPlayer(); + Player player = event.getEntity(); Create.RAILWAYS.playerLogout(player); } @@ -101,7 +101,7 @@ public class CommonEvents { BlockState blockState = event.getOriginalState(); FluidState fluidState = blockState.getFluidState(); BlockPos pos = event.getPos(); - LevelAccessor world = event.getWorld(); + LevelAccessor world = event.getLevel(); if (fluidState.isSource() && FluidHelper.isLava(fluidState.getType())) return; @@ -120,10 +120,10 @@ public class CommonEvents { } @SubscribeEvent - public static void onWorldTick(WorldTickEvent event) { + public static void onWorldTick(LevelTickEvent event) { if (event.phase == Phase.START) return; - Level world = event.world; + Level world = event.level; ContraptionHandler.tick(world); CapabilityMinecartController.tick(world); CouplingPhysics.tick(world); @@ -133,8 +133,8 @@ public class CommonEvents { } @SubscribeEvent - public static void onUpdateLivingEntity(LivingUpdateEvent event) { - LivingEntity entityLiving = event.getEntityLiving(); + public static void onUpdateLivingEntity(LivingTickEvent event) { + LivingEntity entityLiving = event.getEntity(); Level world = entityLiving.level; if (world == null) return; @@ -143,9 +143,9 @@ public class CommonEvents { } @SubscribeEvent - public static void onEntityAdded(EntityJoinWorldEvent event) { + public static void onEntityAdded(EntityJoinLevelEvent event) { Entity entity = event.getEntity(); - Level world = event.getWorld(); + Level world = event.getLevel(); ContraptionHandler.addSpawnedContraptionsToCollisionList(entity, world); } @@ -186,16 +186,16 @@ public class CommonEvents { } @SubscribeEvent - public static void onLoadWorld(WorldEvent.Load event) { - LevelAccessor world = event.getWorld(); + public static void onLoadWorld(LevelEvent.Load event) { + LevelAccessor world = event.getLevel(); Create.REDSTONE_LINK_NETWORK_HANDLER.onLoadWorld(world); Create.TORQUE_PROPAGATOR.onLoadWorld(world); Create.RAILWAYS.levelLoaded(world); } @SubscribeEvent - public static void onUnloadWorld(WorldEvent.Unload event) { - LevelAccessor world = event.getWorld(); + public static void onUnloadWorld(LevelEvent.Unload event) { + LevelAccessor world = event.getLevel(); Create.REDSTONE_LINK_NETWORK_HANDLER.onUnloadWorld(world); Create.TORQUE_PROPAGATOR.onUnloadWorld(world); WorldAttached.invalidateWorld(world); diff --git a/src/main/java/com/simibubi/create/events/InputEvents.java b/src/main/java/com/simibubi/create/events/InputEvents.java index b40b720cd..2b4e847ab 100644 --- a/src/main/java/com/simibubi/create/events/InputEvents.java +++ b/src/main/java/com/simibubi/create/events/InputEvents.java @@ -12,10 +12,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollVal import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.InputEvent.ClickInputEvent; -import net.minecraftforge.client.event.InputEvent.KeyInputEvent; -import net.minecraftforge.client.event.InputEvent.MouseInputEvent; -import net.minecraftforge.client.event.InputEvent.MouseScrollEvent; +import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @@ -23,7 +20,7 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber; public class InputEvents { @SubscribeEvent - public static void onKeyInput(KeyInputEvent event) { + public static void onKeyInput(InputEvent.Key event) { if (Minecraft.getInstance().screen != null) return; @@ -35,7 +32,7 @@ public class InputEvents { } @SubscribeEvent - public static void onMouseScrolled(MouseScrollEvent event) { + public static void onMouseScrolled(InputEvent.MouseScrollingEvent event) { if (Minecraft.getInstance().screen != null) return; @@ -48,7 +45,7 @@ public class InputEvents { } @SubscribeEvent - public static void onMouseInput(MouseInputEvent event) { + public static void onMouseInput(InputEvent.MouseButton event) { if (Minecraft.getInstance().screen != null) return; @@ -60,7 +57,7 @@ public class InputEvents { } @SubscribeEvent - public static void onClickInput(ClickInputEvent event) { + public static void onClickInput(InputEvent.InteractionKeyMappingTriggered event) { Minecraft mc = Minecraft.getInstance(); if (mc.screen != null) return; diff --git a/src/main/java/com/simibubi/create/foundation/ModFilePackResources.java b/src/main/java/com/simibubi/create/foundation/ModFilePackResources.java index b97943a19..1fdae4db8 100644 --- a/src/main/java/com/simibubi/create/foundation/ModFilePackResources.java +++ b/src/main/java/com/simibubi/create/foundation/ModFilePackResources.java @@ -3,9 +3,9 @@ package com.simibubi.create.foundation; import java.nio.file.Path; import net.minecraftforge.forgespi.locating.IModFile; -import net.minecraftforge.resource.PathResourcePack; +import net.minecraftforge.resource.PathPackResources; -public class ModFilePackResources extends PathResourcePack { +public class ModFilePackResources extends PathPackResources { protected final IModFile modFile; protected final String sourcePath; diff --git a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java index 6a55e2996..9b40debcb 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java @@ -17,8 +17,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.google.common.collect.Sets; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllFluids; @@ -26,9 +24,9 @@ import com.simibubi.create.AllItems; import com.simibubi.create.foundation.advancement.CreateAdvancement.Builder; import net.minecraft.advancements.Advancement; +import net.minecraft.data.CachedOutput; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; -import net.minecraft.data.HashCache; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Items; @@ -619,8 +617,6 @@ public class AllAdvancements implements DataProvider { // Datagen private static final Logger LOGGER = LogManager.getLogger(); - private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting() - .create(); private final DataGenerator generator; public AllAdvancements(DataGenerator generatorIn) { @@ -628,7 +624,7 @@ public class AllAdvancements implements DataProvider { } @Override - public void run(HashCache cache) throws IOException { + public void run(CachedOutput cache) throws IOException { Path path = this.generator.getOutputFolder(); Set set = Sets.newHashSet(); Consumer consumer = (p_204017_3_) -> { @@ -638,7 +634,7 @@ public class AllAdvancements implements DataProvider { Path path1 = getPath(path, p_204017_3_); try { - DataProvider.save(GSON, cache, p_204017_3_.deconstruct() + DataProvider.saveStable(cache, p_204017_3_.deconstruct() .serializeToJson(), path1); } catch (IOException ioexception) { LOGGER.error("Couldn't save advancement {}", path1, ioexception); diff --git a/src/main/java/com/simibubi/create/foundation/advancement/CreateAdvancement.java b/src/main/java/com/simibubi/create/foundation/advancement/CreateAdvancement.java index 10f37ab4d..338368b68 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/CreateAdvancement.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/CreateAdvancement.java @@ -16,7 +16,7 @@ import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.advancements.critereon.MinMaxBounds; import net.minecraft.advancements.critereon.NbtPredicate; import net.minecraft.advancements.critereon.PlacedBlockTrigger; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.TagKey; @@ -54,8 +54,8 @@ public class CreateAdvancement { builder.addCriterion("0", builtinTrigger.instance()); } - builder.display(t.icon, new TranslatableComponent(titleKey()), - new TranslatableComponent(descriptionKey()).withStyle(s -> s.withColor(0xDBA213)), + builder.display(t.icon, Component.translatable(titleKey()), + Component.translatable(descriptionKey()).withStyle(s -> s.withColor(0xDBA213)), id.equals("root") ? BACKGROUND : null, t.type.frame, t.type.toast, t.type.announce, t.type.hide); if (t.type == TaskType.SECRET) diff --git a/src/main/java/com/simibubi/create/foundation/advancement/RegistryTrigger.java b/src/main/java/com/simibubi/create/foundation/advancement/RegistryTrigger.java index 669d7dbc8..3efb31683 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/RegistryTrigger.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/RegistryTrigger.java @@ -6,11 +6,10 @@ import javax.annotation.ParametersAreNonnullByDefault; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.registries.IForgeRegistry; -import net.minecraftforge.registries.IForgeRegistryEntry; @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -public class RegistryTrigger> extends StringSerializableTrigger { +public class RegistryTrigger extends StringSerializableTrigger { private final IForgeRegistry registry; public RegistryTrigger(String id, IForgeRegistry registry) { 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..0ce628a15 100644 --- a/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java +++ b/src/main/java/com/simibubi/create/foundation/block/ItemUseOverrides.java @@ -29,7 +29,7 @@ public class ItemUseOverrides { if (AllItems.WRENCH.isIn(event.getItemStack())) return; - BlockState state = event.getWorld() + BlockState state = event.getLevel() .getBlockState(event.getPos()); ResourceLocation id = state.getBlock() .getRegistryName(); @@ -39,7 +39,7 @@ public class ItemUseOverrides { BlockHitResult blockTrace = new BlockHitResult(VecHelper.getCenterOf(event.getPos()), event.getFace(), event.getPos(), true); - InteractionResult result = state.use(event.getWorld(), event.getPlayer(), event.getHand(), blockTrace); + InteractionResult result = state.use(event.getLevel(), event.getEntity(), event.getHand(), blockTrace); if (!result.consumesAction()) return; diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java b/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java index 2cc960565..a318ffa6e 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/BakedModelWrapperWithData.java @@ -5,9 +5,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.BakedModelWrapper; -import net.minecraftforge.client.model.data.IModelData; -import net.minecraftforge.client.model.data.ModelDataMap; -import net.minecraftforge.client.model.data.ModelDataMap.Builder; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelData.Builder; public abstract class BakedModelWrapperWithData extends BakedModelWrapper { @@ -16,14 +15,14 @@ public abstract class BakedModelWrapperWithData extends BakedModelWrapper getQuads(BlockState state, Direction side, Random rand, IModelData extraData) { - List quads = super.getQuads(state, side, rand, extraData); - if (!extraData.hasProperty(CT_PROPERTY)) + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData extraData, RenderType renderType) { + List quads = super.getQuads(state, side, rand, extraData, renderType); + if (!extraData.has(CT_PROPERTY)) return quads; - CTData data = extraData.getData(CT_PROPERTY); + CTData data = extraData.get(CT_PROPERTY); quads = new ArrayList<>(quads); for (int i = 0; i < quads.size(); i++) { diff --git a/src/main/java/com/simibubi/create/foundation/block/render/DestroyProgressRenderingHandler.java b/src/main/java/com/simibubi/create/foundation/block/render/DestroyProgressRenderingHandler.java index e077bad1b..dd2f1fa78 100644 --- a/src/main/java/com/simibubi/create/foundation/block/render/DestroyProgressRenderingHandler.java +++ b/src/main/java/com/simibubi/create/foundation/block/render/DestroyProgressRenderingHandler.java @@ -4,9 +4,9 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; -public interface DestroyProgressRenderingHandler extends IBlockRenderProperties { +public interface DestroyProgressRenderingHandler extends IClientBlockExtensions { /** * Called before the default block breaking progress overlay is rendered. * diff --git a/src/main/java/com/simibubi/create/foundation/block/render/ReducedDestroyEffects.java b/src/main/java/com/simibubi/create/foundation/block/render/ReducedDestroyEffects.java index a8daefe44..534958cd5 100644 --- a/src/main/java/com/simibubi/create/foundation/block/render/ReducedDestroyEffects.java +++ b/src/main/java/com/simibubi/create/foundation/block/render/ReducedDestroyEffects.java @@ -10,9 +10,9 @@ import net.minecraft.util.Mth; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.client.IBlockRenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; -public class ReducedDestroyEffects implements IBlockRenderProperties { +public class ReducedDestroyEffects implements IClientBlockExtensions { @Override public boolean addDestroyEffects(BlockState state, Level worldIn, BlockPos pos, ParticleEngine manager) { diff --git a/src/main/java/com/simibubi/create/foundation/command/ClearBufferCacheCommand.java b/src/main/java/com/simibubi/create/foundation/command/ClearBufferCacheCommand.java index 34a47169c..22c85d0af 100644 --- a/src/main/java/com/simibubi/create/foundation/command/ClearBufferCacheCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/ClearBufferCacheCommand.java @@ -5,7 +5,7 @@ import com.simibubi.create.CreateClient; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.DistExecutor; @@ -18,7 +18,7 @@ public class ClearBufferCacheCommand { .executes(ctx -> { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> ClearBufferCacheCommand::execute); ctx.getSource() - .sendSuccess(new TextComponent("Cleared rendering buffers."), true); + .sendSuccess(Component.literal("Cleared rendering buffers."), true); return 1; }); } diff --git a/src/main/java/com/simibubi/create/foundation/command/CloneCommand.java b/src/main/java/com/simibubi/create/foundation/command/CloneCommand.java index 11b68e60e..4945e8006 100644 --- a/src/main/java/com/simibubi/create/foundation/command/CloneCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/CloneCommand.java @@ -14,8 +14,7 @@ import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.Clearable; import net.minecraft.world.level.block.Blocks; @@ -30,7 +29,7 @@ import net.minecraft.world.phys.Vec3; public class CloneCommand { private static final Dynamic2CommandExceptionType CLONE_TOO_BIG_EXCEPTION = new Dynamic2CommandExceptionType( - (arg1, arg2) -> new TranslatableComponent("commands.clone.toobig", arg1, arg2)); + (arg1, arg2) -> Component.translatable("commands.clone.toobig", arg1, arg2)); public static ArgumentBuilder register() { return Commands.literal("clone") @@ -47,7 +46,7 @@ public class CloneCommand { BlockPosArgument.getLoadedBlockPos(ctx, "destination"), true))))) .executes(ctx -> { ctx.getSource() - .sendSuccess(new TextComponent( + .sendSuccess(Component.literal( "Clones all blocks as well as super glue from the specified area to the target destination"), true); @@ -78,9 +77,9 @@ public class CloneCommand { int gluePastes = cloneGlue(sourceArea, world, diffToTarget); if (cloneBlocks) - source.sendSuccess(new TextComponent("Successfully cloned " + blockPastes + " Blocks"), true); + source.sendSuccess(Component.literal("Successfully cloned " + blockPastes + " Blocks"), true); - source.sendSuccess(new TextComponent("Successfully applied glue " + gluePastes + " times"), true); + source.sendSuccess(Component.literal("Successfully applied glue " + gluePastes + " times"), true); return blockPastes + gluePastes; } diff --git a/src/main/java/com/simibubi/create/foundation/command/ConfigCommand.java b/src/main/java/com/simibubi/create/foundation/command/ConfigCommand.java index a7abc0456..6b42373f3 100644 --- a/src/main/java/com/simibubi/create/foundation/command/ConfigCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/ConfigCommand.java @@ -9,7 +9,7 @@ import com.simibubi.create.foundation.networking.AllPackets; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.network.PacketDistributor; @@ -55,7 +55,7 @@ public class ConfigCommand { try { configPath = ConfigHelper.ConfigPath.parse(path); } catch (IllegalArgumentException e) { - ctx.getSource().sendFailure(new TextComponent(e.getMessage())); + ctx.getSource().sendFailure(Component.literal(e.getMessage())); return 0; } @@ -71,13 +71,13 @@ public class ConfigCommand { try { ConfigHelper.setConfigValue(configPath, value); - ctx.getSource().sendSuccess(new TextComponent("Great Success!"), false); + ctx.getSource().sendSuccess(Component.literal("Great Success!"), false); return Command.SINGLE_SUCCESS; } catch (ConfigHelper.InvalidValueException e) { - ctx.getSource().sendFailure(new TextComponent("Config could not be set the the specified value!")); + ctx.getSource().sendFailure(Component.literal("Config could not be set the the specified value!")); return 0; } catch (Exception e) { - ctx.getSource().sendFailure(new TextComponent("Something went wrong while trying to set config value. Check the server logs for more information")); + ctx.getSource().sendFailure(Component.literal("Something went wrong while trying to set config value. Check the server logs for more information")); Create.LOGGER.warn("Exception during server-side config value set:", e); return 0; } 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..20bf70474 100644 --- a/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/CouplingCommand.java @@ -17,7 +17,7 @@ import com.simibubi.create.foundation.utility.Iterate; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.vehicle.AbstractMinecart; @@ -26,11 +26,11 @@ import net.minecraftforge.common.util.LazyOptional; public class CouplingCommand { public static final SimpleCommandExceptionType ONLY_MINECARTS_ALLOWED = - new SimpleCommandExceptionType(new TextComponent("Only Minecarts can be coupled")); + new SimpleCommandExceptionType(Component.literal("Only Minecarts can be coupled")); public static final SimpleCommandExceptionType SAME_DIMENSION = - new SimpleCommandExceptionType(new TextComponent("Minecarts have to be in the same Dimension")); + new SimpleCommandExceptionType(Component.literal("Minecarts have to be in the same Dimension")); public static final DynamicCommandExceptionType TWO_CARTS = - new DynamicCommandExceptionType(a -> new TextComponent( + new DynamicCommandExceptionType(a -> Component.literal( "Your selector targeted " + a + " entities. You can only couple 2 Minecarts at a time.")); public static ArgumentBuilder register() { @@ -105,7 +105,7 @@ public class CouplingCommand { cart1.getCapability(CapabilityMinecartController.MINECART_CONTROLLER_CAPABILITY); if (!cart1Capability.isPresent()) { ctx.getSource() - .sendSuccess(new TextComponent("Minecart has no Couplings Attached"), true); + .sendSuccess(Component.literal("Minecart has no Couplings Attached"), true); return 0; } @@ -115,7 +115,7 @@ public class CouplingCommand { + (cart1Controller.isLeadingCoupling() ? 1 : 0); if (cart1Couplings == 0) { ctx.getSource() - .sendSuccess(new TextComponent("Minecart has no Couplings Attached"), true); + .sendSuccess(Component.literal("Minecart has no Couplings Attached"), true); return 0; } @@ -138,7 +138,7 @@ public class CouplingCommand { } ctx.getSource() - .sendSuccess(new TextComponent("The specified Carts are not coupled"), true); + .sendSuccess(Component.literal("The specified Carts are not coupled"), true); return 0; })))) @@ -153,7 +153,7 @@ public class CouplingCommand { cart.getCapability(CapabilityMinecartController.MINECART_CONTROLLER_CAPABILITY); if (!capability.isPresent()) { ctx.getSource() - .sendSuccess(new TextComponent("Minecart has no Couplings Attached"), true); + .sendSuccess(Component.literal("Minecart has no Couplings Attached"), true); return 0; } @@ -163,7 +163,7 @@ public class CouplingCommand { (controller.isConnectedToCoupling() ? 1 : 0) + (controller.isLeadingCoupling() ? 1 : 0); if (couplings == 0) { ctx.getSource() - .sendSuccess(new TextComponent("Minecart has no Couplings Attached"), true); + .sendSuccess(Component.literal("Minecart has no Couplings Attached"), true); return 0; } @@ -171,7 +171,7 @@ public class CouplingCommand { ctx.getSource() .sendSuccess( - new TextComponent("Removed " + couplings + " couplings from the Minecart"), true); + Component.literal("Removed " + couplings + " couplings from the Minecart"), true); return couplings; }))); diff --git a/src/main/java/com/simibubi/create/foundation/command/DumpRailwaysCommand.java b/src/main/java/com/simibubi/create/foundation/command/DumpRailwaysCommand.java index d51655d52..0efd90dc0 100644 --- a/src/main/java/com/simibubi/create/foundation/command/DumpRailwaysCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/DumpRailwaysCommand.java @@ -22,7 +22,6 @@ import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.HoverEvent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.Mth; import net.minecraft.world.entity.LivingEntity; @@ -36,7 +35,7 @@ public class DumpRailwaysCommand { .executes(ctx -> { CommandSourceStack source = ctx.getSource(); fillReport(source.getLevel(), source.getPosition(), - (s, f) -> source.sendSuccess(new TextComponent(s).withStyle(st -> st.withColor(f)), false), + (s, f) -> source.sendSuccess(Component.literal(s).withStyle(st -> st.withColor(f)), false), (c) -> source.sendSuccess(c, false)); return 1; }); @@ -141,11 +140,11 @@ public class DumpRailwaysCommand { } private static Component createDeleteButton(Train train) { - return ComponentUtils.wrapInSquareBrackets((new TextComponent("Remove")).withStyle((p_180514_) -> { + return ComponentUtils.wrapInSquareBrackets((Component.literal("Remove")).withStyle((p_180514_) -> { return p_180514_.withColor(0xFFAD60) .withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/c killTrain " + train.id.toString())) .withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, - new TextComponent("Click to remove ").append(train.name))) + Component.literal("Click to remove ").append(train.name))) .withInsertion("/c killTrain " + train.id.toString()); })); } diff --git a/src/main/java/com/simibubi/create/foundation/command/FixLightingCommand.java b/src/main/java/com/simibubi/create/foundation/command/FixLightingCommand.java index ceca34925..c0abf3827 100644 --- a/src/main/java/com/simibubi/create/foundation/command/FixLightingCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/FixLightingCommand.java @@ -5,7 +5,7 @@ import com.simibubi.create.foundation.networking.AllPackets; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.PacketDistributor; @@ -21,7 +21,7 @@ public class FixLightingCommand { ctx.getSource() .sendSuccess( - new TextComponent("Forge's experimental block rendering pipeline is now enabled."), true); + Component.literal("Forge's experimental block rendering pipeline is now enabled."), true); return 1; }); diff --git a/src/main/java/com/simibubi/create/foundation/command/FlySpeedCommand.java b/src/main/java/com/simibubi/create/foundation/command/FlySpeedCommand.java index 0f6bf0e27..cf336b76e 100644 --- a/src/main/java/com/simibubi/create/foundation/command/FlySpeedCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/FlySpeedCommand.java @@ -8,7 +8,7 @@ import com.mojang.brigadier.context.CommandContext; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.ClientboundPlayerAbilitiesPacket; import net.minecraft.server.level.ServerPlayer; @@ -38,7 +38,7 @@ public class FlySpeedCommand { player.connection.send(packet); ctx.getSource() - .sendSuccess(new TextComponent("Temporarily set " + player.getName() + .sendSuccess(Component.literal("Temporarily set " + player.getName() .getString() + "'s Flying Speed to: " + speed), true); return Command.SINGLE_SUCCESS; diff --git a/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java b/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java index 496885d84..643fd8aaa 100644 --- a/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/HighlightCommand.java @@ -13,7 +13,7 @@ import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.EntityArgument; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.Level; @@ -60,7 +60,7 @@ public class HighlightCommand { private static void sendMissMessage(CommandSourceStack source) { source.sendSuccess( - new TextComponent("Try looking at a Block that has failed to assemble a Contraption and try again."), + Component.literal("Try looking at a Block that has failed to assemble a Contraption and try again."), true); } @@ -94,7 +94,7 @@ public class HighlightCommand { } if (!exception.hasPosition()) { - source.sendSuccess(new TextComponent("Can't highlight a specific position for this issue"), true); + source.sendSuccess(Component.literal("Can't highlight a specific position for this issue"), true); return Command.SINGLE_SUCCESS; } 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..1486be151 100644 --- a/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/KillTPSCommand.java @@ -46,12 +46,12 @@ public class KillTPSCommand { return 1; }) .then(Commands.argument(Lang.translateDirect("command.killTPSCommand.argument.tickTime") - .getContents(), IntegerArgumentType.integer(1)) + .getString(), IntegerArgumentType.integer(1)) .executes(ctx -> { // killtps start tickTime int tickTime = IntegerArgumentType.getInteger(ctx, Lang.translateDirect("command.killTPSCommand.argument.tickTime") - .getContents()); + .getString()); Create.LAGGER.setTickTime(tickTime); Create.LAGGER.setLagging(true); ctx.getSource() diff --git a/src/main/java/com/simibubi/create/foundation/command/KillTrainCommand.java b/src/main/java/com/simibubi/create/foundation/command/KillTrainCommand.java index c2194446c..860829f1a 100644 --- a/src/main/java/com/simibubi/create/foundation/command/KillTrainCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/KillTrainCommand.java @@ -9,7 +9,7 @@ import com.simibubi.create.content.logistics.trains.entity.Train; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.UuidArgument; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; public class KillTrainCommand { @@ -27,13 +27,13 @@ public class KillTrainCommand { private static void run(CommandSourceStack source, UUID argument) { Train train = Create.RAILWAYS.trains.get(argument); if (train == null) { - source.sendFailure(new TextComponent("No Train with id " + argument.toString() + source.sendFailure(Component.literal("No Train with id " + argument.toString() .substring(0, 5) + "[...] was found")); return; } train.invalid = true; - source.sendSuccess(new TextComponent("Train '").append(train.name) + source.sendSuccess(Component.literal("Train '").append(train.name) .append("' removed successfully"), true); } diff --git a/src/main/java/com/simibubi/create/foundation/command/OverlayConfigCommand.java b/src/main/java/com/simibubi/create/foundation/command/OverlayConfigCommand.java index 384fc6c41..0301c0261 100644 --- a/src/main/java/com/simibubi/create/foundation/command/OverlayConfigCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/OverlayConfigCommand.java @@ -5,7 +5,7 @@ import com.simibubi.create.foundation.networking.AllPackets; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; @@ -26,7 +26,7 @@ public class OverlayConfigCommand { new SConfigureConfigPacket(SConfigureConfigPacket.Actions.overlayReset.name(), ""))); ctx.getSource() - .sendSuccess(new TextComponent("reset overlay offset"), true); + .sendSuccess(Component.literal("reset overlay offset"), true); return 1; }) @@ -40,7 +40,7 @@ public class OverlayConfigCommand { new SConfigureConfigPacket(SConfigureConfigPacket.Actions.overlayScreen.name(), ""))); ctx.getSource() - .sendSuccess(new TextComponent("window opened"), true); + .sendSuccess(Component.literal("window opened"), true); return 1; }); diff --git a/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java b/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java index bbb8ce46b..18bbf9692 100644 --- a/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java +++ b/src/main/java/com/simibubi/create/foundation/command/ReplaceInCommandBlocksCommand.java @@ -9,7 +9,7 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.BaseCommandBlock; import net.minecraft.world.level.block.CommandBlock; @@ -59,10 +59,10 @@ public class ReplaceInCommandBlocksCommand { }); int intValue = blocks.intValue(); if (intValue == 0) { - source.sendSuccess(new TextComponent("Couldn't find \"" + toReplace + "\" anywhere."), true); + source.sendSuccess(Component.literal("Couldn't find \"" + toReplace + "\" anywhere."), true); return; } - source.sendSuccess(new TextComponent("Replaced occurrences in " + intValue + " blocks."), true); + source.sendSuccess(Component.literal("Replaced occurrences in " + intValue + " blocks."), true); } } 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..61ad3ac63 100644 --- a/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java +++ b/src/main/java/com/simibubi/create/foundation/command/SConfigureConfigPacket.java @@ -23,10 +23,8 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.ChatType; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -87,7 +85,7 @@ public class SConfigureConfigPacket extends SimplePacketBase { try { configPath = ConfigHelper.ConfigPath.parse(option); } catch (IllegalArgumentException e) { - player.displayClientMessage(new TextComponent(e.getMessage()), false); + player.displayClientMessage(Component.literal(e.getMessage()), false); return; } @@ -98,11 +96,11 @@ public class SConfigureConfigPacket extends SimplePacketBase { try { ConfigHelper.setConfigValue(configPath, value); - player.displayClientMessage(new TextComponent("Great Success!"), false); + player.displayClientMessage(Component.literal("Great Success!"), false); } catch (ConfigHelper.InvalidValueException e) { - player.displayClientMessage(new TextComponent("Config could not be set the the specified value!"), false); + player.displayClientMessage(Component.literal("Config could not be set the the specified value!"), false); } catch (Exception e) { - player.displayClientMessage(new TextComponent("Something went wrong while trying to set config value. Check the client logs for more information"), false); + player.displayClientMessage(Component.literal("Something went wrong while trying to set config value. Check the client logs for more information"), false); Create.LOGGER.warn("Exception during client-side config value set:", e); } @@ -146,14 +144,14 @@ public class SConfigureConfigPacket extends SimplePacketBase { try { configPath = ConfigHelper.ConfigPath.parse(value); } catch (IllegalArgumentException e) { - player.displayClientMessage(new TextComponent(e.getMessage()), false); + player.displayClientMessage(Component.literal(e.getMessage()), false); return; } try { ScreenOpener.open(SubMenuConfigScreen.find(configPath)); } catch (Exception e) { - player.displayClientMessage(new TextComponent("Unable to find the specified config"), false); + player.displayClientMessage(Component.literal("Unable to find the specified config"), false); } } @@ -164,7 +162,7 @@ public class SConfigureConfigPacket extends SimplePacketBase { return; if (value.equals("info")) { - Component text = new TextComponent("Rainbow Debug Utility is currently: ") + Component text = Component.literal("Rainbow Debug Utility is currently: ") .append(boolToText(AllConfigs.CLIENT.rainbowDebug.get())); player.displayClientMessage(text, false); return; @@ -172,7 +170,7 @@ public class SConfigureConfigPacket extends SimplePacketBase { AllConfigs.CLIENT.rainbowDebug.set(Boolean.parseBoolean(value)); Component text = boolToText(AllConfigs.CLIENT.rainbowDebug.get()) - .append(new TextComponent(" Rainbow Debug Utility").withStyle(ChatFormatting.WHITE)); + .append(Component.literal(" Rainbow Debug Utility").withStyle(ChatFormatting.WHITE)); player.displayClientMessage(text, false); } @@ -213,9 +211,11 @@ public class SConfigureConfigPacket extends SimplePacketBase { @OnlyIn(Dist.CLIENT) private static void fabulousWarning(String value) { AllConfigs.CLIENT.ignoreFabulousWarning.set(true); - Minecraft.getInstance().gui.handleChat(ChatType.CHAT, - new TextComponent("Disabled Fabulous graphics warning"), - Minecraft.getInstance().player.getUUID()); + LocalPlayer player = Minecraft.getInstance().player; + if (player != null) { + player.displayClientMessage( + Component.literal("Disabled Fabulous graphics warning"), false); + } } @OnlyIn(Dist.CLIENT) @@ -268,8 +268,8 @@ public class SConfigureConfigPacket extends SimplePacketBase { } private static MutableComponent boolToText(boolean b) { - return b ? new TextComponent("enabled").withStyle(ChatFormatting.DARK_GREEN) - : new TextComponent("disabled").withStyle(ChatFormatting.RED); + return b ? Component.literal("enabled").withStyle(ChatFormatting.DARK_GREEN) + : Component.literal("disabled").withStyle(ChatFormatting.RED); } } } 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..4689b43eb 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 @@ -24,7 +24,7 @@ import com.simibubi.create.foundation.item.TooltipHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.fml.config.ModConfig; @@ -146,7 +146,7 @@ public class BaseConfigScreen extends ConfigScreen { super.init(); returnOnClose = true; - TextStencilElement clientText = new TextStencilElement(font, new TextComponent(clientTile)).centered(true, true); + TextStencilElement clientText = new TextStencilElement(font, Component.literal(clientTile)).centered(true, true); addRenderableWidget(clientConfigWidget = new BoxWidget(width / 2 - 100, height / 2 - 15 - 30, 200, 16).showingElement(clientText)); if (clientSpec != null) { @@ -158,7 +158,7 @@ public class BaseConfigScreen extends ConfigScreen { clientText.withElementRenderer(DISABLED_RENDERER); } - TextStencilElement commonText = new TextStencilElement(font, new TextComponent(commonTile)).centered(true, true); + TextStencilElement commonText = new TextStencilElement(font, Component.literal(commonTile)).centered(true, true); addRenderableWidget(commonConfigWidget = new BoxWidget(width / 2 - 100, height / 2 - 15, 200, 16).showingElement(commonText)); if (commonSpec != null) { @@ -170,7 +170,7 @@ public class BaseConfigScreen extends ConfigScreen { commonText.withElementRenderer(DISABLED_RENDERER); } - TextStencilElement serverText = new TextStencilElement(font, new TextComponent(serverTile)).centered(true, true); + TextStencilElement serverText = new TextStencilElement(font, Component.literal(serverTile)).centered(true, true); addRenderableWidget(serverConfigWidget = new BoxWidget(width / 2 - 100, height / 2 - 15 + 30, 200, 16).showingElement(serverText)); if (serverSpec == null) { @@ -180,10 +180,10 @@ public class BaseConfigScreen extends ConfigScreen { } else if (minecraft.level == null) { serverText.withElementRenderer(DISABLED_RENDERER); serverConfigWidget.getToolTip() - .add(new TextComponent("Stored individually per World")); + .add(Component.literal("Stored individually per World")); serverConfigWidget.getToolTip() .addAll(TooltipHelper.cutTextComponent( - new TextComponent( + Component.literal( "Gameplay settings can only be accessed from the in-game menu after joining a World or Server."), ChatFormatting.GRAY, ChatFormatting.GRAY)); } else { @@ -218,10 +218,10 @@ public class BaseConfigScreen extends ConfigScreen { goBack.showingElement(AllIcons.I_CONFIG_BACK.asStencil() .withElementRenderer(BoxWidget.gradientFactory.apply(goBack))); goBack.getToolTip() - .add(new TextComponent("Go Back")); + .add(Component.literal("Go Back")); addRenderableWidget(goBack); - TextStencilElement othersText = new TextStencilElement(font, new TextComponent("Access Configs of other Mods")).centered(true, true); + TextStencilElement othersText = new TextStencilElement(font, Component.literal("Access Configs of other Mods")).centered(true, true); others = new BoxWidget(width / 2 - 100, height / 2 - 15 + 90, 200, 16).showingElement(othersText); othersText.withElementRenderer(BoxWidget.gradientFactory.apply(others)); others.withCallback(() -> linkTo(new ConfigModListScreen(this))); 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..fb3827060 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 @@ -16,7 +16,7 @@ import com.simibubi.create.foundation.item.TooltipHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.fml.ModList; import net.minecraftforge.forgespi.language.IModInfo; @@ -58,7 +58,7 @@ public class ConfigModListScreen extends ConfigScreen { goBack.showingElement(AllIcons.I_CONFIG_BACK.asStencil() .withElementRenderer(BoxWidget.gradientFactory.apply(goBack))); goBack.getToolTip() - .add(new TextComponent("Go Back")); + .add(Component.literal("Go Back")); addRenderableWidget(goBack); search = new HintableTextFieldWidget(font, width / 2 - listWidth / 2, height - 35, listWidth, 20); @@ -112,8 +112,8 @@ public class ConfigModListScreen extends ConfigScreen { button.active = false; 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.add(Component.literal(toHumanReadable(id))); + labelTooltip.addAll(TooltipHelper.cutTextComponent(Component.literal("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..fa0f94bfb 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 @@ -62,7 +62,7 @@ public abstract class ConfigScreen extends AbstractSimiScreen { @Override public void renderBackground(@Nonnull PoseStack ms) { - net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ScreenEvent.BackgroundDrawnEvent(this, ms)); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ScreenEvent.BackgroundRendered(this, ms)); } @Override 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..687d065ca 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 @@ -28,7 +28,6 @@ import net.minecraft.client.gui.components.events.GuiEventListener; 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; public class ConfigScreenList extends ObjectSelectionList implements TickableGuiEventListener { @@ -272,7 +271,7 @@ public class ConfigScreenList extends ObjectSelectionList AllIcons.I_CONFIG_LOCKED.render(ms, 0, 0)); 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().add(Component.literal("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)); } 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().add(Component.literal("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)); } 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..9679f5397 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 @@ -15,7 +15,8 @@ import com.simibubi.create.foundation.gui.element.TextStencilElement; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.EditBox; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; import net.minecraftforge.common.ForgeConfigSpec; public abstract class NumberEntry extends ValueEntry { @@ -74,13 +75,13 @@ public abstract class NumberEntry extends ValueEntry { Font font = Minecraft.getInstance().font; if (min.doubleValue() > getTypeMin().doubleValue()) { - TextComponent t = new TextComponent(formatBound(min) + " < "); + MutableComponent t = Component.literal(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))); minOffset = font.width(t); } if (max.doubleValue() < getTypeMax().doubleValue()) { - TextComponent t = new TextComponent(" < " + formatBound(max)); + MutableComponent t = Component.literal(" < " + 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))); maxOffset = font.width(t); 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..6809d6081 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 @@ -21,7 +21,7 @@ import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.utility.Pair; import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.common.ForgeConfigSpec; public class ValueEntry extends ConfigScreenList.LabeledEntry { @@ -50,7 +50,7 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { listeners.add(resetButton); List path = value.getPath(); - labelTooltip.add(new TextComponent(label).withStyle(ChatFormatting.WHITE)); + labelTooltip.add(Component.literal(label).withStyle(ChatFormatting.WHITE)); String comment = spec.getComment(); if (comment == null || comment.isEmpty()) return; @@ -68,18 +68,18 @@ public class ValueEntry extends ConfigScreenList.LabeledEntry { // add comment to tooltip labelTooltip.addAll(commentLines.stream() .filter(Predicates.not(s -> s.startsWith("Range"))) - .map(TextComponent::new) + .map(Component::literal) .flatMap(stc -> TooltipHelper.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(TooltipHelper.cutTextComponent(Component.literal("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(TooltipHelper.cutTextComponent(Component.literal("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)); + labelTooltip.add(Component.literal(ConfigScreen.modID + ":" + path.get(path.size() - 1)).withStyle(ChatFormatting.DARK_GRAY)); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java b/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java index 9a0e26718..d6caa6cba 100644 --- a/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java +++ b/src/main/java/com/simibubi/create/foundation/data/CreateRegistrate.java @@ -48,7 +48,6 @@ import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.ForgeFlowingFluid; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.IForgeRegistryEntry; import net.minecraftforge.registries.RegistryObject; public class CreateRegistrate extends AbstractRegistrate { @@ -78,7 +77,7 @@ public class CreateRegistrate extends AbstractRegistrate { } @Override - protected , T extends R> RegistryEntry accept(String name, + protected RegistryEntry accept(String name, ResourceKey> type, Builder builder, NonNullSupplier creator, NonNullFunction, ? extends RegistryEntry> entryFactory) { RegistryEntry ret = super.accept(name, type, builder, creator, entryFactory); @@ -94,7 +93,7 @@ public class CreateRegistrate extends AbstractRegistrate { return sectionLookup.getOrDefault(entry, AllSections.UNASSIGNED); } - public AllSections getSection(IForgeRegistryEntry entry) { + public AllSections getSection(Object entry) { return sectionLookup.entrySet() .stream() .filter(e -> e.getKey() @@ -104,7 +103,7 @@ public class CreateRegistrate extends AbstractRegistrate { .orElse(AllSections.UNASSIGNED); } - public > Collection> getAll(AllSections section, + public Collection> getAll(AllSections section, ResourceKey> registryType) { return this.getAll(registryType) .stream() 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..d263b57d3 100644 --- a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java +++ b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java @@ -26,6 +26,7 @@ import com.simibubi.create.Create; import com.simibubi.create.foundation.ponder.PonderScene; import com.simibubi.create.foundation.utility.FilesHelper; +import net.minecraft.data.CachedOutput; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; import net.minecraft.data.HashCache; @@ -76,7 +77,7 @@ public class LangMerger implements DataProvider { } @Override - public void run(HashCache cache) throws IOException { + public void run(CachedOutput cache) throws IOException { Path path = this.gen.getOutputFolder() .resolve("assets/" + Create.ID + "/lang/" + "en_us.json"); @@ -224,7 +225,7 @@ public class LangMerger implements DataProvider { .getAsJsonObject()); } - private void save(HashCache cache, List dataIn, int missingKeys, Path target, String message) + private void save(CachedOutput cache, List dataIn, int missingKeys, Path target, String message) throws IOException { String data = createString(dataIn, missingKeys); // data = JavaUnicodeEscaper.outsideOf(0, 0x7f) diff --git a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java index 312ac9064..d5029cf93 100644 --- a/src/main/java/com/simibubi/create/foundation/data/WindowGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/WindowGen.java @@ -62,32 +62,33 @@ public class WindowGen { } public static BlockEntry woodenWindowBlock(WoodType woodType, Block planksBlock) { - return woodenWindowBlock(woodType, planksBlock, () -> RenderType::cutoutMipped); + return woodenWindowBlock(woodType, planksBlock, () -> RenderType::cutoutMipped, false); } public static BlockEntry customWindowBlock(String name, Supplier ingredient, - Supplier ct, Supplier> renderType, Supplier color) { + Supplier ct, Supplier> renderType, boolean translucent, + Supplier color) { NonNullFunction end_texture = n -> Create.asResource(palettesDir() + name + "_end"); NonNullFunction side_texture = n -> Create.asResource(palettesDir() + n); - return windowBlock(name, ingredient, ct, renderType, end_texture, side_texture, color); + return windowBlock(name, ingredient, ct, renderType, translucent, end_texture, side_texture, color); } public static BlockEntry woodenWindowBlock(WoodType woodType, Block planksBlock, - Supplier> renderType) { + Supplier> renderType, boolean translucent) { String woodName = woodType.name(); String name = woodName + "_window"; NonNullFunction end_texture = $ -> new ResourceLocation("block/" + woodName + "_planks"); NonNullFunction side_texture = n -> Create.asResource(palettesDir() + n); return windowBlock(name, () -> planksBlock, () -> AllSpriteShifts.getWoodenWindow(woodType), renderType, - end_texture, side_texture, planksBlock::defaultMaterialColor); + translucent, end_texture, side_texture, planksBlock::defaultMaterialColor); } public static BlockEntry windowBlock(String name, Supplier ingredient, - Supplier ct, Supplier> renderType, + Supplier ct, Supplier> renderType, boolean translucent, NonNullFunction endTexture, NonNullFunction sideTexture, Supplier color) { - return REGISTRATE.block(name, WindowBlock::new) + return REGISTRATE.block(name, p -> new WindowBlock(p, translucent)) .onRegister(connectedTextures(() -> new HorizontalCTBehaviour(ct.get()))) .addLayer(renderType) .recipe((c, p) -> ShapedRecipeBuilder.shaped(c.get(), 2) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java index 71a9f20a8..a41ff49c5 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java @@ -12,9 +12,9 @@ import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuild import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer; import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo; +import net.minecraft.data.CachedOutput; import net.minecraft.data.DataGenerator; import net.minecraft.data.DataProvider; -import net.minecraft.data.HashCache; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; @@ -41,7 +41,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider { GENERATORS.add(new HauntingRecipeGen(gen)); GENERATORS.add(new ItemApplicationRecipeGen(gen)); - gen.addProvider(new DataProvider() { + gen.addProvider(true, new DataProvider() { @Override public String getName() { @@ -49,7 +49,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider { } @Override - public void run(HashCache dc) throws IOException { + public void run(CachedOutput dc) throws IOException { GENERATORS.forEach(g -> { try { g.run(dc); diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java index 10097c729..cbd3f9fb8 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidIngredient.java @@ -170,7 +170,7 @@ public abstract class FluidIngredient implements Predicate { @Override protected void writeInternal(FriendlyByteBuf buffer) { - buffer.writeRegistryId(fluid); + buffer.writeRegistryId(ForgeRegistries.FLUIDS, fluid); buffer.writeNbt(tagToMatch); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java index f0388bc00..9e7feeb55 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java @@ -13,7 +13,6 @@ 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; @@ -29,7 +28,7 @@ public abstract class AbstractSimiScreen extends Screen { } protected AbstractSimiScreen() { - this(TextComponent.EMPTY); + this(Component.empty()); } /** 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..1f974eba7 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/CreateMainMenuScreen.java @@ -25,7 +25,6 @@ import net.minecraft.client.gui.screens.TitleScreen; import net.minecraft.client.renderer.CubeMap; import net.minecraft.client.renderer.PanoramaRenderer; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -37,8 +36,8 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { new ResourceLocation("textures/gui/title/background/panorama_overlay.png"); public static final PanoramaRenderer PANORAMA = new PanoramaRenderer(PANORAMA_RESOURCES); - private static final Component CURSEFORGE_TOOLTIP = new TextComponent("CurseForge").withStyle(s -> s.withColor(0xFC785C).withBold(true)); - private static final Component MODRINTH_TOOLTIP = new TextComponent("Modrinth").withStyle(s -> s.withColor(0x3FD32B).withBold(true)); + private static final Component CURSEFORGE_TOOLTIP = Component.literal("CurseForge").withStyle(s -> s.withColor(0xFC785C).withBold(true)); + private static final Component MODRINTH_TOOLTIP = Component.literal("Modrinth").withStyle(s -> s.withColor(0x3FD32B).withBold(true)); public static final String CURSEFORGE_LINK = "https://www.curseforge.com/minecraft/mc-mods/create"; public static final String MODRINTH_LINK = "https://modrinth.com/mod/create"; @@ -120,9 +119,9 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { ms.pushPose(); ms.translate(0, 0, 200); - drawCenteredString(ms, font, new TextComponent(Create.NAME).withStyle(ChatFormatting.BOLD) + drawCenteredString(ms, font, Component.literal(Create.NAME).withStyle(ChatFormatting.BOLD) .append( - new TextComponent(" v" + Create.VERSION).withStyle(ChatFormatting.BOLD, ChatFormatting.WHITE)), + Component.literal(" v" + Create.VERSION).withStyle(ChatFormatting.BOLD, ChatFormatting.WHITE)), width / 2, 89, 0xFF_E4BB67); ms.popPose(); @@ -209,7 +208,7 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { protected final float scale; public PlatformIconButton(int pX, int pY, int pWidth, int pHeight, AllGuiTextures icon, float scale, OnPress pOnPress, OnTooltip pOnTooltip) { - super(pX, pY, pWidth, pHeight, TextComponent.EMPTY, pOnPress, pOnTooltip); + super(pX, pY, pWidth, pHeight, Component.empty(), pOnPress, pOnTooltip); this.icon = icon; this.scale = scale; } 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..8cabaaf90 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ModularGuiLineBuilder.java @@ -11,7 +11,7 @@ import com.simibubi.create.foundation.utility.Pair; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.components.EditBox; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; public class ModularGuiLineBuilder { @@ -52,7 +52,7 @@ public class ModularGuiLineBuilder { } private void addScrollInput(T input, BiConsumer inputTransform, String dataKey) { - Label label = new Label(input.x + 5, y, TextComponent.EMPTY); + Label label = new Label(input.x + 5, y, Component.empty()); label.withShadow(); inputTransform.accept(input, label); input.writingTo(label); @@ -76,7 +76,7 @@ public class ModularGuiLineBuilder { public ModularGuiLineBuilder addTextInput(int x, int width, BiConsumer inputTransform, String dataKey) { - EditBox input = new EditBox(font, x + this.x + 5, y, width - 9, 8, TextComponent.EMPTY); + EditBox input = new EditBox(font, x + this.x + 5, y, width - 9, 8, Component.empty()); input.setBordered(false); input.setTextColor(0xffffff); input.changeFocus(false); diff --git a/src/main/java/com/simibubi/create/foundation/gui/RemovedGuiUtils.java b/src/main/java/com/simibubi/create/foundation/gui/RemovedGuiUtils.java index a33b5f66b..7d93d3b64 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/RemovedGuiUtils.java +++ b/src/main/java/com/simibubi/create/foundation/gui/RemovedGuiUtils.java @@ -18,7 +18,7 @@ import net.minecraft.network.chat.Style; import net.minecraft.world.item.ItemStack; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.event.RenderTooltipEvent; -import net.minecraftforge.client.gui.GuiUtils; +import net.minecraftforge.client.gui.ScreenUtils; import net.minecraftforge.common.MinecraftForge; public class RemovedGuiUtils { @@ -36,7 +36,7 @@ public class RemovedGuiUtils { public static void drawHoveringText(PoseStack mStack, List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, Font font) { drawHoveringText(mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, - GuiUtils.DEFAULT_BACKGROUND_COLOR, GuiUtils.DEFAULT_BORDER_COLOR_START, GuiUtils.DEFAULT_BORDER_COLOR_END, + ScreenUtils.DEFAULT_BACKGROUND_COLOR, ScreenUtils.DEFAULT_BORDER_COLOR_START, ScreenUtils.DEFAULT_BORDER_COLOR_END, font); } @@ -51,7 +51,7 @@ public class RemovedGuiUtils { List textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, Font font) { drawHoveringText(stack, mStack, textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, - GuiUtils.DEFAULT_BACKGROUND_COLOR, GuiUtils.DEFAULT_BORDER_COLOR_START, GuiUtils.DEFAULT_BORDER_COLOR_END, + ScreenUtils.DEFAULT_BACKGROUND_COLOR, ScreenUtils.DEFAULT_BORDER_COLOR_START, ScreenUtils.DEFAULT_BORDER_COLOR_END, font); } @@ -156,23 +156,23 @@ public class RemovedGuiUtils { pStack.pushPose(); Matrix4f mat = pStack.last() .pose(); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 4, tooltipX + tooltipTextWidth + 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 4, tooltipX + tooltipTextWidth + 3, tooltipY - 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 3, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 4, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 4, tooltipY - 3, tooltipX - 3, tooltipY + tooltipHeight + 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 4, tooltipY - 3, tooltipX - 3, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX + tooltipTextWidth + 3, tooltipY - 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX + tooltipTextWidth + 3, tooltipY - 3, tooltipX + tooltipTextWidth + 4, tooltipY + tooltipHeight + 3, backgroundColor, backgroundColor); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3 + 1, tooltipX - 3 + 1, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3 + 1, tooltipX - 3 + 1, tooltipY + tooltipHeight + 3 - 1, borderColorStart, borderColorEnd); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX + tooltipTextWidth + 2, tooltipY - 3 + 1, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX + tooltipTextWidth + 2, tooltipY - 3 + 1, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3 - 1, borderColorStart, borderColorEnd); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY - 3, tooltipX + tooltipTextWidth + 3, tooltipY - 3 + 1, borderColorStart, borderColorStart); - GuiUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 2, + ScreenUtils.drawGradientRect(mat, zLevel, tooltipX - 3, tooltipY + tooltipHeight + 2, tooltipX + tooltipTextWidth + 3, tooltipY + tooltipHeight + 3, borderColorEnd, borderColorEnd); MultiBufferSource.BufferSource renderType = MultiBufferSource.immediate(Tesselator.getInstance() diff --git a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java index b59168cd0..4bffc3e76 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/gui/UIRenderHelper.java @@ -22,7 +22,7 @@ import com.simibubi.create.foundation.utility.Couple; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; -import net.minecraftforge.client.gui.GuiUtils; +import net.minecraftforge.client.gui.ScreenUtils; public class UIRenderHelper { @@ -107,9 +107,9 @@ public class UIRenderHelper { 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); + ScreenUtils.drawGradientRect(model, 0, -width, 0, width, (int) (split1 * height), c1, c2); + ScreenUtils.drawGradientRect(model, 0, -width, (int) (split1 * height), width, (int) (split2 * height), c2, c3); + ScreenUtils.drawGradientRect(model, 0, -width, (int) (split2 * height), width, height, c3, c4); } /** @@ -148,7 +148,7 @@ public class UIRenderHelper { Matrix4f model = ms.last().pose(); int w = breadth / 2; - GuiUtils.drawGradientRect(model, 0, -w, 0, w, length, color1.getRGB(), color2.getRGB()); + ScreenUtils.drawGradientRect(model, 0, -w, 0, w, length, color1.getRGB(), color2.getRGB()); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/element/BoxElement.java b/src/main/java/com/simibubi/create/foundation/gui/element/BoxElement.java index 4196dd7e0..a578989e0 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/element/BoxElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/element/BoxElement.java @@ -71,7 +71,7 @@ public class BoxElement extends RenderElement { //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 + //batch everything together to save a bunch of gl calls over ScreenUtils protected void renderBox(PoseStack ms) { /* * _____________ 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 index 0309b9532..c03978e25 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/element/GuiGameElement.java @@ -3,14 +3,13 @@ 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.jozufozu.flywheel.core.model.ModelUtil; 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; @@ -19,7 +18,6 @@ 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; @@ -30,6 +28,7 @@ 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.util.RandomSource; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; @@ -39,6 +38,7 @@ 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.client.RenderTypeHelper; import net.minecraftforge.fluids.FluidStack; public class GuiGameElement { @@ -171,27 +171,37 @@ public class GuiGameElement { 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); + renderModel(blockRenderer, buffer, 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); + PoseStack ms) { + if (blockState.getBlock() == Blocks.AIR) { + RenderType renderType = Sheets.translucentCullBlockSheet(); + blockRenderer.getModelRenderer() + .renderModel(ms.last(), buffer.getBuffer(renderType), blockState, blockModel, 1, 1, 1, + LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, ModelUtil.VIRTUAL_DATA, null); + } else { + int color = Minecraft.getInstance() + .getBlockColors() + .getColor(blockState, null, null, 0); + Color rgb = new Color(color == -1 ? this.color : color); + + for (RenderType chunkType : blockModel.getRenderTypes(blockState, RandomSource.create(42L), ModelUtil.VIRTUAL_DATA)) { + RenderType renderType = RenderTypeHelper.getEntityRenderType(chunkType, true); + blockRenderer.getModelRenderer() + .renderModel(ms.last(), buffer.getBuffer(renderType), blockState, blockModel, + rgb.getRedAsFloat(), rgb.getGreenAsFloat(), rgb.getBlueAsFloat(), + LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, ModelUtil.VIRTUAL_DATA, chunkType); + } + } + buffer.endBatch(); } @@ -207,17 +217,15 @@ public class GuiGameElement { @Override protected void renderModel(BlockRenderDispatcher blockRenderer, MultiBufferSource.BufferSource buffer, - RenderType renderType, VertexConsumer vb, PoseStack ms) { + PoseStack ms) { if (blockState.getBlock() instanceof BaseFireBlock) { Lighting.setupForFlatItems(); - blockRenderer.renderSingleBlock(blockState, ms, buffer, LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, - VirtualEmptyModelData.INSTANCE); - buffer.endBatch(); + super.renderModel(blockRenderer, buffer, ms); Lighting.setupFor3DItems(); return; } - super.renderModel(blockRenderer, buffer, renderType, vb, ms); + super.renderModel(blockRenderer, buffer, ms); if (blockState.getFluidState() .isEmpty()) 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 index d735a33aa..d051500e7 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/element/TextStencilElement.java @@ -3,8 +3,8 @@ package com.simibubi.create.foundation.gui.element; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.Font; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class TextStencilElement extends DelegatedStencilElement { @@ -21,7 +21,7 @@ public class TextStencilElement extends DelegatedStencilElement { public TextStencilElement(Font font, String text) { this(font); - component = new TextComponent(text); + component = Component.literal(text); } public TextStencilElement(Font font, MutableComponent component) { @@ -30,7 +30,7 @@ public class TextStencilElement extends DelegatedStencilElement { } public TextStencilElement withText(String text) { - component = new TextComponent(text); + component = Component.literal(text); return this; } 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 index 85cdd4ae1..54031894e 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java +++ b/src/main/java/com/simibubi/create/foundation/gui/widget/AbstractSimiWidget.java @@ -12,7 +12,6 @@ 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 { @@ -31,7 +30,7 @@ public abstract class AbstractSimiWidget extends AbstractWidget implements Ticka } protected AbstractSimiWidget(int x, int y, int width, int height) { - this(x, y, width, height, TextComponent.EMPTY); + this(x, y, width, height, Component.empty()); } protected AbstractSimiWidget(int x, int y, int width, int height, Component message) { 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..7f25e75d1 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 @@ -9,7 +9,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class Label extends AbstractSimiWidget { @@ -22,7 +21,7 @@ public class Label extends AbstractSimiWidget { public Label(int x, int y, Component text) { super(x, y, Minecraft.getInstance().font.width(text), 10); font = Minecraft.getInstance().font; - this.text = new TextComponent("Label"); + this.text = Component.literal("Label"); color = 0xFFFFFF; hasShadow = false; suffix = ""; @@ -62,8 +61,8 @@ public class Label extends AbstractSimiWidget { for (int i = startIndex; i != endIndex; i += step) { String sub = builder.substring(trimFront ? i : startIndex, trimFront ? endIndex + 1 : i + 1); - if (fontRenderer.width(new TextComponent(sub).setStyle(newText.getStyle())) + trimWidth <= maxWidthPx) { - text = new TextComponent(trimFront ? trim + sub : sub + trim).setStyle(newText.getStyle()); + if (fontRenderer.width(Component.literal(sub).setStyle(newText.getStyle())) + trimWidth <= maxWidthPx) { + text = Component.literal(trimFront ? trim + sub : sub + trim).setStyle(newText.getStyle()); return; } } 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..e97b75648 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 @@ -10,7 +10,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class ScrollInput extends AbstractSimiWidget { @@ -34,7 +33,7 @@ public class ScrollInput extends AbstractSimiWidget { max = 1; shiftStep = 5; step = standardStep(); - formatter = i -> new TextComponent(String.valueOf(i)); + formatter = i -> Component.literal(String.valueOf(i)); } public Function standardStep() { 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..897c2d157 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 @@ -8,7 +8,6 @@ import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class SelectionScrollInput extends ScrollInput { @@ -43,23 +42,23 @@ public class SelectionScrollInput extends ScrollInput { if (this.min + 1 == min) min--; if (min > this.min) - toolTip.add(new TextComponent("> ...").withStyle(ChatFormatting.GRAY)); + toolTip.add(Component.literal("> ...").withStyle(ChatFormatting.GRAY)); if (this.max - 1 == max) max++; for (int i = min; i < max; i++) { if (i == state) - toolTip.add(TextComponent.EMPTY.plainCopy() + toolTip.add(Component.empty() .append("-> ") .append(options.get(i)) .withStyle(ChatFormatting.WHITE)); else - toolTip.add(TextComponent.EMPTY.plainCopy() + toolTip.add(Component.empty() .append("> ") .append(options.get(i)) .withStyle(ChatFormatting.GRAY)); } if (max < this.max) - toolTip.add(new TextComponent("> ...").withStyle(ChatFormatting.GRAY)); + toolTip.add(Component.literal("> ...").withStyle(ChatFormatting.GRAY)); toolTip.add(scrollToSelect.plainCopy() .withStyle(ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC)); diff --git a/src/main/java/com/simibubi/create/foundation/item/CustomUseEffectsItem.java b/src/main/java/com/simibubi/create/foundation/item/CustomUseEffectsItem.java index ac9d79156..58c76c753 100644 --- a/src/main/java/com/simibubi/create/foundation/item/CustomUseEffectsItem.java +++ b/src/main/java/com/simibubi/create/foundation/item/CustomUseEffectsItem.java @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.item; -import java.util.Random; - +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; @@ -23,8 +22,8 @@ public interface CustomUseEffectsItem { * @param stack The ItemStack being used. * @param entity The LivingEntity using the item. * @param count The amount of times effects should be applied. Can safely be ignored. - * @param random The LivingEntity's Random. + * @param random The LivingEntity's RandomSource. * @return if the default behavior should be cancelled or not */ - boolean triggerUseEffects(ItemStack stack, LivingEntity entity, int count, Random random); + boolean triggerUseEffects(ItemStack stack, LivingEntity entity, int count, RandomSource random); } 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..73d4ac2e0 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java @@ -36,13 +36,12 @@ import net.minecraft.client.Minecraft; 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.level.block.Block; public class ItemDescription { public static final ItemDescription MISSING = new ItemDescription(null); - public static Component trim = new TextComponent(" ").withStyle(WHITE, STRIKETHROUGH); + public static Component trim = Component.literal(" ").withStyle(WHITE, STRIKETHROUGH); public enum Palette { @@ -175,13 +174,13 @@ public class ItemDescription { } public ItemDescription withBehaviour(String condition, String behaviour) { - add(linesOnShift, new TextComponent(condition).withStyle(GRAY)); + add(linesOnShift, Component.literal(condition).withStyle(GRAY)); addStrings(linesOnShift, cutStringTextComponent(behaviour, palette.color, palette.hColor, 1)); return this; } public ItemDescription withControl(String condition, String action) { - add(linesOnCtrl, new TextComponent(condition).withStyle(GRAY)); + add(linesOnCtrl, Component.literal(condition).withStyle(GRAY)); addStrings(linesOnCtrl, cutStringTextComponent(action, palette.color, palette.hColor, 1)); return this; } @@ -204,30 +203,30 @@ public class ItemDescription { boolean ctrl = list == linesOnCtrl; if (holdDesc.length != 2 || holdCtrl.length != 2) { - list.add(0, new TextComponent("Invalid lang formatting!")); + list.add(0, Component.literal("Invalid lang formatting!")); continue; } if (hasControls) { - MutableComponent tabBuilder = new TextComponent(""); - tabBuilder.append(new TextComponent(holdCtrl[0]).withStyle(DARK_GRAY)); + MutableComponent tabBuilder = Component.literal(""); + tabBuilder.append(Component.literal(holdCtrl[0]).withStyle(DARK_GRAY)); tabBuilder.append(keyCtrl.plainCopy() .withStyle(ctrl ? WHITE : GRAY)); - tabBuilder.append(new TextComponent(holdCtrl[1]).withStyle(DARK_GRAY)); + tabBuilder.append(Component.literal(holdCtrl[1]).withStyle(DARK_GRAY)); list.add(0, tabBuilder); } if (hasDescription) { - MutableComponent tabBuilder = new TextComponent(""); - tabBuilder.append(new TextComponent(holdDesc[0]).withStyle(DARK_GRAY)); + MutableComponent tabBuilder = Component.literal(""); + tabBuilder.append(Component.literal(holdDesc[0]).withStyle(DARK_GRAY)); tabBuilder.append(keyShift.plainCopy() .withStyle(shift ? WHITE : GRAY)); - tabBuilder.append(new TextComponent(holdDesc[1]).withStyle(DARK_GRAY)); + tabBuilder.append(Component.literal(holdDesc[1]).withStyle(DARK_GRAY)); list.add(0, tabBuilder); } if (shift || ctrl) - list.add(hasDescription && hasControls ? 2 : 1, new TextComponent("")); + list.add(hasDescription && hasControls ? 2 : 1, Component.literal("")); } } 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..28d9ebf54 100644 --- a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java @@ -24,12 +24,10 @@ 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; -import net.minecraft.network.chat.TextComponent; 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 { @@ -69,7 +67,7 @@ public class TooltipHelper { @Deprecated public static List cutString(Component s, ChatFormatting defaultColor, ChatFormatting highlightColor) { - return cutString(s.getContents(), defaultColor, highlightColor, 0); + return cutString(s.getString(), defaultColor, highlightColor, 0); } @Deprecated @@ -80,7 +78,7 @@ public class TooltipHelper { // Split words List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); + BreakIterator iterator = BreakIterator.getLineInstance(Minecraft.getInstance().getLocale()); iterator.setText(markedUp); int start = iterator.first(); for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { @@ -105,7 +103,7 @@ public class TooltipHelper { public static List cutStringTextComponent(String c, ChatFormatting defaultColor, ChatFormatting highlightColor) { - return cutTextComponent(new TextComponent(c), defaultColor, highlightColor, 0); + return cutTextComponent(Component.literal(c), defaultColor, highlightColor, 0); } public static List cutTextComponent(Component c, ChatFormatting defaultColor, @@ -115,7 +113,7 @@ public class TooltipHelper { public static List cutStringTextComponent(String c, ChatFormatting defaultColor, ChatFormatting highlightColor, int indent) { - return cutTextComponent(new TextComponent(c), defaultColor, highlightColor, indent); + return cutTextComponent(Component.literal(c), defaultColor, highlightColor, indent); } public static List cutTextComponent(Component c, ChatFormatting defaultColor, @@ -127,7 +125,7 @@ public class TooltipHelper { // Split words List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); + BreakIterator iterator = BreakIterator.getLineInstance(Minecraft.getInstance().getLocale()); iterator.setText(markedUp); int start = iterator.first(); for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { @@ -161,7 +159,7 @@ public class TooltipHelper { } // Format - MutableComponent lineStart = new TextComponent(Strings.repeat(" ", indent)); + MutableComponent lineStart = Component.literal(Strings.repeat(" ", indent)); lineStart.withStyle(defaultColor); List formattedLines = new ArrayList<>(lines.size()); Couple f = Couple.create(highlightColor, defaultColor); @@ -171,7 +169,7 @@ public class TooltipHelper { MutableComponent currentComponent = lineStart.plainCopy(); String[] split = string.split("_"); for (String part : split) { - currentComponent.append(new TextComponent(part).withStyle(f.get(currentlyHighlighted))); + currentComponent.append(Component.literal(part).withStyle(f.get(currentlyHighlighted))); currentlyHighlighted = !currentlyHighlighted; } @@ -275,7 +273,7 @@ public class TooltipHelper { // Summary if (I18n.exists(summaryKey)) - tooltip = tooltip.withSummary(new TextComponent(I18n.get(summaryKey))); + tooltip = tooltip.withSummary(Component.literal(I18n.get(summaryKey))); // Requirements // if (stack.getItem() instanceof BlockItem) { @@ -293,7 +291,7 @@ public class TooltipHelper { break; if (i == 1) tooltip.getLinesOnShift() - .add(new TextComponent("")); + .add(Component.literal("")); tooltip.withBehaviour(I18n.get(conditionKey), I18n.get(behaviourKey)); } diff --git a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java index 21e6664c2..ed9c457e4 100644 --- a/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java +++ b/src/main/java/com/simibubi/create/foundation/item/render/CustomRenderedItemModel.java @@ -10,10 +10,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.BlockModelRotation; +import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraftforge.client.event.ModelEvent; import net.minecraftforge.client.model.BakedModelWrapper; -import net.minecraftforge.client.model.ForgeModelBakery; public abstract class CustomRenderedItemModel extends BakedModelWrapper { @@ -33,10 +33,10 @@ public abstract class CustomRenderedItemModel extends BakedModelWrapper renderer; @@ -19,7 +19,7 @@ public class SimpleCustomRenderer implements IItemRenderProperties { } @Override - public CustomRenderedItemModelRenderer getItemStackRenderer() { + public CustomRenderedItemModelRenderer getCustomRenderer() { return renderer; } diff --git a/src/main/java/com/simibubi/create/foundation/mixin/DestroyProgressMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/DestroyProgressMixin.java index cfad69339..45aa59fef 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/DestroyProgressMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/DestroyProgressMixin.java @@ -13,8 +13,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.IBlockRenderProperties; -import net.minecraftforge.client.RenderProperties; +import net.minecraftforge.client.extensions.common.IClientBlockExtensions; @Mixin(ClientLevel.class) public class DestroyProgressMixin { @@ -26,7 +25,7 @@ public class DestroyProgressMixin { private void onDestroyBlockProgress(int breakerId, BlockPos pos, int progress, CallbackInfo ci) { ClientLevel self = (ClientLevel) (Object) this; BlockState state = self.getBlockState(pos); - IBlockRenderProperties properties = RenderProperties.get(state); + IClientBlockExtensions properties = IClientBlockExtensions.of(state); if (properties instanceof DestroyProgressRenderingHandler handler) { if (handler.renderDestroyProgress(self, levelRenderer, breakerId, pos, progress, state)) { ci.cancel(); diff --git a/src/main/java/com/simibubi/create/foundation/mixin/HeavyBootsOnPlayerMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/HeavyBootsOnPlayerMixin.java index f29265549..4895f3b6a 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/HeavyBootsOnPlayerMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/HeavyBootsOnPlayerMixin.java @@ -11,6 +11,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.player.LocalPlayer; import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.player.ProfilePublicKey; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -18,8 +19,8 @@ import net.minecraftforge.api.distmarker.OnlyIn; @Mixin(LocalPlayer.class) public abstract class HeavyBootsOnPlayerMixin extends AbstractClientPlayer { - private HeavyBootsOnPlayerMixin(ClientLevel level, GameProfile profile) { - super(level, profile); + private HeavyBootsOnPlayerMixin(ClientLevel level, GameProfile profile, ProfilePublicKey profileKey) { + super(level, profile, profileKey); } @Inject(at = @At("HEAD"), method = "isUnderWater", cancellable = true) diff --git a/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java deleted file mode 100644 index 8814dacff..000000000 --- a/src/main/java/com/simibubi/create/foundation/mixin/ModelDataRefreshMixin.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.simibubi.create.foundation.mixin; - -import org.spongepowered.asm.mixin.Mixin; -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.minecraft.client.Minecraft; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.model.ModelDataManager; - -@OnlyIn(Dist.CLIENT) -@Mixin(ModelDataManager.class) -public class ModelDataRefreshMixin { - - /** - * Normally ModelDataManager will throw an exception if a tile entity tries - * to refresh its model data from a world the client isn't currently in, - * but we need that to not happen for tile entities in fake schematic - * worlds, so in those cases just do nothing instead. - */ - @Inject(at = @At("HEAD"), method = "requestModelDataRefresh", cancellable = true, remap = false) - private static void requestModelDataRefresh(BlockEntity te, CallbackInfo ci) { - if (te != null) { - Level world = te.getLevel(); - if (world != Minecraft.getInstance().level && world instanceof SchematicWorld) - ci.cancel(); - } - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java index 0bf8893c2..218a22bc8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java @@ -2,7 +2,6 @@ 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; @@ -10,6 +9,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.zip.GZIPInputStream; import com.simibubi.create.Create; @@ -99,12 +99,16 @@ public class PonderRegistry { 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); + Optional optionalResource = resourceManager.getResource(location1); + if (optionalResource.isPresent()) { + Resource resource = optionalResource.get(); + try (InputStream inputStream = resource.open()) { + return loadSchematic(inputStream); + } catch (IOException e) { + Create.LOGGER.error("Failed to read ponder schematic: " + location1, e); + } + } else { + Create.LOGGER.error("Ponder schematic missing: " + location1); } return new StructureTemplate(); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java index cf22e348c..55f4b02b2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderTooltipHandler.java @@ -18,7 +18,6 @@ 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; @@ -165,7 +164,7 @@ public class PonderTooltipHandler { bars += ChatFormatting.GRAY + Strings.repeat("|", current); if (progress < 1) bars += ChatFormatting.DARK_GRAY + Strings.repeat("|", total - current); - return new TextComponent(bars); + return Component.literal(bars); } return holdW; 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..4fa2c59e4 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 @@ -14,7 +14,7 @@ import com.simibubi.create.foundation.utility.Pointing; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -135,7 +135,7 @@ public class DisplayScenes { scene.world.hideSection(depot, Direction.SOUTH); scene.idle(5); - scene.world.setDisplayBoardText(board, 1, TextComponent.EMPTY); + scene.world.setDisplayBoardText(board, 1, Component.empty()); scene.world.flashDisplayLink(linkPos); scene.idle(5); ElementLink dirtElement = scene.world.showIndependentSection(dirt, Direction.SOUTH); @@ -156,7 +156,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"))); + Component.literal(1024 + " ").append(Lang.translateDirect("generic.unit.stress"))); scene.world.flashDisplayLink(linkPos); scene.idle(40); scene.world.hideIndependentSection(stressElement, Direction.SOUTH); @@ -166,8 +166,8 @@ public class DisplayScenes { scene.world.moveSection(chestElement, util.vector.of(0, -3, 0), 0); scene.idle(10); scene.world.setDisplayBoardText(board, 1, - new TextComponent(418 + " ").append(new ItemStack(Items.DEEPSLATE).getHoverName())); - scene.world.setDisplayBoardText(board, 2, new TextComponent(14 + " ").append(AllBlocks.COGWHEEL.asStack() + Component.literal(418 + " ").append(new ItemStack(Items.DEEPSLATE).getHoverName())); + scene.world.setDisplayBoardText(board, 2, Component.literal(14 + " ").append(AllBlocks.COGWHEEL.asStack() .getHoverName())); scene.world.flashDisplayLink(linkPos); scene.idle(40); @@ -185,8 +185,8 @@ 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"))); - scene.world.setDisplayBoardText(board, 2, TextComponent.EMPTY); + Component.literal("6:00 ").append(Lang.translateDirect("generic.daytime.pm"))); + scene.world.setDisplayBoardText(board, 2, Component.empty()); scene.world.flashDisplayLink(linkPos); scene.idle(90); @@ -286,7 +286,7 @@ public class DisplayScenes { .showControls(new InputWindowElement(target, Pointing.RIGHT).withItem(new ItemStack(Items.NAME_TAG)) .rightClick(), 40); scene.idle(6); - scene.world.setDisplayBoardText(board, 0, new TextComponent("Create")); + scene.world.setDisplayBoardText(board, 0, Component.literal("Create")); scene.idle(25); scene.overlay.showText(50) @@ -360,7 +360,7 @@ public class DisplayScenes { scene.overlay.showControls(new InputWindowElement(target, Pointing.RIGHT).rightClick(), 40); scene.idle(6); - scene.world.setDisplayBoardText(board, 0, new TextComponent("")); + scene.world.setDisplayBoardText(board, 0, Component.literal("")); scene.idle(25); scene.overlay.showText(70) @@ -452,7 +452,7 @@ public class DisplayScenes { scene.world.moveSection(redstoneBlock, util.vector.of(-1, 0, 1), 0); scene.idle(10); scene.world.flashDisplayLink(linkPos); - scene.world.setDisplayBoardText(board, 1, TextComponent.EMPTY); + scene.world.setDisplayBoardText(board, 1, Component.empty()); scene.idle(25); scene.overlay.showSelectionWithText(depot, 80) 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..8510cbacc 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 @@ -27,7 +27,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -630,7 +629,7 @@ public class RedstoneScenes { .withItem(new ItemStack(Items.NAME_TAG)), 40); scene.idle(7); - Component component = new TextComponent("CREATE"); + Component component = Component.literal("CREATE"); for (int i = 0; i < 3; i++) { final int index = i; scene.world.modifyTileNBT(util.select.position(3 - i, 1, 3), NixieTubeTileEntity.class, nbt -> { 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..bd82d86e7 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,7 +2,6 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllFluids; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTileEntity; @@ -25,6 +24,7 @@ import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.material.Fluids; @@ -36,6 +36,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class FluidTankScenes { public static void storage(SceneBuilder scene, SceneBuildingUtil util) { + RandomSource random = RandomSource.create(); + scene.title("fluid_tank_storage", "Storing Fluids in Fluid Tanks"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -210,7 +212,7 @@ public class FluidTankScenes { scene.effects.emitParticles(util.vector.topOf(3, 1, 1) .add(0, 1 / 16f, 0), Emitter.simple(FluidFX.getFluidParticle(content), - VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .1f)), + VecHelper.offsetRandomly(Vec3.ZERO, random, .1f)), 1, 1); } 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..ffde57593 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 @@ -1,7 +1,6 @@ package com.simibubi.create.foundation.ponder.content.fluid; import com.simibubi.create.AllFluids; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.fluids.FluidFX; import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity; import com.simibubi.create.foundation.fluid.FluidHelper; @@ -21,6 +20,7 @@ import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.util.RandomSource; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.phys.Vec3; @@ -29,6 +29,8 @@ import net.minecraftforge.fluids.FluidStack; public class SpoutScenes { public static void filling(SceneBuilder scene, SceneBuildingUtil util) { + RandomSource random = RandomSource.create(); + scene.title("spout_filling", "Filling Items using a Spout"); scene.configureBasePlate(0, 0, 5); scene.showBasePlate(); @@ -112,7 +114,7 @@ public class SpoutScenes { for (int i = 0; i < 10; i++) { scene.effects.emitParticles(util.vector.topOf(depotPos.south()) .add(0, 1 / 16f, 0), - Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .1f)), 1, 1); + Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, random, .1f)), 1, 1); } scene.idle(10); scene.overlay.showControls(new InputWindowElement(depotCenter, Pointing.UP).withItem(potion), 50); @@ -149,7 +151,7 @@ public class SpoutScenes { for (int i = 0; i < 10; i++) { scene.effects.emitParticles(util.vector.topOf(depotPos.south()) .add(0, 1 / 16f, 0), - Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .1f)), 1, 1); + Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, random, .1f)), 1, 1); } scene.world.removeItemsFromBelt(spoutPos.below(2)); ingot = scene.world.createItemOnBelt(spoutPos.below(2), Direction.UP, potion); @@ -163,7 +165,7 @@ public class SpoutScenes { for (int i = 0; i < 10; i++) { scene.effects.emitParticles(util.vector.topOf(depotPos.south()) .add(0, 1 / 16f, 0), - Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, Create.RANDOM, .1f)), 1, 1); + Emitter.simple(fluidParticle, VecHelper.offsetRandomly(Vec3.ZERO, random, .1f)), 1, 1); } scene.world.removeItemsFromBelt(spoutPos.below(2)); ingot2 = scene.world.createItemOnBelt(spoutPos.below(2), Direction.UP, potion); 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 index 6d792a8af..7dcbd1c0a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/TextWindowElement.java @@ -19,7 +19,7 @@ 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; +import net.minecraftforge.client.gui.ScreenUtils; public class TextWindowElement extends AnimatedOverlayElement { @@ -134,8 +134,8 @@ public class TextWindowElement extends AnimatedOverlayElement { 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); + ScreenUtils.drawGradientRect(model, -100, 0, 0, 1, 1, brighterColor, brighterColor); + ScreenUtils.drawGradientRect(model, -100, 0, 1, 1, 2, 0xFF494949, 0xFF393939); ms.popPose(); } 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 index ad2549630..e16313ba2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/element/WorldSectionElement.java @@ -4,7 +4,6 @@ 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; @@ -36,10 +35,13 @@ 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.renderer.texture.OverlayTexture; +import net.minecraft.client.resources.model.BakedModel; 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.util.RandomSource; import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -53,8 +55,7 @@ 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; +import net.minecraftforge.client.model.data.ModelData; public class WorldSectionElement extends AnimatedSceneElement { @@ -342,8 +343,7 @@ public class WorldSectionElement extends AnimatedSceneElement { overlayMS.last() .normal()); ModelUtil.VANILLA_RENDERER - .renderBatched(world.getBlockState(pos), pos, world, ms, builder, true, new Random(), - EmptyModelData.INSTANCE); + .renderBreakingTexture(world.getBlockState(pos), pos, world, ms, builder, ModelData.EMPTY); ms.popPose(); } @@ -407,10 +407,11 @@ public class WorldSectionElement extends AnimatedSceneElement { private SuperByteBuffer buildStructureBuffer(PonderWorld world, RenderType layer) { BlockRenderDispatcher dispatcher = ModelUtil.VANILLA_RENDERER; + ModelBlockRenderer renderer = dispatcher.getModelRenderer(); ThreadLocalObjects objects = THREAD_LOCAL_OBJECTS.get(); PoseStack poseStack = objects.poseStack; - Random random = objects.random; + RandomSource random = objects.random; ShadeSeparatingVertexConsumer shadeSeparatingWrapper = objects.shadeSeparatingWrapper; ShadeSeparatedBufferBuilder builder = new ShadeSeparatedBufferBuilder(512); BufferBuilder unshadedBuilder = objects.unshadedBuilder; @@ -420,7 +421,6 @@ public class WorldSectionElement extends AnimatedSceneElement { shadeSeparatingWrapper.prepare(builder, unshadedBuilder); world.setMask(this.section); - ForgeHooksClient.setRenderType(layer); ModelBlockRenderer.enableCaching(); section.forEach(pos -> { BlockState state = world.getBlockState(pos); @@ -429,19 +429,24 @@ public class WorldSectionElement extends AnimatedSceneElement { poseStack.pushPose(); poseStack.translate(pos.getX(), pos.getY(), pos.getZ()); - if (state.getRenderShape() == RenderShape.MODEL && ItemBlockRenderTypes.canRenderInLayer(state, layer)) { + if (state.getRenderShape() == RenderShape.MODEL) { + BakedModel model = dispatcher.getBlockModel(state); BlockEntity tileEntity = world.getBlockEntity(pos); - dispatcher.renderBatched(state, pos, world, poseStack, shadeSeparatingWrapper, true, random, - tileEntity != null ? tileEntity.getModelData() : EmptyModelData.INSTANCE); + ModelData modelData = tileEntity != null ? tileEntity.getModelData() : ModelData.EMPTY; + long seed = state.getSeed(pos); + random.setSeed(seed); + if (model.getRenderTypes(state, random, modelData).contains(layer)) { + renderer.tesselateBlock(world, model, state, pos, poseStack, shadeSeparatingWrapper, true, + random, seed, OverlayTexture.NO_OVERLAY, modelData, layer); + } } - if (!fluidState.isEmpty() && ItemBlockRenderTypes.canRenderInLayer(fluidState, layer)) + if (!fluidState.isEmpty() && ItemBlockRenderTypes.getRenderLayer(fluidState) == layer) dispatcher.renderLiquid(pos, world, builder, state, fluidState); poseStack.popPose(); }); ModelBlockRenderer.clearCache(); - ForgeHooksClient.setRenderType(null); world.clearMask(); shadeSeparatingWrapper.clear(); @@ -454,7 +459,7 @@ public class WorldSectionElement extends AnimatedSceneElement { private static class ThreadLocalObjects { public final PoseStack poseStack = new PoseStack(); - public final Random random = new Random(); + public final RandomSource random = RandomSource.createNewThreadLocalInstance(); public final ShadeSeparatingVertexConsumer shadeSeparatingWrapper = new ShadeSeparatingVertexConsumer(); public final BufferBuilder unshadedBuilder = new BufferBuilder(512); } 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 index 2b1bb4682..afb234ff3 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/NavigatableSimiScreen.java @@ -23,7 +23,7 @@ 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.network.chat.MutableComponent; import net.minecraft.util.Mth; public abstract class NavigatableSimiScreen extends AbstractSimiScreen { @@ -96,7 +96,7 @@ public abstract class NavigatableSimiScreen extends AbstractSimiScreen { ms.pushPose(); ms.translate(0, 0, 500); if (backTrack.isHoveredOrFocused()) { - TranslatableComponent translate = Lang.translateDirect(backTrackingLangKey()); + MutableComponent 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())) { 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 index ab3e5b0e9..e8719917e 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderProgressBar.java @@ -12,7 +12,7 @@ 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; +import net.minecraftforge.client.gui.ScreenUtils; public class PonderProgressBar extends AbstractSimiWidget { @@ -103,8 +103,8 @@ public class PonderProgressBar extends AbstractSimiWidget { 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); + ScreenUtils.drawGradientRect(ms.last().pose(), 310, 0, 3, 1, 4, c1, c1); + ScreenUtils.drawGradientRect(ms.last().pose(), 310, 0, 4, 1, 5, c2, c2); ms.popPose(); renderKeyframes(ms, mouseX, partialTicks); @@ -149,7 +149,7 @@ public class PonderProgressBar extends AbstractSimiWidget { 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() + ScreenUtils.drawGradientRect(ms.last() .pose(), 600, keyframePos, 10, keyframePos + 1, 10 + height, endColor, startColor); ms.pushPose(); ms.translate(0, 0, 200); @@ -166,7 +166,7 @@ public class PonderProgressBar extends AbstractSimiWidget { ms.popPose(); } - GuiUtils.drawGradientRect(ms.last() + ScreenUtils.drawGradientRect(ms.last() .pose(), 400, keyframePos, -1, keyframePos + 1, 2 + height, startColor, endColor); } 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 index c7bd9bc8b..7fe3e0198 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderTagIndexScreen.java @@ -24,7 +24,6 @@ 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 { @@ -214,7 +213,7 @@ public class PonderTagIndexScreen extends NavigatableSimiScreen { if (hoveredItem != null) { List list = TooltipHelper.cutStringTextComponent(hoveredItem.getDescription(), ChatFormatting.GRAY, ChatFormatting.GRAY); - list.add(0, new TextComponent(hoveredItem.getTitle())); + list.add(0, Component.literal(hoveredItem.getTitle())); renderComponentTooltip(ms, list, mouseX, mouseY); } 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 index b0258e403..5a681488a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/ui/PonderUI.java @@ -5,7 +5,6 @@ import static com.simibubi.create.foundation.ponder.PonderLocalization.LANG_PREF 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; @@ -51,18 +50,19 @@ 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.Component; 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.util.RandomSource; 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.client.gui.ScreenUtils; import net.minecraftforge.registries.ForgeRegistries; public class PonderUI extends NavigatableSimiScreen { @@ -383,7 +383,7 @@ public class PonderUI extends NavigatableSimiScreen { 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(), + activeTemplate.placeInWorld(world, BlockPos.ZERO, BlockPos.ZERO, new StructurePlaceSettings(), RandomSource.create(), Block.UPDATE_CLIENTS); world.createBackup(); scene = PonderRegistry.compileScene(index, sb, world); @@ -484,14 +484,14 @@ public class PonderUI extends NavigatableSimiScreen { if (flash > 0) { ms.pushPose(); ms.scale(1, .5f + flash * .75f, 1); - GuiUtils.drawGradientRect(ms.last() + ScreenUtils.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() + ScreenUtils.drawGradientRect(ms.last() .pose(), 0, 0, 0, -story.getBasePlateSize(), 4, 0x66_000000, 0x00_000000); ms.popPose(); ms.mulPose(Vector3f.YP.rotationDegrees(-90)); @@ -654,7 +654,7 @@ public class PonderUI extends NavigatableSimiScreen { if (hoveredBlockPos != null && PonderIndex.editingModeActive() && !userViewMode) { ms.translate(0, -15, 0); boolean copied = copiedBlockPos != null && hoveredBlockPos.equals(copiedBlockPos); - MutableComponent coords = new TextComponent( + MutableComponent coords = Component.literal( hoveredBlockPos.getX() + ", " + hoveredBlockPos.getY() + ", " + hoveredBlockPos.getZ()) .withStyle(copied ? ChatFormatting.GREEN : ChatFormatting.GOLD); renderTooltip(ms, coords, 0, 0); diff --git a/src/main/java/com/simibubi/create/foundation/render/ShadowRenderHelper.java b/src/main/java/com/simibubi/create/foundation/render/ShadowRenderHelper.java index e7c3fca17..febc73351 100644 --- a/src/main/java/com/simibubi/create/foundation/render/ShadowRenderHelper.java +++ b/src/main/java/com/simibubi/create/foundation/render/ShadowRenderHelper.java @@ -67,9 +67,8 @@ public class ShadowRenderHelper { if (blockstate.isCollisionShapeFullBlock(world, blockpos)) { VoxelShape voxelshape = blockstate.getShape(world, pos.below()); if (!voxelshape.isEmpty()) { - @SuppressWarnings("deprecation") - float f = (float) (((double) opacity - (y - (double) pos.getY()) / 2.0D) - * 0.5D * (double) world.getBrightness(pos)); + float brightness = LightTexture.getBrightness(world.dimensionType(), world.getMaxLocalRawBrightness(pos)); + float f = (float) ((opacity - (y - pos.getY()) / 2.0D) * 0.5D * brightness); if (f >= 0.0F) { if (f > 1.0F) { f = 1.0F; diff --git a/src/main/java/com/simibubi/create/foundation/sound/ContinuousSound.java b/src/main/java/com/simibubi/create/foundation/sound/ContinuousSound.java index 4edc12751..a0b58bb5a 100644 --- a/src/main/java/com/simibubi/create/foundation/sound/ContinuousSound.java +++ b/src/main/java/com/simibubi/create/foundation/sound/ContinuousSound.java @@ -1,6 +1,7 @@ package com.simibubi.create.foundation.sound; import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; @@ -11,7 +12,7 @@ public class ContinuousSound extends AbstractTickableSoundInstance { private float relativeVolume; protected ContinuousSound(SoundEvent event, SoundScape scape, float sharedPitch, float relativeVolume) { - super(event, SoundSource.AMBIENT); + super(event, SoundSource.AMBIENT, SoundInstance.createUnseededRandom()); this.scape = scape; this.sharedPitch = sharedPitch; this.relativeVolume = relativeVolume; 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..30e39dd71 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 @@ -16,7 +16,6 @@ import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; @@ -25,8 +24,8 @@ import net.minecraft.world.phys.Vec3; public class ValueBox extends ChasingAABBOutline { protected Component label; - protected Component sublabel = TextComponent.EMPTY; - protected Component scrollTooltip = TextComponent.EMPTY; + protected Component sublabel = Component.empty(); + protected Component scrollTooltip = Component.empty(); protected Vec3 labelOffset = Vec3.ZERO; protected int passiveColor; @@ -110,7 +109,7 @@ public class ValueBox extends ChasingAABBOutline { ms.translate(0, 10, 0); renderHoveringText(ms, buffer, sublabel); } - if (!scrollTooltip.getContents().isEmpty()) { + if (!scrollTooltip.getString().isEmpty()) { ms.translate(0, 10, 0); renderHoveringText(ms, buffer, scrollTooltip, 0x998899, 0x111111); } @@ -137,7 +136,7 @@ public class ValueBox extends ChasingAABBOutline { public void renderContents(PoseStack ms, MultiBufferSource buffer) { super.renderContents(ms, buffer); Font font = Minecraft.getInstance().font; - Component countString = new TextComponent(count == 0 ? "*" : count + ""); + Component countString = Component.literal(count == 0 ? "*" : count + ""); ms.translate(17.5f, -5f, 7f); boolean isFilter = stack.getItem() instanceof FilterItem; diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java index 58b93c7e8..d7ea74898 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/ValueBoxRenderer.java @@ -16,7 +16,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.FenceBlock; -import net.minecraftforge.client.model.ItemMultiLayerBakedModel; public class ValueBoxRenderer { @@ -25,7 +24,7 @@ public class ValueBoxRenderer { ItemRenderer itemRenderer = Minecraft.getInstance() .getItemRenderer(); BakedModel modelWithOverrides = itemRenderer.getModel(filter, null, null, 0); - boolean blockItem = modelWithOverrides.isGui3d() && !(modelWithOverrides instanceof ItemMultiLayerBakedModel); + boolean blockItem = modelWithOverrides.isGui3d() && modelWithOverrides.getRenderPasses(filter, false).size() <= 1; float scale = (!blockItem ? .5f : 1f) - 1 / 64f; float zOffset = (!blockItem ? -.225f : 0) + customZOffset(filter.getItem()); ms.scale(scale, scale, scale); 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..99798bc13 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 @@ -31,9 +31,9 @@ public class EdgeInteractionHandler { @SubscribeEvent public static void onBlockActivated(PlayerInteractEvent.RightClickBlock event) { - Level world = event.getWorld(); + Level world = event.getLevel(); BlockPos pos = event.getPos(); - Player player = event.getPlayer(); + Player player = event.getEntity(); InteractionHand hand = event.getHand(); ItemStack heldItem = player.getItemInHand(hand); 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..c4b5440ee 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 @@ -13,7 +13,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.AABB; @@ -64,7 +64,7 @@ public class EdgeInteractionRenderer { AABB bb = EdgeInteractionHandler.getBB(pos, closestEdge); boolean hit = bb.contains(target.getLocation()); - ValueBox box = new ValueBox(TextComponent.EMPTY, bb.move(-pos.getX(), -pos.getY(), -pos.getZ()), pos); + ValueBox box = new ValueBox(Component.empty(), bb.move(-pos.getX(), -pos.getY(), -pos.getZ()), pos); Vec3 textOffset = Vec3.ZERO; boolean positive = closestEdge.getAxisDirection() == AxisDirection.POSITIVE; 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..efe864b31 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 @@ -39,9 +39,9 @@ public class FilteringHandler { @SubscribeEvent public static void onBlockActivated(PlayerInteractEvent.RightClickBlock event) { - Level world = event.getWorld(); + Level world = event.getLevel(); BlockPos pos = event.getPos(); - Player player = event.getPlayer(); + Player player = event.getEntity(); InteractionHand hand = event.getHand(); if (player.isShiftKeyDown() || player.isSpectator()) 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..d91b10752 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 @@ -23,7 +23,6 @@ import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; @@ -66,7 +65,7 @@ public class FilteringRenderer { boolean isFilterSlotted = filter.getItem() instanceof FilterItem; boolean showCount = behaviour.isCountVisible(); boolean fluids = behaviour.fluidFilter; - Component label = isFilterSlotted ? TextComponent.EMPTY + Component label = isFilterSlotted ? Component.empty() : Lang.translateDirect(behaviour.recipeFilter ? "logistics.recipe_filter" : fluids ? "logistics.fluid_filter" : "logistics.filter"); boolean hit = behaviour.slotPositioning.testHit(state, target.getLocation() @@ -80,7 +79,7 @@ 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 ? Component.literal("[").append(Lang.translateDirect("action.scroll")).append("]") : Component.empty()) .passive(!hit); CreateClient.OUTLINER.showValueBox(Pair.of("filter", pos), box.transform(behaviour.slotPositioning)) diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkHandler.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkHandler.java index 0b75fce29..69f08cb5b 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkHandler.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkHandler.java @@ -25,9 +25,9 @@ public class LinkHandler { @SubscribeEvent public static void onBlockActivated(PlayerInteractEvent.RightClickBlock event) { - Level world = event.getWorld(); + Level world = event.getLevel(); BlockPos pos = event.getPos(); - Player player = event.getPlayer(); + Player player = event.getEntity(); InteractionHand hand = event.getHand(); if (player.isShiftKeyDown() || player.isSpectator()) 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..b3a7d874b 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 @@ -15,7 +15,6 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; @@ -65,12 +64,12 @@ public class ScrollValueRenderer { if (behaviour instanceof ScrollOptionBehaviour) { box = new IconValueBox(label, ((ScrollOptionBehaviour) behaviour).getIconForSelected(), bb, pos); } else { - box = new TextValueBox(label, bb, pos, new TextComponent(behaviour.formatValue())); + box = new TextValueBox(label, bb, pos, Component.literal(behaviour.formatValue())); if (behaviour.unit != null) - box.subLabel(new TextComponent("(").append(behaviour.unit.apply(behaviour.scrollableValue)).append(")")); + box.subLabel(Component.literal("(").append(behaviour.unit.apply(behaviour.scrollableValue)).append(")")); } - box.scrollTooltip(new TextComponent("[").append(Lang.translateDirect("action.scroll")).append("]")); + box.scrollTooltip(Component.literal("[").append(Lang.translateDirect("action.scroll")).append("]")); box.offsetLabel(behaviour.textShift.add(20, -10, 0)) .withColors(0x5A5D5A, 0xB5B7B6) .passive(!highlight); diff --git a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java index 4817470f3..08a67ea5e 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java @@ -42,7 +42,7 @@ import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.material.FluidState; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.level.BlockEvent; public class BlockHelper { @@ -178,7 +178,7 @@ public class BlockHelper { && (player == null || !player.isCreative())) { for (ItemStack itemStack : Block.getDrops(state, (ServerLevel) world, pos, tileentity, player, usedTool)) droppedItemCallback.accept(itemStack); - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); } world.setBlockAndUpdate(pos, fluidState.createLegacyBlock()); diff --git a/src/main/java/com/simibubi/create/foundation/utility/Debug.java b/src/main/java/com/simibubi/create/foundation/utility/Debug.java index 74e2f881c..740f38237 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/Debug.java +++ b/src/main/java/com/simibubi/create/foundation/utility/Debug.java @@ -6,7 +6,6 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fml.util.thread.EffectiveSide; @@ -18,20 +17,20 @@ public class Debug { @Deprecated public static void debugChat(String message) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.displayClientMessage(new TextComponent(message), false); + Minecraft.getInstance().player.displayClientMessage(Component.literal(message), false); } @Deprecated public static void debugChatAndShowStack(String message, int depth) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.displayClientMessage(new TextComponent(message).append("@") + Minecraft.getInstance().player.displayClientMessage(Component.literal(message).append("@") .append(debugStack(depth)), false); } @Deprecated public static void debugMessage(String message) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.displayClientMessage(new TextComponent(message), true); + Minecraft.getInstance().player.displayClientMessage(Component.literal(message), true); } @Deprecated @@ -49,18 +48,18 @@ public class Debug { public static Component debugStack(int depth) { StackTraceElement[] stackTraceElements = Thread.currentThread() .getStackTrace(); - MutableComponent text = new TextComponent("[") - .append(new TextComponent(getLogicalSide()).withStyle(ChatFormatting.GOLD)) + MutableComponent text = Component.literal("[") + .append(Component.literal(getLogicalSide()).withStyle(ChatFormatting.GOLD)) .append("] "); for (int i = 1; i < depth + 2 && i < stackTraceElements.length; i++) { StackTraceElement e = stackTraceElements[i]; if (e.getClassName() .equals(Debug.class.getName())) continue; - text.append(new TextComponent(e.getMethodName()).withStyle(ChatFormatting.YELLOW)) + text.append(Component.literal(e.getMethodName()).withStyle(ChatFormatting.YELLOW)) .append(", "); } - return text.append(new TextComponent(" ...").withStyle(ChatFormatting.GRAY)); + return text.append(Component.literal(" ...").withStyle(ChatFormatting.GRAY)); } @Deprecated diff --git a/src/main/java/com/simibubi/create/foundation/utility/DynamicComponent.java b/src/main/java/com/simibubi/create/foundation/utility/DynamicComponent.java index 25d982d7a..750d75d90 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/DynamicComponent.java +++ b/src/main/java/com/simibubi/create/foundation/utility/DynamicComponent.java @@ -13,7 +13,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec2; @@ -47,7 +46,7 @@ public class DynamicComponent { } public MutableComponent get() { - return parsedCustomText == null ? TextComponent.EMPTY.copy() : parsedCustomText.copy(); + return parsedCustomText == null ? Component.empty() : parsedCustomText.copy(); } public void read(Level level, BlockPos pos, CompoundTag nbt) { @@ -90,7 +89,7 @@ public class DynamicComponent { public static CommandSourceStack getCommandSource(ServerLevel level, BlockPos pos) { return new CommandSourceStack(CommandSource.NULL, Vec3.atCenterOf(pos), Vec2.ZERO, level, 2, Create.ID, - new TextComponent(Create.ID), level.getServer(), null); + Component.literal(Create.ID), level.getServer(), null); } } 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..99936d689 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FluidFormatter.java @@ -1,7 +1,7 @@ package com.simibubi.create.foundation.utility; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.TextComponent; public class FluidFormatter { @@ -13,13 +13,13 @@ public class FluidFormatter { public static Couple asComponents(long amount, boolean shorten) { if (shorten && amount >= 1000) { return Couple.create( - new TextComponent(String.format("%.1f" , amount / 1000d)), + Component.literal(String.format("%.1f" , amount / 1000d)), Lang.translateDirect("generic.unit.buckets") ); } return Couple.create( - new TextComponent(String.valueOf(amount)), + Component.literal(String.valueOf(amount)), Lang.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 index c9914e91e..723524344 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FontHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FontHelper.java @@ -8,10 +8,10 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.math.Matrix4f; +import net.minecraft.client.Minecraft; 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 { @@ -20,7 +20,7 @@ public final class FontHelper { public static List cutString(Font font, String text, int maxWidthPerLine) { // Split words List words = new LinkedList<>(); - BreakIterator iterator = BreakIterator.getLineInstance(MinecraftForgeClient.getLocale()); + BreakIterator iterator = BreakIterator.getLineInstance(Minecraft.getInstance().getLocale()); iterator.setText(text); int start = iterator.first(); for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next()) { diff --git a/src/main/java/com/simibubi/create/foundation/utility/Lang.java b/src/main/java/com/simibubi/create/foundation/utility/Lang.java index 3e062b8bb..eee8cf30d 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/Lang.java +++ b/src/main/java/com/simibubi/create/foundation/utility/Lang.java @@ -7,8 +7,7 @@ import java.util.Locale; import com.simibubi.create.Create; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.fluids.FluidStack; @@ -22,8 +21,8 @@ public class Lang { * @param args * @return */ - public static TranslatableComponent translateDirect(String key, Object... args) { - return new TranslatableComponent(Create.ID + "." + key, resolveBuilders(args)); + public static MutableComponent translateDirect(String key, Object... args) { + return Component.translatable(Create.ID + "." + key, resolveBuilders(args)); } public static String asId(String name) { @@ -42,10 +41,6 @@ public class Lang { return result; } - public static Component empty() { - return TextComponent.EMPTY; - } - // public static LangBuilder builder() { diff --git a/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java b/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java index 5440c102a..164cef899 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/utility/LangBuilder.java @@ -6,8 +6,6 @@ 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 { @@ -37,7 +35,7 @@ public class LangBuilder { * @return */ public LangBuilder translate(String langKey, Object... args) { - return add(new TranslatableComponent(namespace + "." + langKey, Lang.resolveBuilders(args))); + return add(Component.translatable(namespace + "." + langKey, Lang.resolveBuilders(args))); } /** @@ -47,7 +45,7 @@ public class LangBuilder { * @return */ public LangBuilder text(String literalText) { - return add(new TextComponent(literalText)); + return add(Component.literal(literalText)); } /** @@ -58,7 +56,7 @@ public class LangBuilder { * @return */ public LangBuilder text(ChatFormatting format, String literalText) { - return add(new TextComponent(literalText).withStyle(format)); + return add(Component.literal(literalText).withStyle(format)); } /** @@ -69,7 +67,7 @@ public class LangBuilder { * @return */ public LangBuilder text(int color, String literalText) { - return add(new TextComponent(literalText).withStyle(s -> s.withColor(color))); + return add(Component.literal(literalText).withStyle(s -> s.withColor(color))); } /** diff --git a/src/main/java/com/simibubi/create/foundation/utility/ModelSwapper.java b/src/main/java/com/simibubi/create/foundation/utility/ModelSwapper.java index bfd0fd91f..6b1ae978d 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/ModelSwapper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/ModelSwapper.java @@ -16,9 +16,7 @@ import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; -import net.minecraftforge.client.event.ModelBakeEvent; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.model.ForgeModelBakery; +import net.minecraftforge.client.event.ModelEvent; import net.minecraftforge.eventbus.api.IEventBus; public class ModelSwapper { @@ -39,14 +37,14 @@ public class ModelSwapper { return customRenderedItems; } - public void onModelRegistry(ModelRegistryEvent event) { + public void onModelRegistry(ModelEvent.RegisterAdditional event) { customRenderedItems.forEach((item, modelFunc) -> modelFunc.apply(null) .getModelLocations() - .forEach(ForgeModelBakery::addSpecialModel)); + .forEach(event::register)); } - public void onModelBake(ModelBakeEvent event) { - Map modelRegistry = event.getModelRegistry(); + public void onModelBake(ModelEvent.BakingCompleted event) { + Map modelRegistry = event.getModels(); customBlockModels.forEach((block, modelFunc) -> swapModels(modelRegistry, getAllBlockStateModelLocations(block), modelFunc)); customItemModels.forEach((item, modelFunc) -> swapModels(modelRegistry, getItemModelLocation(item), modelFunc)); diff --git a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java index ff66d8ffc..41cee2c9a 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java @@ -53,17 +53,18 @@ import java.util.Map; import com.simibubi.create.Create; +import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Fluid; import net.minecraftforge.common.ForgeMod; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.event.RegistryEvent.MissingMappings.Mapping; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.MissingMappingsEvent; +import net.minecraftforge.registries.MissingMappingsEvent.Mapping; @Mod.EventBusSubscriber public class RemapHelper { @@ -221,9 +222,9 @@ public class RemapHelper { } @SubscribeEvent - public static void remapBlocks(RegistryEvent.MissingMappings event) { - for (Mapping mapping : event.getMappings(Create.ID)) { - ResourceLocation key = mapping.key; + public static void remapBlocks(MissingMappingsEvent event) { + for (Mapping mapping : event.getMappings(Registry.BLOCK_REGISTRY, Create.ID)) { + ResourceLocation key = mapping.getKey(); String path = key.getPath(); ResourceLocation remappedId = reMap.get(path); if (remappedId != null) { @@ -241,9 +242,9 @@ public class RemapHelper { } @SubscribeEvent - public static void remapItems(RegistryEvent.MissingMappings event) { - for (Mapping mapping : event.getMappings(Create.ID)) { - ResourceLocation key = mapping.key; + public static void remapItems(MissingMappingsEvent event) { + for (Mapping mapping : event.getMappings(Registry.ITEM_REGISTRY, Create.ID)) { + ResourceLocation key = mapping.getKey(); String path = key.getPath(); ResourceLocation remappedId = reMap.get(path); if (remappedId != null) { @@ -261,9 +262,9 @@ public class RemapHelper { } @SubscribeEvent - public static void remapFluids(RegistryEvent.MissingMappings event) { - for (Mapping mapping : event.getMappings(Create.ID)) { - ResourceLocation key = mapping.key; + public static void remapFluids(MissingMappingsEvent event) { + for (Mapping mapping : event.getMappings(Registry.FLUID_REGISTRY, Create.ID)) { + ResourceLocation key = mapping.getKey(); String path = key.getPath(); if (path.equals("milk")) mapping.remap(ForgeMod.MILK.get()); diff --git a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java index ffb52b2b3..6d350b110 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java @@ -1,7 +1,5 @@ package com.simibubi.create.foundation.utility; -import java.util.Random; - import javax.annotation.Nullable; import com.mojang.math.Quaternion; @@ -20,6 +18,7 @@ import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.Mirror; @@ -116,7 +115,7 @@ public class VecHelper { .add(.5f, .5f, .5f); } - public static Vec3 offsetRandomly(Vec3 vec, Random r, float radius) { + public static Vec3 offsetRandomly(Vec3 vec, RandomSource 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); } @@ -251,7 +250,7 @@ public class VecHelper { // ----- compensate for view bobbing (if active) ----- // the following code adapted from GameRenderer::applyBobbing (to invert it) Minecraft mc = Minecraft.getInstance(); - if (mc.options.bobView) { + if (mc.options.bobView().get()) { Entity renderViewEntity = mc.getCameraEntity(); if (renderViewEntity instanceof Player) { Player playerentity = (Player) renderViewEntity; 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 index 1f7cbc500..0eb5a259d 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/utility/ghost/GhostBlockRenderer.java @@ -1,30 +1,30 @@ 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.jozufozu.flywheel.core.model.ModelUtil; 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.ModelBlockRenderer; 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.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.data.IModelData; +import net.minecraftforge.client.model.data.ModelData; public abstract class GhostBlockRenderer { @@ -46,22 +46,23 @@ public abstract class GhostBlockRenderer { @Override public void render(PoseStack ms, SuperRenderTypeBuffer buffer, GhostBlockParams params) { - ms.pushPose(); - BlockRenderDispatcher dispatcher = Minecraft.getInstance() .getBlockRenderer(); + ModelBlockRenderer renderer = dispatcher.getModelRenderer(); - BakedModel model = dispatcher.getBlockModel(params.state); - - RenderType layer = ItemBlockRenderTypes.getRenderType(params.state, false); - VertexConsumer vb = buffer.getEarlyBuffer(layer); - + BlockState state = params.state; BlockPos pos = params.pos; + + BakedModel model = dispatcher.getBlockModel(state); + + ms.pushPose(); 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); + for (RenderType layer : model.getRenderTypes(state, RandomSource.create(42L), ModelUtil.VIRTUAL_DATA)) { + VertexConsumer vb = buffer.getEarlyBuffer(layer); + renderer.renderModel(ms.last(), vb, state, model, 1f, 1f, 1f, LightTexture.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, + ModelUtil.VIRTUAL_DATA, layer); + } ms.popPose(); } @@ -72,27 +73,27 @@ public abstract class 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); + BlockState state = params.state; + BlockPos pos = params.pos; + float alpha = params.alphaSupplier.get() * .75f * PlacementHelpers.getCurrentAlpha(); + BakedModel model = dispatcher.getBlockModel(state); RenderType layer = RenderType.translucent(); VertexConsumer vb = buffer.getEarlyBuffer(layer); - BlockPos pos = params.pos; + ms.pushPose(); 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, + renderModel(ms.last(), vb, state, model, 1f, 1f, 1f, alpha, LevelRenderer.getLightColor(mc.level, pos), OverlayTexture.NO_OVERLAY, - VirtualEmptyModelData.INSTANCE); + ModelUtil.VIRTUAL_DATA, layer); ms.popPose(); } @@ -100,18 +101,18 @@ public abstract class GhostBlockRenderer { // 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(); + float alpha, int packedLight, int packedOverlay, ModelData modelData, RenderType renderType) { + RandomSource random = RandomSource.create(); for (Direction direction : Direction.values()) { random.setSeed(42L); renderQuadList(pose, consumer, red, green, blue, alpha, - model.getQuads(state, direction, random, modelData), packedLight, packedOverlay); + model.getQuads(state, direction, random, modelData, renderType), packedLight, packedOverlay); } random.setSeed(42L); renderQuadList(pose, consumer, red, green, blue, alpha, - model.getQuads(state, null, random, modelData), packedLight, packedOverlay); + model.getQuads(state, null, random, modelData, renderType), packedLight, packedOverlay); } // ModelBlockRenderer @@ -132,7 +133,7 @@ public abstract class GhostBlockRenderer { f2 = 1.0F; } - consumer.putBulkData(pose, quad, f, f1, f2, alpha, packedLight, packedOverlay); + consumer.putBulkData(pose, quad, f, f1, f2, alpha, packedLight, packedOverlay, true); } } 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 index e3427f52c..3c8516699 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java @@ -33,8 +33,8 @@ 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.client.event.RenderGuiOverlayEvent; +import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -153,8 +153,8 @@ public class PlacementHelpers { @SubscribeEvent @OnlyIn(Dist.CLIENT) - public static void afterRenderOverlayLayer(RenderGameOverlayEvent.PostLayer event) { - if (event.getOverlay() != ForgeIngameGui.CROSSHAIR_ELEMENT) + public static void afterRenderOverlayLayer(RenderGuiOverlayEvent.Post event) { + if (event.getOverlay() != VanillaGuiOverlay.CROSSHAIR.type()) return; Minecraft mc = Minecraft.getInstance(); @@ -167,7 +167,7 @@ public class PlacementHelpers { float screenX = res.getGuiScaledWidth() / 2f; float progress = getCurrentAlpha(); - drawDirectionIndicator(event.getMatrixStack(), event.getPartialTicks(), screenX, screenY, progress); + drawDirectionIndicator(event.getPoseStack(), event.getPartialTick(), screenX, screenY, progress); } } 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 index 912dde271..7603b5d1f 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementOffset.java @@ -23,7 +23,7 @@ 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; +import net.minecraftforge.event.level.BlockEvent; public class PlacementOffset { 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..8db1b4845 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/AllWorldFeatures.java @@ -14,12 +14,11 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome.BiomeCategory; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.GenerationStep.Decoration; -import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder; -import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.event.world.BiomeLoadingEvent; +import net.minecraftforge.registries.RegisterEvent; public class AllWorldFeatures { @@ -103,9 +102,11 @@ public class AllWorldFeatures { public static void register() {} - public static void registerOreFeatures(RegistryEvent.Register> event) { - event.getRegistry() - .registerAll(VanillaStyleOreFeature.INSTANCE, LayeredOreFeature.INSTANCE); + public static void registerOreFeatures(RegisterEvent event) { + event.register(Registry.FEATURE_REGISTRY, helper -> { + helper.register(Create.asResource("config_driven_ore"), VanillaStyleOreFeature.INSTANCE); + helper.register(Create.asResource("config_driven_layered_ore"), LayeredOreFeature.INSTANCE); + }); } public static void registerPlacementTypes() { diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenDecorator.java b/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenDecorator.java index a1af6270d..206fbc209 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenDecorator.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/ConfigDrivenDecorator.java @@ -1,6 +1,5 @@ package com.simibubi.create.foundation.worldgen; -import java.util.Random; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -11,6 +10,7 @@ import com.simibubi.create.Create; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.levelgen.placement.PlacementContext; import net.minecraft.world.level.levelgen.placement.PlacementModifier; import net.minecraft.world.level.levelgen.placement.PlacementModifierType; @@ -37,7 +37,7 @@ public class ConfigDrivenDecorator extends PlacementModifier { } @Override - public Stream getPositions(PlacementContext context, Random random, BlockPos pos) { + public Stream getPositions(PlacementContext context, RandomSource random, BlockPos pos) { ConfigDrivenOreConfiguration config = (ConfigDrivenOreConfiguration) entry().configuredFeature.value() .config(); 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..6b0722d2d 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/LayerPattern.java @@ -2,7 +2,6 @@ package com.simibubi.create.foundation.worldgen; import java.util.ArrayList; import java.util.List; -import java.util.Random; import javax.annotation.Nullable; @@ -12,6 +11,7 @@ import com.simibubi.create.foundation.worldgen.LayerPattern.Layer.LayerBuilder; import com.tterrag.registrate.util.nullness.NonNullSupplier; import net.minecraft.data.worldgen.features.OreFeatures; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; @@ -32,7 +32,7 @@ public class LayerPattern { return ore.new Builder(); } - public Layer rollNext(@Nullable Layer previous, Random random) { + public Layer rollNext(@Nullable Layer previous, RandomSource random) { int totalWeight = 0; for (Layer layer : layers) if (layer != previous) @@ -87,7 +87,7 @@ public class LayerPattern { this.weight = 1; } - public List rollBlock(Random random) { + public List rollBlock(RandomSource random) { if (targets.size() == 1) return targets.get(0); return targets.get(random.nextInt(targets.size())); diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/LayeredOreFeature.java b/src/main/java/com/simibubi/create/foundation/worldgen/LayeredOreFeature.java index 36ccebded..a1b994614 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/LayeredOreFeature.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/LayeredOreFeature.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Random; import com.simibubi.create.foundation.worldgen.LayerPattern.Layer; @@ -13,6 +12,7 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.SectionPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.BulkSectionAccess; @@ -28,13 +28,9 @@ public class LayeredOreFeature extends OreFeatureBase { public static final LayeredOreFeature INSTANCE = new LayeredOreFeature(); - public LayeredOreFeature() { - setRegistryName("config_driven_layered_ore"); - } - public boolean place(FeaturePlaceContext pContext) { - Random random = pContext.random(); + RandomSource random = pContext.random(); BlockPos blockpos = pContext.origin(); WorldGenLevel worldgenlevel = pContext.level(); ConfigDrivenOreConfiguration config = pContext.config(); diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/OreFeatureBase.java b/src/main/java/com/simibubi/create/foundation/worldgen/OreFeatureBase.java index c886cd155..ba211f1ed 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/OreFeatureBase.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/OreFeatureBase.java @@ -1,9 +1,9 @@ package com.simibubi.create.foundation.worldgen; -import java.util.Random; import java.util.function.Function; import net.minecraft.core.BlockPos; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; @@ -15,7 +15,7 @@ public abstract class OreFeatureBase extends Feature pAdjacentStateAccessor, - Random pRandom, ConfigDrivenOreConfiguration pConfig, OreConfiguration.TargetBlockState pTargetState, + RandomSource pRandom, ConfigDrivenOreConfiguration pConfig, OreConfiguration.TargetBlockState pTargetState, BlockPos.MutableBlockPos pMatablePos) { if (!pTargetState.target.test(pState, pRandom)) return false; @@ -25,7 +25,7 @@ public abstract class OreFeatureBase extends Feature= 1 ? false : pRandom.nextFloat() >= pChance; } } diff --git a/src/main/java/com/simibubi/create/foundation/worldgen/VanillaStyleOreFeature.java b/src/main/java/com/simibubi/create/foundation/worldgen/VanillaStyleOreFeature.java index 011ccda9d..66a059375 100644 --- a/src/main/java/com/simibubi/create/foundation/worldgen/VanillaStyleOreFeature.java +++ b/src/main/java/com/simibubi/create/foundation/worldgen/VanillaStyleOreFeature.java @@ -1,11 +1,11 @@ package com.simibubi.create.foundation.worldgen; import java.util.BitSet; -import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.BulkSectionAccess; @@ -18,15 +18,11 @@ public class VanillaStyleOreFeature extends OreFeatureBase { public static final VanillaStyleOreFeature INSTANCE = new VanillaStyleOreFeature(); - public VanillaStyleOreFeature() { - setRegistryName("config_driven_ore"); - } - // From OreFeature, slight adjustments public boolean place(FeaturePlaceContext pContext) { - Random random = pContext.random(); + RandomSource random = pContext.random(); BlockPos blockpos = pContext.origin(); WorldGenLevel worldgenlevel = pContext.level(); ConfigDrivenOreConfiguration oreconfiguration = pContext.config(); @@ -55,7 +51,7 @@ public class VanillaStyleOreFeature extends OreFeatureBase { return false; } - protected boolean doPlace(WorldGenLevel pLevel, Random pRandom, ConfigDrivenOreConfiguration pConfig, double pMinX, + protected boolean doPlace(WorldGenLevel pLevel, RandomSource pRandom, ConfigDrivenOreConfiguration pConfig, double pMinX, double pMaxX, double pMinZ, double pMaxZ, double pMinY, double pMaxY, int pX, int pY, int pZ, int pWidth, int pHeight) { int i = 0; diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 5bdb2b8e7..15cb95eaa 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[40,)" +loaderVersion="[41,)" issueTrackerURL="https://github.com/Creators-of-Create/Create/issues" license="MIT" @@ -19,14 +19,14 @@ Technology that empowers the player.''' [[dependencies.create]] modId="forge" mandatory=true - versionRange="[40.1.60,)" + versionRange="[41.0.110,)" ordering="NONE" side="BOTH" [[dependencies.create]] modId="minecraft" mandatory=true - versionRange="[1.18.2,1.19)" + versionRange="[1.19,1.20)" ordering="NONE" side="BOTH" diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index f3af76190..774bf7439 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -23,7 +23,6 @@ "GameRendererMixin", "HeavyBootsOnPlayerMixin", "MapRendererMixin", - "ModelDataRefreshMixin", "WindowResizeMixin", "accessor.AgeableListModelAccessor", "accessor.GameRendererAccessor", diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 1101e6add..69f140c3b 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,8 +1,8 @@ { "pack": { "description": "Create resources", - "pack_format": 9, - "forge:resource_pack_format": 8, - "forge:data_pack_format": 9 + "pack_format": 10, + "forge:resource_pack_format": 9, + "forge:data_pack_format": 10 } } diff --git a/src/main/resources/resourcepacks/legacy_copper/pack.mcmeta b/src/main/resources/resourcepacks/legacy_copper/pack.mcmeta index 6e8fb911b..7eb0e75f5 100644 --- a/src/main/resources/resourcepacks/legacy_copper/pack.mcmeta +++ b/src/main/resources/resourcepacks/legacy_copper/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "pack_format": 8, + "pack_format": 9, "description": "Replacement textures for Vanilla Copper" } }