From 33dbfbe633d8ec70381e6f43b5b0ac05d42f1dd2 Mon Sep 17 00:00:00 2001 From: Aleksey Date: Mon, 12 Apr 2021 16:34:13 +0300 Subject: [PATCH] Continue migration --- .../betterend/blocks/BlueVineSeedBlock.java | 6 +- .../ru/betterend/blocks/BrimstoneBlock.java | 2 +- .../betterend/blocks/BulbVineSeedBlock.java | 4 +- .../blocks/CavePumpkinVineBlock.java | 4 +- .../ru/betterend/blocks/CharniaBlock.java | 2 +- .../blocks/DragonTreeSaplingBlock.java | 2 +- .../ru/betterend/blocks/EmeraldIceBlock.java | 4 +- .../ru/betterend/blocks/EndLilyBlock.java | 2 +- .../ru/betterend/blocks/EndLilySeedBlock.java | 8 +- .../betterend/blocks/EndLotusSeedBlock.java | 14 +- .../betterend/blocks/EndLotusStemBlock.java | 2 +- .../ru/betterend/blocks/EndStoneSmelter.java | 6 +- .../ru/betterend/blocks/EndTerrainBlock.java | 4 +- .../ru/betterend/blocks/EternalPedestal.java | 4 +- .../blocks/EternalRunedFlavolite.java | 4 +- .../blocks/GlowingPillarSeedBlock.java | 4 +- .../blocks/HelixTreeSaplingBlock.java | 2 +- .../blocks/HydraluxSaplingBlock.java | 4 +- .../blocks/HydrothermalVentBlock.java | 2 +- .../blocks/LacugroveSaplingBlock.java | 2 +- .../betterend/blocks/LanceleafSeedBlock.java | 4 +- .../betterend/blocks/LumecornSeedBlock.java | 6 +- .../betterend/blocks/MengerSpongeBlock.java | 2 +- .../blocks/MengerSpongeWetBlock.java | 8 +- .../blocks/MossyGlowshroomSaplingBlock.java | 2 +- .../ru/betterend/blocks/MurkweedBlock.java | 8 +- .../ru/betterend/blocks/NeonCactusBlock.java | 2 +- .../blocks/PythadendronSaplingBlock.java | 2 +- .../betterend/blocks/RespawnObeliskBlock.java | 6 +- .../betterend/blocks/SilkMothHiveBlock.java | 4 +- .../betterend/blocks/SilkMothNestBlock.java | 6 +- .../betterend/blocks/SmallAmaranitaBlock.java | 4 +- .../blocks/SmallJellyshroomBlock.java | 2 +- .../blocks/SmaragdantCrystalShardBlock.java | 2 +- .../betterend/blocks/SulphurCrystalBlock.java | 2 +- .../betterend/blocks/TenaneaSaplingBlock.java | 2 +- .../blocks/UmbrellaTreeClusterBlock.java | 4 +- .../blocks/UmbrellaTreeSaplingBlock.java | 2 +- .../blocks/VentBubbleColumnBlock.java | 2 +- .../blocks/basis/EndBarrelBlock.java | 4 +- .../blocks/basis/EndBlockStripableLogLog.java | 4 +- .../blocks/basis/EndFurnaceBlock.java | 4 +- .../blocks/basis/EndLadderBlock.java | 2 +- .../blocks/basis/EndLanternBlock.java | 2 +- .../blocks/basis/EndPlantWithAgeBlock.java | 4 +- .../betterend/blocks/basis/EndSignBlock.java | 8 +- .../basis/EndUnderwaterWallPlantBlock.java | 2 +- .../blocks/basis/FeatureSaplingBlock.java | 4 +- .../ru/betterend/blocks/basis/FurBlock.java | 8 +- .../betterend/blocks/basis/PedestalBlock.java | 6 +- .../blocks/basis/StalactiteBlock.java | 2 +- .../blocks/basis/StrippableBarkBlock.java | 4 +- .../blocks/basis/TripleTerrainBlock.java | 4 +- .../blocks/basis/UnderwaterPlantBlock.java | 2 +- .../basis/UnderwaterPlantWithAgeBlock.java | 4 +- .../blocks/basis/UpDownPlantBlock.java | 4 +- .../blocks/complex/ColoredMaterial.java | 6 +- .../blocks/complex/WoodenMaterial.java | 4 +- .../blocks/entities/EBarrelBlockEntity.java | 10 +- .../entities/EndStoneSmelterBlockEntity.java | 10 +- .../blocks/entities/PedestalBlockEntity.java | 4 +- .../render/EndChestBlockEntityRenderer.java | 2 +- .../render/EndSignBlockEntityRenderer.java | 2 +- .../entities/render/PedestalItemRenderer.java | 6 +- .../gui/EndStoneSmelterScreenHandler.java | 6 +- .../client/gui/slot/SmelterOutputSlot.java | 8 +- .../betterend/client/render/BeamRenderer.java | 2 +- .../client/render/EndCrystalRenderer.java | 2 +- .../client/render/EternalCrystalRenderer.java | 2 +- .../java/ru/betterend/effects/EndPotions.java | 16 +- .../betterend/effects/EndStatusEffects.java | 8 +- .../effects/status/EndVeilEffect.java | 8 +- .../ru/betterend/entity/CubozoaEntity.java | 26 ++-- .../ru/betterend/entity/DragonflyEntity.java | 14 +- .../ru/betterend/entity/EndFishEntity.java | 14 +- .../ru/betterend/entity/EndSlimeEntity.java | 48 +++--- .../betterend/entity/ShadowWalkerEntity.java | 28 ++-- .../ru/betterend/entity/SilkMothEntity.java | 18 +-- .../FlamboyantRefabricatedIntegration.java | 6 +- .../betterend/integration/ModIntegration.java | 20 +-- .../integration/NourishIntegration.java | 8 +- .../integration/byg/BYGIntegration.java | 4 +- .../integration/byg/biomes/EterialGrove.java | 4 +- .../byg/biomes/NightshadeRedwoods.java | 4 +- .../byg/biomes/OldBulbisGardens.java | 12 +- .../byg/features/BigEtherTreeFeature.java | 14 +- .../features/GreatNightshadeTreeFeature.java | 12 +- .../NightshadeRedwoodTreeFeature.java | 12 +- .../byg/features/OldBulbisTreeFeature.java | 26 ++-- .../rei/REIAlloyingFuelCategory.java | 4 +- .../ru/betterend/interfaces/IBiomeArray.java | 2 +- .../ru/betterend/interfaces/IBiomeList.java | 6 +- .../java/ru/betterend/item/DrinkItem.java | 8 +- .../ru/betterend/item/EnchantedPetalItem.java | 2 +- .../java/ru/betterend/item/EndArmorItem.java | 16 +- .../ru/betterend/item/EternalCrystalItem.java | 2 +- .../java/ru/betterend/item/GuideBookItem.java | 6 +- .../ru/betterend/item/PatternedDiscItem.java | 9 +- .../item/material/EndArmorMaterial.java | 2 +- .../ru/betterend/item/tool/EndHammerItem.java | 63 ++++---- .../mixin/client/BackgroundRendererMixin.java | 12 +- .../mixin/client/BiomeColorsMixin.java | 4 +- .../client/ClientPlayNetworkHandlerMixin.java | 4 +- .../mixin/client/MinecraftClientMixin.java | 4 +- .../mixin/client/MusicTrackerMixin.java | 4 +- .../mixin/client/WorldRendererMixin.java | 8 +- .../mixin/common/AnvilScreenHandlerMixin.java | 8 +- .../mixin/common/ArmorItemAccessor.java | 8 +- .../mixin/common/BiomeArrayMixin.java | 2 +- .../mixin/common/BoneMealItemMixin.java | 2 +- .../mixin/common/BrewingAccessor.java | 2 +- .../mixin/common/ChorusPlantFeatureMixin.java | 12 +- .../mixin/common/ComposterBlockAccessor.java | 4 +- .../common/CraftingScreenHandlerMixin.java | 4 +- .../mixin/common/DimensionTypeMixin.java | 4 +- .../mixin/common/EndCityFeatureMixin.java | 20 +-- .../mixin/common/EndPortalFeatureMixin.java | 16 +- .../mixin/common/EndSpikeFeatureMixin.java | 17 +- .../mixin/common/EndermanEntityMixin.java | 8 +- .../betterend/mixin/common/EntityMixin.java | 2 +- .../common/GenerationSettingsAccessor.java | 10 +- .../mixin/common/HostileEntityMixin.java | 7 +- .../mixin/common/LivingEntityMixin.java | 20 +-- .../mixin/common/MinecraftServerMixin.java | 4 +- .../common/NoiseChunkGeneratorMixin.java | 24 +-- .../mixin/common/PlayerEntityMixin.java | 4 +- .../mixin/common/PlayerManagerMixin.java | 20 +-- .../mixin/common/ServerPlayerEntityMixin.java | 15 +- .../mixin/common/ServerWorldMixin.java | 6 +- .../common/WeightedBiomePickerMixin.java | 21 +-- .../java/ru/betterend/patterns/Patterns.java | 6 +- .../ru/betterend/recipe/CraftingRecipes.java | 2 +- .../recipe/builders/AlloyingRecipe.java | 14 +- .../recipe/builders/AnvilRecipe.java | 20 +-- .../recipe/builders/FurnaceRecipe.java | 8 +- .../betterend/recipe/builders/GridRecipe.java | 10 +- .../recipe/builders/InfusionRecipe.java | 8 +- .../recipe/builders/SmithingTableRecipe.java | 10 +- .../java/ru/betterend/registry/EndBiomes.java | 66 ++++---- .../java/ru/betterend/registry/EndBlocks.java | 2 +- .../ru/betterend/registry/EndFeatures.java | 4 +- .../java/ru/betterend/registry/EndItems.java | 115 +++++++------- .../java/ru/betterend/registry/EndSounds.java | 2 +- .../ru/betterend/registry/EndStructures.java | 4 +- .../java/ru/betterend/registry/EndTags.java | 42 ++--- .../ru/betterend/rituals/EternalRitual.java | 8 +- .../ru/betterend/rituals/InfusionRitual.java | 4 +- .../java/ru/betterend/util/BlocksHelper.java | 6 +- .../java/ru/betterend/util/ColorUtil.java | 6 +- .../ru/betterend/util/FeaturesHelper.java | 6 +- src/main/java/ru/betterend/util/MHelper.java | 145 +++++++++--------- .../java/ru/betterend/util/RecipeHelper.java | 12 +- .../java/ru/betterend/util/SplineHelper.java | 46 +++--- .../ru/betterend/util/StructureHelper.java | 26 ++-- .../java/ru/betterend/util/TagHelper.java | 44 +++--- src/main/java/ru/betterend/util/sdf/SDF.java | 30 ++-- .../util/sdf/operator/SDFCoordModify.java | 6 +- .../util/sdf/operator/SDFDisplacement.java | 6 +- .../util/sdf/operator/SDFRotation.java | 6 +- .../world/biome/BiomeDefinition.java | 14 +- .../ru/betterend/world/biome/EndBiome.java | 2 +- .../world/biome/cave/EndCaveBiome.java | 2 +- .../world/biome/land/AmberLandBiome.java | 2 +- .../world/biome/land/ChorusForestBiome.java | 4 +- .../world/biome/land/DryShrublandBiome.java | 2 +- .../world/biome/land/DustWastelandsBiome.java | 2 +- .../biome/land/FoggyMushroomlandBiome.java | 2 +- .../biome/land/GlowingGrasslandsBiome.java | 2 +- .../world/biome/land/LanternWoodsBiome.java | 2 +- .../world/biome/land/NeonOasisBiome.java | 2 +- .../world/biome/land/ShadowForestBiome.java | 2 +- .../world/biome/land/UmbrellaJungleBiome.java | 2 +- .../world/features/BiomeIslandFeature.java | 14 +- .../world/features/BlueVineFeature.java | 7 +- .../world/features/CavePlantFeature.java | 7 +- .../world/features/CavePumpkinFeature.java | 10 +- .../world/features/CrashedShipFeature.java | 22 +-- .../world/features/DefaultFeature.java | 34 ++-- .../world/features/DoublePlantFeature.java | 7 +- .../betterend/world/features/EndFeature.java | 32 ++-- .../world/features/EndLilyFeature.java | 4 +- .../world/features/EndLotusFeature.java | 4 +- .../world/features/EndLotusLeafFeature.java | 13 +- .../world/features/FilaluxFeature.java | 4 +- .../features/FullHeightScatterFeature.java | 14 +- .../world/features/GlowPillarFeature.java | 7 +- .../world/features/HydraluxFeature.java | 4 +- .../features/InvertedScatterFeature.java | 14 +- .../world/features/LanceleafFeature.java | 7 +- .../betterend/world/features/ListFeature.java | 14 +- .../world/features/MengerSpongeFeature.java | 4 +- .../world/features/NBTStructureFeature.java | 34 ++-- .../world/features/NeonCactusFeature.java | 12 +- .../world/features/ScatterFeature.java | 20 +-- .../world/features/SilkMothNestFeature.java | 12 +- .../SingleInvertedScatterFeature.java | 7 +- .../world/features/SinglePlantFeature.java | 9 +- .../world/features/SkyScatterFeature.java | 11 +- .../features/UnderwaterPlantFeature.java | 7 +- .../features/UnderwaterPlantScatter.java | 15 +- .../betterend/world/features/VineFeature.java | 9 +- .../world/features/WallPlantFeature.java | 6 +- .../world/features/WallPlantOnLogFeature.java | 4 +- .../world/features/WallScatterFeature.java | 14 +- .../world/features/bushes/BushFeature.java | 12 +- .../features/bushes/BushWithOuterFeature.java | 12 +- .../bushes/LargeAmaranitaFeature.java | 10 +- .../world/features/bushes/Lumecorn.java | 10 +- .../features/bushes/TenaneaBushFeature.java | 12 +- .../terrain/BigAuroraCrystalFeature.java | 12 +- .../features/terrain/EndLakeFeature.java | 15 +- .../features/terrain/FallenPillarFeature.java | 14 +- .../terrain/FloatingSpireFeature.java | 21 +-- .../world/features/terrain/GeyserFeature.java | 24 +-- .../features/terrain/IceStarFeature.java | 12 +- .../terrain/ObsidianBoulderFeature.java | 14 +- .../ObsidianPillarBasementFeature.java | 14 +- .../features/terrain/OreLayerFeature.java | 16 +- .../features/terrain/SingleBlockFeature.java | 10 +- .../terrain/SmaragdantCrystalFeature.java | 10 +- .../world/features/terrain/SpireFeature.java | 31 ++-- .../features/terrain/StalactiteFeature.java | 10 +- .../features/terrain/SulphurHillFeature.java | 12 +- .../terrain/SulphuricCaveFeature.java | 18 +-- .../terrain/SulphuricLakeFeature.java | 30 ++-- .../features/terrain/SurfaceVentFeature.java | 10 +- .../caves/CaveChunkPopulatorFeature.java | 29 ++-- .../terrain/caves/EndCaveFeature.java | 46 +++--- .../terrain/caves/RoundCaveFeature.java | 6 +- .../terrain/caves/TunelCaveFeature.java | 12 +- .../features/trees/DragonTreeFeature.java | 22 ++- .../trees/GiganticAmaranitaFeature.java | 14 +- .../features/trees/HelixTreeFeature.java | 14 +- .../features/trees/JellyshroomFeature.java | 14 +- .../features/trees/LacugroveFeature.java | 17 +- .../world/features/trees/LucerniaFeature.java | 22 +-- .../trees/MossyGlowshroomFeature.java | 12 +- .../trees/PythadendronTreeFeature.java | 18 +-- .../world/features/trees/TenaneaFeature.java | 19 ++- .../features/trees/UmbrellaTreeFeature.java | 26 ++-- .../world/generator/BetterEndBiomeSource.java | 8 +- .../world/generator/TerrainGenerator.java | 2 +- .../processors/TerrainStructureProcessor.java | 4 +- .../world/structures/EndStructureFeature.java | 16 +- .../world/structures/StructureWorld.java | 4 +- .../features/EternalPortalStructure.java | 20 +-- .../features/FeatureBaseStructure.java | 14 +- .../features/GiantIceStarStructure.java | 20 +-- .../GiantMossyGlowshroomStructure.java | 2 +- .../features/MegaLakeSmallStructure.java | 18 +-- .../features/MegaLakeStructure.java | 18 +-- .../features/MountainStructure.java | 18 +-- .../features/PaintedMountainStructure.java | 18 +-- .../features/SDFStructureFeature.java | 18 +-- .../world/structures/piece/CavePiece.java | 8 +- .../piece/CrystalMountainPiece.java | 14 +- .../world/structures/piece/LakePiece.java | 26 ++-- .../world/structures/piece/MountainPiece.java | 10 +- .../world/structures/piece/NBTPiece.java | 8 +- .../piece/PaintedMountainPiece.java | 10 +- .../world/structures/piece/VoxelPiece.java | 8 +- .../surface/DoubleBlockSurfaceBuilder.java | 2 +- .../surface/SulphuricSurfaceBuilder.java | 2 +- 263 files changed, 1450 insertions(+), 1486 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java index f5ff9a39..5c8e3b99 100644 --- a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.AbstractBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.blocks.basis.FurBlock; @@ -16,7 +16,7 @@ import ru.betterend.util.MHelper; public class BlueVineSeedBlock extends EndPlantWithAgeBlock { @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { int height = MHelper.randRange(2, 5, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height + 1) { @@ -33,7 +33,7 @@ public class BlueVineSeedBlock extends EndPlantWithAgeBlock { placeLantern(world, pos.up(height + 1)); } - private void placeLantern(StructureWorldAccess world, BlockPos pos) { + private void placeLantern(WorldGenLevel world, BlockPos pos) { BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.BLUE_VINE_LANTERN.defaultBlockState().with(BlueVineLanternBlock.NATURAL, true)); for (Direction dir : BlocksHelper.HORIZONTAL) { diff --git a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java index 804b2442..50f5439a 100644 --- a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java +++ b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemStack; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.state.StateDefinition; diff --git a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java index adc98069..bbcb470e 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.tags.BlockTags; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.WorldView; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; @@ -21,7 +21,7 @@ public class BulbVineSeedBlock extends EndPlantWithAgeBlock { } @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { int h = BlocksHelper.downRay(world, pos, random.nextInt(24)) - 1; if (h > 2) { BlocksHelper.setWithoutUpdate(world, pos, diff --git a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java index 9402a564..592f5de0 100644 --- a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java +++ b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java @@ -11,7 +11,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.WorldView; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; @@ -45,7 +45,7 @@ public class CavePumpkinVineBlock extends EndPlantWithAgeBlock { } @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { } @Override diff --git a/src/main/java/ru/betterend/blocks/CharniaBlock.java b/src/main/java/ru/betterend/blocks/CharniaBlock.java index d6279ce6..ca03ed0b 100644 --- a/src/main/java/ru/betterend/blocks/CharniaBlock.java +++ b/src/main/java/ru/betterend/blocks/CharniaBlock.java @@ -1,7 +1,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.WorldView; diff --git a/src/main/java/ru/betterend/blocks/DragonTreeSaplingBlock.java b/src/main/java/ru/betterend/blocks/DragonTreeSaplingBlock.java index 258f1733..7d909473 100644 --- a/src/main/java/ru/betterend/blocks/DragonTreeSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/DragonTreeSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java index f428f331..dabdbeca 100644 --- a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.block.TransparentBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.server.level.ServerLevel; @@ -40,7 +40,7 @@ public class EmeraldIceBlock extends TransparentBlock implements IRenderTypeable } @Override - public void afterBreak(Level world, PlayerEntity player, BlockPos pos, BlockState state, + public void afterBreak(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { super.afterBreak(world, player, pos, state, blockEntity, stack); if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) == 0) { diff --git a/src/main/java/ru/betterend/blocks/EndLilyBlock.java b/src/main/java/ru/betterend/blocks/EndLilyBlock.java index 3d4a8ae7..e6f300ee 100644 --- a/src/main/java/ru/betterend/blocks/EndLilyBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilyBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.block.SoundType; diff --git a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java index 86173da4..aa158218 100644 --- a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java @@ -2,9 +2,9 @@ package ru.betterend.blocks; import java.util.Random; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.UnderwaterPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -12,7 +12,7 @@ import ru.betterend.util.BlocksHelper; public class EndLilySeedBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(StructureWorldAccess world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, Random random, BlockPos pos) { if (canGrow(world, pos)) { BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.END_LILY.defaultBlockState().with(EndLilyBlock.SHAPE, TripleShape.BOTTOM)); @@ -27,7 +27,7 @@ public class EndLilySeedBlock extends UnderwaterPlantWithAgeBlock { } } - private boolean canGrow(StructureWorldAccess world, BlockPos pos) { + private boolean canGrow(WorldGenLevel world, BlockPos pos) { BlockPos up = pos.up(); while (world.getBlockState(up).getFluidState().getFluid().equals(Fluids.WATER.getStill())) { up = up.up(); diff --git a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java index ebcfd741..c812c3b4 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java @@ -3,11 +3,11 @@ package ru.betterend.blocks; import java.util.Random; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.UnderwaterPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -15,7 +15,7 @@ import ru.betterend.util.BlocksHelper; public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(StructureWorldAccess world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, Random random, BlockPos pos) { if (canGrow(world, pos)) { BlockState startLeaf = EndBlocks.END_LOTUS_STEM.defaultBlockState().with(EndLotusStemBlock.LEAF, true); BlockState roots = EndBlocks.END_LOTUS_STEM.defaultBlockState() @@ -34,7 +34,7 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { int height = random.nextBoolean() ? 0 : random.nextBoolean() ? 1 : random.nextBoolean() ? 1 : -1; TripleShape shape = (height == 0) ? TripleShape.TOP : TripleShape.MIDDLE; Direction dir = BlocksHelper.randomHorizontal(random); - BlockPos leafCenter = bpos.toImmutable().offset(dir); + BlockPos leafCenter = bpos.immutable().offset(dir); if (hasLeaf(world, leafCenter)) { generateLeaf(world, leafCenter); BlocksHelper.setWithoutUpdate(world, bpos, @@ -79,7 +79,7 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { } } - private boolean canGrow(StructureWorldAccess world, BlockPos pos) { + private boolean canGrow(WorldGenLevel world, BlockPos pos) { MutableBlockPos bpos = new MutableBlockPos(); bpos.set(pos); while (world.getBlockState(bpos).getFluidState().getFluid().equals(Fluids.WATER.getStill())) { @@ -88,7 +88,7 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { return world.isAir(bpos) && world.isAir(bpos.up()); } - private void generateLeaf(StructureWorldAccess world, BlockPos pos) { + private void generateLeaf(WorldGenLevel world, BlockPos pos) { MutableBlockPos p = new MutableBlockPos(); BlockState leaf = EndBlocks.END_LOTUS_LEAF.defaultBlockState(); BlocksHelper.setWithoutUpdate(world, pos, leaf.with(EndLotusLeafBlock.SHAPE, TripleShape.BOTTOM)); @@ -104,7 +104,7 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { } } - private boolean hasLeaf(StructureWorldAccess world, BlockPos pos) { + private boolean hasLeaf(WorldGenLevel world, BlockPos pos) { MutableBlockPos p = new MutableBlockPos(); p.setY(pos.getY()); int count = 0; diff --git a/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java b/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java index 89506156..5e0e06eb 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusStemBlock.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.Waterloggable; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.state.property.BooleanProperty; diff --git a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java index 9fb70e5a..bdcf1674 100644 --- a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java +++ b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.block.HorizontalFacingBlock; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; @@ -52,7 +52,7 @@ public class EndStoneSmelter extends BaseBlockWithEntity { this.setDefaultState(this.stateManager.defaultBlockState().with(FACING, Direction.NORTH).with(LIT, false)); } - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (world.isClientSide) { return ActionResult.SUCCESS; @@ -62,7 +62,7 @@ public class EndStoneSmelter extends BaseBlockWithEntity { } } - private void openScreen(Level world, BlockPos pos, PlayerEntity player) { + private void openScreen(Level world, BlockPos pos, Player player) { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof EndStoneSmelterBlockEntity) { player.openHandledScreen((EndStoneSmelterBlockEntity) blockEntity); diff --git a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java index 6b98418e..765f1a27 100644 --- a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.block.SnowBlock; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; @@ -50,7 +50,7 @@ public class EndTerrainBlock extends BlockBase { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (pathBlock != null && player.getMainHandStack().getItem().isIn(FabricToolTags.SHOVELS)) { world.playLocalSound(player, pos, SoundEvents.ITEM_SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/ru/betterend/blocks/EternalPedestal.java b/src/main/java/ru/betterend/blocks/EternalPedestal.java index 3344dc76..fb17fd27 100644 --- a/src/main/java/ru/betterend/blocks/EternalPedestal.java +++ b/src/main/java/ru/betterend/blocks/EternalPedestal.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; @@ -86,7 +86,7 @@ public class EternalPedestal extends PedestalBlock { } @Override - public float calcBlockBreakingDelta(BlockState state, PlayerEntity player, BlockView world, BlockPos pos) { + public float calcBlockBreakingDelta(BlockState state, Player player, BlockView world, BlockPos pos) { return 0.0F; } diff --git a/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java b/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java index f1c505d9..a4590b69 100644 --- a/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java +++ b/src/main/java/ru/betterend/blocks/EternalRunedFlavolite.java @@ -6,7 +6,7 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.core.BlockPos; @@ -16,7 +16,7 @@ import net.minecraft.world.explosion.Explosion; public class EternalRunedFlavolite extends RunedFlavolite { @Override - public float calcBlockBreakingDelta(BlockState state, PlayerEntity player, BlockView world, BlockPos pos) { + public float calcBlockBreakingDelta(BlockState state, Player player, BlockView world, BlockPos pos) { return 0.0F; } diff --git a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java index bd8fcb81..e3c2e41d 100644 --- a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java @@ -12,7 +12,7 @@ import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -27,7 +27,7 @@ public class GlowingPillarSeedBlock extends EndPlantWithAgeBlock { } @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { int height = MHelper.randRange(1, 2, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height) { diff --git a/src/main/java/ru/betterend/blocks/HelixTreeSaplingBlock.java b/src/main/java/ru/betterend/blocks/HelixTreeSaplingBlock.java index 0bce2c4c..283cd3dc 100644 --- a/src/main/java/ru/betterend/blocks/HelixTreeSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/HelixTreeSaplingBlock.java @@ -1,6 +1,6 @@ package ru.betterend.blocks; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java index 05b7696e..2e1171c3 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.HydraluxShape; import ru.betterend.blocks.basis.UnderwaterPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -15,7 +15,7 @@ import ru.betterend.util.MHelper; public class HydraluxSaplingBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(StructureWorldAccess world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, Random random, BlockPos pos) { int h = MHelper.randRange(4, 8, random); MutableBlockPos mut = new MutableBlockPos().set(pos); diff --git a/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java b/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java index 999ca172..917db1b1 100644 --- a/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java +++ b/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java @@ -20,7 +20,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.core.particles.ParticleTypes; diff --git a/src/main/java/ru/betterend/blocks/LacugroveSaplingBlock.java b/src/main/java/ru/betterend/blocks/LacugroveSaplingBlock.java index e737242a..403485c1 100644 --- a/src/main/java/ru/betterend/blocks/LacugroveSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/LacugroveSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java index 8f0ca538..4cf6142f 100644 --- a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.PentaShape; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -16,7 +16,7 @@ import ru.betterend.util.MHelper; public class LanceleafSeedBlock extends EndPlantWithAgeBlock { @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { int height = MHelper.randRange(4, 6, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height + 1) { diff --git a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java index 85b05d0e..9046228d 100644 --- a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java @@ -5,15 +5,15 @@ import java.util.Random; import net.minecraft.world.level.block.AbstractBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; public class LumecornSeedBlock extends EndPlantWithAgeBlock { @Override - public void growAdult(StructureWorldAccess world, Random random, BlockPos pos) { - EndFeatures.LUMECORN.getFeature().generate(world, null, random, pos, null); + public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + EndFeatures.LUMECORN.getFeature().place(world, null, random, pos, null); } @Override diff --git a/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java b/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java index 9d18449a..5454173d 100644 --- a/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java +++ b/src/main/java/ru/betterend/blocks/MengerSpongeBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.FluidDrainable; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.tags.FluidTags; import net.minecraft.util.Pair; import net.minecraft.core.BlockPos; diff --git a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java index 98c0e68b..4cab2fbc 100644 --- a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java +++ b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java @@ -8,9 +8,9 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.entity.ItemEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemStack; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundSource; @@ -35,7 +35,7 @@ public class MengerSpongeWetBlock extends BlockBaseNotFull implements IRenderTyp if (world.getDimension().isUltrawarm()) { world.setBlockAndUpdate(pos, EndBlocks.MENGER_SPONGE.defaultBlockState(), 3); world.syncWorldEvent(2009, pos, 0); - world.playLocalSound((PlayerEntity) null, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundSource.BLOCKS, 1.0F, + world.playLocalSound((Player) null, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundSource.BLOCKS, 1.0F, (1.0F + world.getRandom().nextFloat() * 0.2F) * 0.7F); } } @@ -80,7 +80,7 @@ public class MengerSpongeWetBlock extends BlockBaseNotFull implements IRenderTyp } @Override - public void onBreak(Level world, BlockPos pos, BlockState state, PlayerEntity player) { + public void onBreak(Level world, BlockPos pos, BlockState state, Player player) { BlocksHelper.setWithUpdate(world, pos, Blocks.AIR); if (!world.isClientSide()) { world.syncWorldEvent(2001, pos, getRawIdFromState(state)); diff --git a/src/main/java/ru/betterend/blocks/MossyGlowshroomSaplingBlock.java b/src/main/java/ru/betterend/blocks/MossyGlowshroomSaplingBlock.java index e6d6330e..3359b6be 100644 --- a/src/main/java/ru/betterend/blocks/MossyGlowshroomSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/MossyGlowshroomSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/MurkweedBlock.java b/src/main/java/ru/betterend/blocks/MurkweedBlock.java index f2c7f8b8..893fc86d 100644 --- a/src/main/java/ru/betterend/blocks/MurkweedBlock.java +++ b/src/main/java/ru/betterend/blocks/MurkweedBlock.java @@ -8,8 +8,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.pathing.NavigationType; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.effect.StatusEffects; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockGetter; @@ -30,8 +30,8 @@ public class MurkweedBlock extends EndPlantBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { - if (entity instanceof LivingEntity && !((LivingEntity) entity).hasStatusEffect(StatusEffects.BLINDNESS)) { - ((LivingEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.BLINDNESS, 50)); + if (entity instanceof LivingEntity && !((LivingEntity) entity).hasMobEffect(MobEffects.BLINDNESS)) { + ((LivingEntity) entity).addMobEffect(new MobEffectInstance(MobEffects.BLINDNESS, 50)); } } diff --git a/src/main/java/ru/betterend/blocks/NeonCactusBlock.java b/src/main/java/ru/betterend/blocks/NeonCactusBlock.java index eb3cb7e0..f0a95711 100644 --- a/src/main/java/ru/betterend/blocks/NeonCactusBlock.java +++ b/src/main/java/ru/betterend/blocks/NeonCactusBlock.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.Waterloggable; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.state.property.BooleanProperty; diff --git a/src/main/java/ru/betterend/blocks/PythadendronSaplingBlock.java b/src/main/java/ru/betterend/blocks/PythadendronSaplingBlock.java index fbb7dddd..55f92caa 100644 --- a/src/main/java/ru/betterend/blocks/PythadendronSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/PythadendronSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java index c69410ab..46579bd6 100644 --- a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java +++ b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java @@ -14,7 +14,7 @@ import net.minecraft.world.level.block.ShapeContext; import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.item.ItemColor; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; @@ -113,7 +113,7 @@ public class RespawnObeliskBlock extends BlockBase implements IColorProvider, IR } @Override - public void onBreak(Level world, BlockPos pos, BlockState state, PlayerEntity player) { + public void onBreak(Level world, BlockPos pos, BlockState state, Player player) { if (player.isCreative()) { TripleShape shape = state.getValue(SHAPE); if (shape == TripleShape.MIDDLE) { @@ -152,7 +152,7 @@ public class RespawnObeliskBlock extends BlockBase implements IColorProvider, IR } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { ItemStack itemStack = player.getStackInHand(hand); boolean canActivate = itemStack.getItem() == EndItems.AMBER_GEM && itemStack.getCount() > 5; diff --git a/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java b/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java index 2c09ec3e..fa827811 100644 --- a/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java +++ b/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.world.entity.ItemEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.server.level.ServerLevel; @@ -89,7 +89,7 @@ public class SilkMothHiveBlock extends BlockBase { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (hand == Hand.MAIN_HAND) { ItemStack stack = player.getMainHandStack(); diff --git a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java index 3feee50d..7d1eda7b 100644 --- a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java +++ b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.entity.ItemEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; @@ -112,7 +112,7 @@ public class SilkMothNestBlock extends BlockBase implements IRenderTypeable { } @Override - public void onBreak(Level world, BlockPos pos, BlockState state, PlayerEntity player) { + public void onBreak(Level world, BlockPos pos, BlockState state, Player player) { if (!state.getValue(ACTIVE) && player.isCreative()) { BlocksHelper.setWithUpdate(world, pos.below(), Blocks.AIR); } @@ -151,7 +151,7 @@ public class SilkMothNestBlock extends BlockBase implements IRenderTypeable { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (hand == Hand.MAIN_HAND) { ItemStack stack = player.getMainHandStack(); diff --git a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java index 9d3092fe..a3c23dfc 100644 --- a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java @@ -30,7 +30,7 @@ public class SmallAmaranitaBlock extends EndPlantBlock { public void grow(ServerLevel world, Random random, BlockPos pos, BlockState state) { BlockPos bigPos = growBig(world, pos); if (bigPos != null) { - if (EndFeatures.GIGANTIC_AMARANITA.getFeature().generate(world, null, random, bigPos, null)) { + if (EndFeatures.GIGANTIC_AMARANITA.getFeature().place(world, null, random, bigPos, null)) { replaceMushroom(world, bigPos); replaceMushroom(world, bigPos.south()); replaceMushroom(world, bigPos.east()); @@ -38,7 +38,7 @@ public class SmallAmaranitaBlock extends EndPlantBlock { } return; } - EndFeatures.LARGE_AMARANITA.getFeature().generate(world, null, random, pos, null); + EndFeatures.LARGE_AMARANITA.getFeature().place(world, null, random, pos, null); } @Override diff --git a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java index 4432dd5c..66213bb0 100644 --- a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java @@ -95,6 +95,6 @@ public class SmallJellyshroomBlock extends AttachedBlock implements IRenderTypea @Override public void grow(ServerLevel world, Random random, BlockPos pos, BlockState state) { BlocksHelper.setWithUpdate(world, pos, Blocks.AIR); - EndFeatures.JELLYSHROOM.getFeature().generate(world, null, random, pos, null); + EndFeatures.JELLYSHROOM.getFeature().place(world, null, random, pos, null); } } diff --git a/src/main/java/ru/betterend/blocks/SmaragdantCrystalShardBlock.java b/src/main/java/ru/betterend/blocks/SmaragdantCrystalShardBlock.java index b15ac81c..3edebc7c 100644 --- a/src/main/java/ru/betterend/blocks/SmaragdantCrystalShardBlock.java +++ b/src/main/java/ru/betterend/blocks/SmaragdantCrystalShardBlock.java @@ -15,7 +15,7 @@ import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.Waterloggable; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.StateDefinition; diff --git a/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java b/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java index 4bc940b3..ea73eb86 100644 --- a/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java @@ -18,7 +18,7 @@ import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.Waterloggable; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; diff --git a/src/main/java/ru/betterend/blocks/TenaneaSaplingBlock.java b/src/main/java/ru/betterend/blocks/TenaneaSaplingBlock.java index 1ba74736..77b0de8a 100644 --- a/src/main/java/ru/betterend/blocks/TenaneaSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/TenaneaSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java index 7b2139ec..d9d48e22 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterBlock.java @@ -5,7 +5,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.sounds.SoundSource; @@ -37,7 +37,7 @@ public class UmbrellaTreeClusterBlock extends BlockBase { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { ItemStack stack = player.getMainHandStack(); if (stack.getItem() == Items.GLASS_BOTTLE) { diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeSaplingBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeSaplingBlock.java index fc80eff0..47608d81 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeSaplingBlock.java @@ -3,7 +3,7 @@ package ru.betterend.blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.blocks.basis.FeatureSaplingBlock; import ru.betterend.client.render.ERenderLayer; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java b/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java index 8ce6c201..8664b136 100644 --- a/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java +++ b/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.entity.Entity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundSource; diff --git a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java index 63eb7bf7..6c00c5b5 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.mob.PiglinBrain; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.server.level.ServerLevel; @@ -48,7 +48,7 @@ public class EndBarrelBlock extends BarrelBlock implements BlockPatterned { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (world.isClientSide) { return ActionResult.SUCCESS; diff --git a/src/main/java/ru/betterend/blocks/basis/EndBlockStripableLogLog.java b/src/main/java/ru/betterend/blocks/basis/EndBlockStripableLogLog.java index 955e3d50..d7a62f60 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBlockStripableLogLog.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBlockStripableLogLog.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.block.RotatedPillarBlock; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundEvents; @@ -25,7 +25,7 @@ public class EndBlockStripableLogLog extends EndPillarBlock { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (player.getMainHandStack().getItem().isIn(FabricToolTags.AXES)) { world.playLocalSound(player, pos, SoundEvents.ITEM_AXE_STRIP, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java index 5015766d..a4666eb8 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.FurnaceBlock; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; @@ -42,7 +42,7 @@ public class EndFurnaceBlock extends FurnaceBlock implements BlockPatterned, IRe } @Override - protected void openScreen(Level world, BlockPos pos, PlayerEntity player) { + protected void openScreen(Level world, BlockPos pos, Player player) { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof EFurnaceBlockEntity) { player.openHandledScreen((NamedScreenHandlerFactory) blockEntity); diff --git a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java index f5f264f9..acc5ca29 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.HorizontalFacingBlock; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.state.property.BooleanProperty; diff --git a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java index dbbba91d..28505b8f 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLanternBlock.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.FluidFillable; import net.minecraft.world.level.block.Waterloggable; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.state.property.BooleanProperty; diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java index fcdd6240..f02774d4 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.Level; import ru.betterend.blocks.BlockProperties; @@ -33,7 +33,7 @@ public abstract class EndPlantWithAgeBlock extends EndPlantBlock { stateManager.add(AGE); } - public abstract void growAdult(StructureWorldAccess world, Random random, BlockPos pos); + public abstract void growAdult(WorldGenLevel world, Random random, BlockPos pos); @Override public void grow(ServerLevel world, Random random, BlockPos pos, BlockState state) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java b/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java index a5687f85..91b59a98 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java @@ -12,10 +12,10 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; @@ -79,10 +79,10 @@ public class EndSignBlock extends AbstractSignBlock implements BlockPatterned, I @Override public void onPlaced(Level world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { - if (placer != null && placer instanceof PlayerEntity) { + if (placer != null && placer instanceof Player) { ESignBlockEntity sign = (ESignBlockEntity) world.getBlockEntity(pos); if (!world.isClientSide) { - sign.setEditor((PlayerEntity) placer); + sign.setEditor((Player) placer); ((ServerPlayer) placer).networkHandler.sendPacket(new SignEditorOpenS2CPacket(pos)); } else { sign.setEditable(true); diff --git a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java index 482c14ca..e838ac46 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.FluidFillable; import net.minecraft.world.level.material.Material; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.block.SoundType; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockGetter; diff --git a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java index 3dbe80ba..d0527ed8 100644 --- a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java @@ -21,7 +21,7 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.client.render.ERenderLayer; import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.patterns.Patterns; @@ -73,7 +73,7 @@ public abstract class FeatureSaplingBlock extends BlockBaseNotFull implements Fe @Override public void grow(ServerLevel world, Random random, BlockPos pos, BlockState state) { - getFeature().generate(world, world.getChunkManager().getChunkGenerator(), random, pos, null); + getFeature().place(world, world.getChunkManager().getChunkGenerator(), random, pos, null); } @Override diff --git a/src/main/java/ru/betterend/blocks/basis/FurBlock.java b/src/main/java/ru/betterend/blocks/basis/FurBlock.java index 920717a5..bc516a93 100644 --- a/src/main/java/ru/betterend/blocks/basis/FurBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FurBlock.java @@ -13,7 +13,7 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; @@ -29,17 +29,17 @@ import ru.betterend.util.MHelper; public class FurBlock extends AttachedBlock implements IRenderTypeable { private static final EnumMap BOUNDING_SHAPES = Maps.newEnumMap(Direction.class); - private final ItemConvertible drop; + private final ItemLike drop; private final int dropChance; - public FurBlock(ItemConvertible drop, int light, int dropChance, boolean wet) { + public FurBlock(ItemLike drop, int light, int dropChance, boolean wet) { super(FabricBlockSettings.of(Material.REPLACEABLE_PLANT).breakByTool(FabricToolTags.SHEARS) .sounds(wet ? SoundType.WET_GRASS : SoundType.GRASS).luminance(light).breakByHand(true).noCollision()); this.drop = drop; this.dropChance = dropChance; } - public FurBlock(ItemConvertible drop, int dropChance) { + public FurBlock(ItemLike drop, int dropChance) { super(FabricBlockSettings.of(Material.REPLACEABLE_PLANT).breakByTool(FabricToolTags.SHEARS) .sounds(SoundType.GRASS).breakByHand(true).noCollision()); this.drop = drop; diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index abee8419..f884d6ef 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.block.BlockEntityProvider; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; @@ -100,7 +100,7 @@ public class PedestalBlock extends BlockBaseNotFull implements BlockEntityProvid } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (world.isClientSide || !state.is(this)) return ActionResult.CONSUME; @@ -286,7 +286,7 @@ public class PedestalBlock extends BlockBaseNotFull implements BlockEntityProvid for (int i = 2; i < Direction.values().length; i++) { dropPos = pos.relative(Direction.byId(i)); if (world.getBlockState(dropPos).isAir()) { - return dropPos.toImmutable(); + return dropPos.immutable(); } } return getDropPos(world, pos.up()); diff --git a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java index a3a0c88a..0de3cf81 100644 --- a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.block.Waterloggable; import net.minecraft.world.entity.LivingEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.state.StateDefinition; diff --git a/src/main/java/ru/betterend/blocks/basis/StrippableBarkBlock.java b/src/main/java/ru/betterend/blocks/basis/StrippableBarkBlock.java index 616484ce..f913b3d4 100644 --- a/src/main/java/ru/betterend/blocks/basis/StrippableBarkBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StrippableBarkBlock.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.block.RotatedPillarBlock; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundEvents; @@ -25,7 +25,7 @@ public class StrippableBarkBlock extends BarkBlock { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { if (player.getMainHandStack().getItem().isIn(FabricToolTags.AXES)) { world.playLocalSound(player, pos, SoundEvents.ITEM_AXE_STRIP, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java index 2c585512..2ecdbee6 100644 --- a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemPlacementContext; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.block.state.StateDefinition; @@ -68,7 +68,7 @@ public class TripleTerrainBlock extends EndTerrainBlock { } @Override - public ActionResult onUse(BlockState state, Level world, BlockPos pos, PlayerEntity player, Hand hand, + public ActionResult onUse(BlockState state, Level world, BlockPos pos, Player player, Hand hand, BlockHitResult hit) { TripleShape shape = state.getValue(SHAPE); if (shape == TripleShape.BOTTOM) { diff --git a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java index 524aec13..51eb7fd6 100644 --- a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantBlock.java @@ -20,7 +20,7 @@ import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.entity.ItemEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; diff --git a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantWithAgeBlock.java b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantWithAgeBlock.java index c695fda4..405daee8 100644 --- a/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantWithAgeBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/UnderwaterPlantWithAgeBlock.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties; public abstract class UnderwaterPlantWithAgeBlock extends UnderwaterPlantBlock { @@ -28,7 +28,7 @@ public abstract class UnderwaterPlantWithAgeBlock extends UnderwaterPlantBlock { stateManager.add(AGE); } - public abstract void grow(StructureWorldAccess world, Random random, BlockPos pos); + public abstract void grow(WorldGenLevel world, Random random, BlockPos pos); @Override public void grow(ServerLevel world, Random random, BlockPos pos, BlockState state) { diff --git a/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java index 37dcaa9f..b8ab9330 100644 --- a/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/UpDownPlantBlock.java @@ -14,7 +14,7 @@ import net.minecraft.world.level.block.ShapeContext; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.item.enchantment.Enchantments; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; @@ -85,7 +85,7 @@ public class UpDownPlantBlock extends BlockBaseNotFull implements IRenderTypeabl } @Override - public void afterBreak(Level world, PlayerEntity player, BlockPos pos, BlockState state, BlockEntity blockEntity, + public void afterBreak(Level world, Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack) { super.afterBreak(world, player, pos, state, blockEntity, stack); world.updateNeighbor(pos, Blocks.AIR, pos.below()); diff --git a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java b/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java index 52bad466..57f496dc 100644 --- a/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/ColoredMaterial.java @@ -9,7 +9,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.item.DyeItem; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.util.DyeColor; import net.minecraft.core.Registry; import ru.betterend.recipe.builders.GridRecipe; @@ -17,7 +17,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; public class ColoredMaterial { - private static final Map DYES = Maps.newHashMap(); + private static final Map DYES = Maps.newHashMap(); private static final Map COLORS = Maps.newHashMap(); private final Map colors = Maps.newHashMap(); @@ -26,7 +26,7 @@ public class ColoredMaterial { } public ColoredMaterial(Function constructor, Block source, Map colors, - Map dyes, boolean craftEight) { + Map dyes, boolean craftEight) { String id = Registry.BLOCK.getKey(source).getPath(); colors.forEach((color, name) -> { String blockName = id + "_" + name; diff --git a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java index b9d8b514..fc426b78 100644 --- a/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/WoodenMaterial.java @@ -62,8 +62,8 @@ public class WoodenMaterial { public final Block shelf; public final Block composter; - public final Tag.Identified logBlockTag; - public final Tag.Identified logItemTag; + public final Tag.Named logBlockTag; + public final Tag.Named logItemTag; public WoodenMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) { FabricBlockSettings materialPlanks = FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor); diff --git a/src/main/java/ru/betterend/blocks/entities/EBarrelBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EBarrelBlockEntity.java index 077ce206..1857c409 100644 --- a/src/main/java/ru/betterend/blocks/entities/EBarrelBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/EBarrelBlockEntity.java @@ -5,7 +5,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.ChestBlockEntity; import net.minecraft.world.level.block.entity.LootableContainerBlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; import net.minecraft.world.item.ItemStack; @@ -13,7 +13,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.screen.GenericContainerScreenHandler; import net.minecraft.screen.ScreenHandler; import net.minecraft.sounds.SoundSource; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; @@ -73,7 +73,7 @@ public class EBarrelBlockEntity extends LootableContainerBlockEntity { return GenericContainerScreenHandler.createGeneric9x3(syncId, playerInventory, this); } - public void onOpen(PlayerEntity player) { + public void onOpen(Player player) { if (!player.isSpectator()) { if (this.viewerCount < 0) { this.viewerCount = 0; @@ -117,7 +117,7 @@ public class EBarrelBlockEntity extends LootableContainerBlockEntity { } } - public void onClose(PlayerEntity player) { + public void onClose(Player player) { if (!player.isSpectator()) { --this.viewerCount; } @@ -132,7 +132,7 @@ public class EBarrelBlockEntity extends LootableContainerBlockEntity { double d = (double) this.pos.getX() + 0.5D + (double) vec3i.getX() / 2.0D; double e = (double) this.pos.getY() + 0.5D + (double) vec3i.getY() / 2.0D; double f = (double) this.pos.getZ() + 0.5D + (double) vec3i.getZ() / 2.0D; - this.world.playLocalSound((PlayerEntity) null, d, e, f, soundEvent, SoundSource.BLOCKS, 0.5F, + this.world.playLocalSound((Player) null, d, e, f, soundEvent, SoundSource.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java index 282bfd2c..9661b381 100644 --- a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java @@ -14,12 +14,12 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity; import net.minecraft.world.level.block.entity.LockableContainerBlockEntity; import net.minecraft.world.entity.ExperienceOrbEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; import net.minecraft.inventory.SidedInventory; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.nbt.CompoundTag; @@ -171,7 +171,7 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity return smeltTime; } - public void dropExperience(PlayerEntity player) { + public void dropExperience(Player player) { assert world != null; List> list = Lists.newArrayList(); for (Entry entry : this.recipesUsed.object2IntEntrySet()) { @@ -205,7 +205,7 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity } @Override - public boolean canPlayerUse(PlayerEntity player) { + public boolean canPlayerUse(Player player) { assert this.world != null; if (this.world.getBlockEntity(this.pos) != this) { return false; @@ -442,7 +442,7 @@ public class EndStoneSmelterBlockEntity extends LockableContainerBlockEntity return AVAILABLE_FUELS.containsKey(stack.getItem()) || getFabricFuel(stack) > 2000; } - public static void registerFuel(ItemConvertible fuel, int time) { + public static void registerFuel(ItemLike fuel, int time) { AVAILABLE_FUELS.put(fuel.asItem(), time); } diff --git a/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java index 01ffeab2..a8e6a7e9 100644 --- a/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/PedestalBlockEntity.java @@ -4,7 +4,7 @@ import net.fabricmc.fabric.api.block.entity.BlockEntityClientSerializable; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.inventory.Inventory; import net.minecraft.world.item.ItemStack; import net.minecraft.nbt.CompoundTag; @@ -97,7 +97,7 @@ public class PedestalBlockEntity extends BlockEntity implements Inventory, Ticka } @Override - public boolean canPlayerUse(PlayerEntity player) { + public boolean canPlayerUse(Player player) { return true; } diff --git a/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java index f63fba5f..24bc27b9 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/EndChestBlockEntityRenderer.java @@ -24,7 +24,7 @@ import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.LightmapCoordinatesRetriever; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.world.item.BlockItem; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.Direction; diff --git a/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java index 39d3e087..53eb67ee 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/EndSignBlockEntityRenderer.java @@ -21,7 +21,7 @@ import net.minecraft.client.render.block.entity.SignBlockEntityRenderer.SignMode import net.minecraft.client.texture.NativeImage; import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.world.item.BlockItem; import net.minecraft.text.OrderedText; import net.minecraft.resources.ResourceLocation; diff --git a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java index 16168716..9f876575 100644 --- a/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java +++ b/src/main/java/ru/betterend/blocks/entities/render/PedestalItemRenderer.java @@ -3,14 +3,14 @@ package ru.betterend.blocks.entities.render; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -47,7 +47,7 @@ public class PedestalItemRenderer extends BlockEn ItemStack activeItem = blockEntity.getStack(0); matrices.push(); - MinecraftClient minecraft = MinecraftClient.getInstance(); + Minecraft minecraft = Minecraft.getInstance(); BakedModel model = minecraft.getItemRenderer().getHeldItemModel(activeItem, world, null); Vector3f translate = model.getTransformation().ground.translation; PedestalBlock pedestal = (PedestalBlock) state.getBlock(); diff --git a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java index d9e084f8..c16100b6 100644 --- a/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java +++ b/src/main/java/ru/betterend/client/gui/EndStoneSmelterScreenHandler.java @@ -3,7 +3,7 @@ package ru.betterend.client.gui; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.PlayerInventory; import net.minecraft.inventory.Inventory; import net.minecraft.inventory.SimpleInventory; @@ -109,7 +109,7 @@ public class EndStoneSmelterScreenHandler extends AbstractRecipeScreenHandler StatusEffect registerEffect(String name, E effect) { + public static MobEffect registerEffect(String name, E effect) { return Registry.register(Registry.STATUS_EFFECT, BetterEnd.makeID(name), effect); } } diff --git a/src/main/java/ru/betterend/effects/status/EndVeilEffect.java b/src/main/java/ru/betterend/effects/status/EndVeilEffect.java index f0cc5079..b9dfce0f 100644 --- a/src/main/java/ru/betterend/effects/status/EndVeilEffect.java +++ b/src/main/java/ru/betterend/effects/status/EndVeilEffect.java @@ -1,12 +1,12 @@ package ru.betterend.effects.status; -import net.minecraft.world.entity.effect.StatusEffect; -import net.minecraft.world.entity.effect.StatusEffectType; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectType; -public class EndVeilEffect extends StatusEffect { +public class EndVeilEffect extends MobEffect { public EndVeilEffect() { - super(StatusEffectType.BENEFICIAL, 0x0D554A); + super(MobEffectType.BENEFICIAL, 0x0D554A); } @Override diff --git a/src/main/java/ru/betterend/entity/CubozoaEntity.java b/src/main/java/ru/betterend/entity/CubozoaEntity.java index d13c8919..c68d0cee 100644 --- a/src/main/java/ru/betterend/entity/CubozoaEntity.java +++ b/src/main/java/ru/betterend/entity/CubozoaEntity.java @@ -12,28 +12,28 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.SpawnReason; import net.minecraft.world.entity.ai.control.MoveControl; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.damage.DamageSource; import net.minecraft.world.entity.data.DataTracker; import net.minecraft.world.entity.data.TrackedData; import net.minecraft.world.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.effect.StatusEffects; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.passive.SchoolingFishEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.FluidTags; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.Mth; import net.minecraft.world.LocalDifficulty; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndItems; @@ -50,7 +50,7 @@ public class CubozoaEntity extends SchoolingFishEntity { } @Override - public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, + public EntityData initialize(ServerLevelAccessor world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, CompoundTag entityTag) { EntityData data = super.initialize(world, difficulty, spawnReason, entityData, entityTag); if (EndBiomes.getFromBiome(world.getBiome(getBlockPos())) == EndBiomes.SULPHUR_SPRINGS) { @@ -86,8 +86,8 @@ public class CubozoaEntity extends SchoolingFishEntity { } public static DefaultAttributeContainer.Builder createMobAttributes() { - return LivingEntity.createLivingAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0) - .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0).add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.5); + return LivingEntity.createLivingAttributes().add(Attributes.MAX_HEALTH, 2.0).add(Attributes.FOLLOW_RANGE, 16.0) + .add(Attributes.MOVEMENT_SPEED, 0.5); } public int getVariant() { @@ -98,7 +98,7 @@ public class CubozoaEntity extends SchoolingFishEntity { return this.dataTracker.get(SCALE) / 32F + 0.75F; } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { Box box = new Box(pos).expand(16); List list = world.getEntitiesByClass(CubozoaEntity.class, box, (entity) -> { @@ -131,14 +131,14 @@ public class CubozoaEntity extends SchoolingFishEntity { } @Override - public void onPlayerCollision(PlayerEntity player) { + public void onPlayerCollision(Player player) { if (player instanceof ServerPlayer && player.damage(DamageSource.mob(this), 0.5F)) { if (!this.isSilent()) { ((ServerPlayer) player).networkHandler .sendPacket(new GameStateChangeS2CPacket(GameStateChangeS2CPacket.PUFFERFISH_STING, 0.0F)); } if (random.nextBoolean()) { - player.addStatusEffect(new StatusEffectInstance(StatusEffects.POISON, 20, 0)); + player.addMobEffect(new MobEffectInstance(MobEffects.POISON, 20, 0)); } } } @@ -154,7 +154,7 @@ public class CubozoaEntity extends SchoolingFishEntity { } if (this.state == MoveControl.State.MOVE_TO && !this.entity.getNavigation().isIdle()) { - float f = (float) (this.speed * this.entity.getAttributeValue(EntityAttributes.GENERIC_MOVEMENT_SPEED)); + float f = (float) (this.speed * this.entity.getAttributeValue(Attributes.MOVEMENT_SPEED)); this.entity.setMovementSpeed(Mth.lerp(0.125F, this.entity.getMovementSpeed(), f)); double d = this.targetX - this.entity.getX(); double e = this.targetY - this.entity.getY(); diff --git a/src/main/java/ru/betterend/entity/DragonflyEntity.java b/src/main/java/ru/betterend/entity/DragonflyEntity.java index 9394834b..8e31c418 100644 --- a/src/main/java/ru/betterend/entity/DragonflyEntity.java +++ b/src/main/java/ru/betterend/entity/DragonflyEntity.java @@ -20,16 +20,16 @@ import net.minecraft.world.entity.ai.pathing.EntityNavigation; import net.minecraft.world.entity.ai.pathing.Path; import net.minecraft.world.entity.ai.pathing.PathNodeType; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.mob.MobEntity; import net.minecraft.world.entity.passive.AnimalEntity; import net.minecraft.world.entity.passive.PassiveEntity; import net.minecraft.server.level.ServerLevel; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; import net.minecraft.world.WorldView; import ru.betterend.registry.EndEntities; @@ -48,9 +48,9 @@ public class DragonflyEntity extends AnimalEntity implements Flutterer { } public static DefaultAttributeContainer.Builder createMobAttributes() { - return LivingEntity.createLivingAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 8.0D) - .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D).add(EntityAttributes.GENERIC_FLYING_SPEED, 1.0D) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.1D); + return LivingEntity.createLivingAttributes().add(Attributes.MAX_HEALTH, 8.0D) + .add(Attributes.FOLLOW_RANGE, 16.0D).add(Attributes.FLYING_SPEED, 1.0D) + .add(Attributes.MOVEMENT_SPEED, 0.1D); } @Override @@ -190,7 +190,7 @@ public class DragonflyEntity extends AnimalEntity implements Flutterer { return EndEntities.DRAGONFLY.create(world); } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { int y = world.getChunk(pos).sampleHeightmap(Type.WORLD_SURFACE, pos.getX() & 15, pos.getY() & 15); return y > 0 && pos.getY() >= y; diff --git a/src/main/java/ru/betterend/entity/EndFishEntity.java b/src/main/java/ru/betterend/entity/EndFishEntity.java index 5292ac81..cddc8537 100644 --- a/src/main/java/ru/betterend/entity/EndFishEntity.java +++ b/src/main/java/ru/betterend/entity/EndFishEntity.java @@ -10,7 +10,7 @@ import net.minecraft.world.entity.ItemEntity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.SpawnReason; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.damage.DamageSource; import net.minecraft.world.entity.data.DataTracker; import net.minecraft.world.entity.data.TrackedData; @@ -19,12 +19,12 @@ import net.minecraft.world.entity.passive.SchoolingFishEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.world.LocalDifficulty; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndItems; @@ -43,7 +43,7 @@ public class EndFishEntity extends SchoolingFishEntity { } @Override - public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, + public EntityData initialize(ServerLevelAccessor world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, CompoundTag entityTag) { EntityData data = super.initialize(world, difficulty, spawnReason, entityData, entityTag); if (EndBiomes.getFromBiome(world.getBiome(getBlockPos())) == EndBiomes.SULPHUR_SPRINGS) { @@ -115,8 +115,8 @@ public class EndFishEntity extends SchoolingFishEntity { } public static DefaultAttributeContainer.Builder createMobAttributes() { - return LivingEntity.createLivingAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0) - .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0).add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.75); + return LivingEntity.createLivingAttributes().add(Attributes.MAX_HEALTH, 2.0).add(Attributes.FOLLOW_RANGE, 16.0) + .add(Attributes.MOVEMENT_SPEED, 0.75); } public int getVariant() { @@ -127,7 +127,7 @@ public class EndFishEntity extends SchoolingFishEntity { return this.dataTracker.get(SCALE) / 32F + 0.75F; } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { Box box = new Box(pos).expand(16); List list = world.getEntitiesByClass(EndFishEntity.class, box, (entity) -> { diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index 03264629..a8e32d47 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -15,15 +15,15 @@ import net.minecraft.world.entity.ai.control.MoveControl; import net.minecraft.world.entity.ai.goal.FollowTargetGoal; import net.minecraft.world.entity.ai.goal.Goal; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.damage.DamageSource; import net.minecraft.world.entity.data.DataTracker; import net.minecraft.world.entity.data.TrackedData; import net.minecraft.world.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.world.entity.effect.StatusEffects; +import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.mob.SlimeEntity; import net.minecraft.world.entity.passive.IronGolemEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.nbt.CompoundTag; @@ -35,9 +35,9 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.Mth; import net.minecraft.world.LocalDifficulty; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import ru.betterend.interfaces.ISlime; import ru.betterend.registry.EndBiomes; import ru.betterend.util.BlocksHelper; @@ -59,21 +59,20 @@ public class EndSlimeEntity extends SlimeEntity { this.goalSelector.add(2, new FaceTowardTargetGoal()); this.goalSelector.add(3, new RandomLookGoal()); this.goalSelector.add(5, new MoveGoal()); - this.targetSelector.add(1, - new FollowTargetGoal(this, PlayerEntity.class, 10, true, false, (livingEntity) -> { - return Math.abs(livingEntity.getY() - this.getY()) <= 4.0D; - })); + this.targetSelector.add(1, new FollowTargetGoal(this, Player.class, 10, true, false, (livingEntity) -> { + return Math.abs(livingEntity.getY() - this.getY()) <= 4.0D; + })); this.targetSelector.add(3, new FollowTargetGoal(this, IronGolemEntity.class, true)); } public static DefaultAttributeContainer.Builder createMobAttributes() { - return LivingEntity.createLivingAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 1.0D) - .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 1.0D).add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.15D); + return LivingEntity.createLivingAttributes().add(Attributes.MAX_HEALTH, 1.0D) + .add(Attributes.ATTACK_DAMAGE, 1.0D).add(Attributes.FOLLOW_RANGE, 16.0D) + .add(Attributes.MOVEMENT_SPEED, 0.15D); } @Override - public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, + public EntityData initialize(ServerLevelAccessor world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, CompoundTag entityTag) { EntityData data = super.initialize(world, difficulty, spawnReason, entityData, entityTag); EndBiome biome = EndBiomes.getFromBiome(world.getBiome(getBlockPos())); @@ -198,18 +197,18 @@ public class EndSlimeEntity extends SlimeEntity { return this.dataTracker.get(VARIANT) == 0; } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { return random.nextInt(16) == 0 || isPermanentBiome(world, pos) || (notManyEntities(world, pos, 32, 3) && isWaterNear(world, pos, 32, 8)); } - private static boolean isPermanentBiome(ServerWorldAccess world, BlockPos pos) { + private static boolean isPermanentBiome(ServerLevelAccessor world, BlockPos pos) { Biome biome = world.getBiome(pos); return EndBiomes.getFromBiome(biome) == EndBiomes.CHORUS_FOREST; } - private static boolean notManyEntities(ServerWorldAccess world, BlockPos pos, int radius, int maxCount) { + private static boolean notManyEntities(ServerLevelAccessor world, BlockPos pos, int radius, int maxCount) { Box box = new Box(pos).expand(radius); List list = world.getEntitiesByClass(EndSlimeEntity.class, box, (entity) -> { return true; @@ -217,7 +216,7 @@ public class EndSlimeEntity extends SlimeEntity { return list.size() <= maxCount; } - private static boolean isWaterNear(ServerWorldAccess world, BlockPos pos, int radius, int radius2) { + private static boolean isWaterNear(ServerLevelAccessor world, BlockPos pos, int radius, int radius2) { for (int x = pos.getX() - radius; x <= pos.getX() + radius; x++) { POS.setX(x); for (int z = pos.getZ() - radius; z <= pos.getZ() + radius; z++) { @@ -293,7 +292,7 @@ public class EndSlimeEntity extends SlimeEntity { return EndSlimeEntity.this.getTarget() == null && (EndSlimeEntity.this.onGround || EndSlimeEntity.this.isTouchingWater() || EndSlimeEntity.this.isInLava() - || EndSlimeEntity.this.hasStatusEffect(StatusEffects.LEVITATION)) + || EndSlimeEntity.this.hasMobEffect(MobEffects.LEVITATION)) && EndSlimeEntity.this.getMoveControl() instanceof EndSlimeMoveControl; } @@ -321,8 +320,7 @@ public class EndSlimeEntity extends SlimeEntity { } else if (!livingEntity.isAlive()) { return false; } else { - return livingEntity instanceof PlayerEntity && ((PlayerEntity) livingEntity).abilities.invulnerable - ? false + return livingEntity instanceof Player && ((Player) livingEntity).abilities.invulnerable ? false : EndSlimeEntity.this.getMoveControl() instanceof EndSlimeMoveControl; } } @@ -338,7 +336,7 @@ public class EndSlimeEntity extends SlimeEntity { return false; } else if (!livingEntity.isAlive()) { return false; - } else if (livingEntity instanceof PlayerEntity && ((PlayerEntity) livingEntity).abilities.invulnerable) { + } else if (livingEntity instanceof Player && ((Player) livingEntity).abilities.invulnerable) { return false; } else { return --this.ticksLeft > 0; @@ -381,8 +379,8 @@ public class EndSlimeEntity extends SlimeEntity { } else { this.state = MoveControl.State.WAIT; if (this.entity.isOnGround()) { - this.entity.setMovementSpeed((float) (this.speed - * this.entity.getAttributeValue(EntityAttributes.GENERIC_MOVEMENT_SPEED))); + this.entity.setMovementSpeed( + (float) (this.speed * this.entity.getAttributeValue(Attributes.MOVEMENT_SPEED))); if (this.ticksUntilJump-- <= 0) { this.ticksUntilJump = EndSlimeEntity.this.getTicksUntilNextJump(); if (this.jumpOften) { @@ -400,8 +398,8 @@ public class EndSlimeEntity extends SlimeEntity { this.entity.setMovementSpeed(0.0F); } } else { - this.entity.setMovementSpeed((float) (this.speed - * this.entity.getAttributeValue(EntityAttributes.GENERIC_MOVEMENT_SPEED))); + this.entity.setMovementSpeed( + (float) (this.speed * this.entity.getAttributeValue(Attributes.MOVEMENT_SPEED))); } } diff --git a/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java b/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java index 20b2c335..50b62612 100644 --- a/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java +++ b/src/main/java/ru/betterend/entity/ShadowWalkerEntity.java @@ -14,17 +14,17 @@ import net.minecraft.world.entity.ai.goal.LookAtEntityGoal; import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; import net.minecraft.world.entity.ai.goal.WanderAroundFarGoal; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.damage.DamageSource; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.effect.StatusEffects; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.mob.HostileEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; import ru.betterend.registry.EndSounds; import ru.betterend.util.MHelper; @@ -38,15 +38,15 @@ public class ShadowWalkerEntity extends HostileEntity { protected void initGoals() { this.goalSelector.add(2, new AttackGoal(this, 1.0D, false)); this.goalSelector.add(7, new WanderAroundFarGoal(this, 1.0D)); - this.goalSelector.add(8, new LookAtEntityGoal(this, PlayerEntity.class, 8.0F)); + this.goalSelector.add(8, new LookAtEntityGoal(this, Player.class, 8.0F)); this.goalSelector.add(8, new LookAroundGoal(this)); - this.targetSelector.add(2, new FollowTargetGoal(this, PlayerEntity.class, true)); + this.targetSelector.add(2, new FollowTargetGoal(this, Player.class, true)); } public static DefaultAttributeContainer.Builder createMobAttributes() { - return HostileEntity.createHostileAttributes().add(EntityAttributes.GENERIC_FOLLOW_RANGE, 35.0) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.15).add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 4.5) - .add(EntityAttributes.GENERIC_ARMOR, 2.0).add(EntityAttributes.ZOMBIE_SPAWN_REINFORCEMENTS); + return HostileEntity.createHostileAttributes().add(Attributes.FOLLOW_RANGE, 35.0) + .add(Attributes.MOVEMENT_SPEED, 0.15).add(Attributes.ATTACK_DAMAGE, 4.5).add(Attributes.ARMOR, 2.0) + .add(Attributes.ZOMBIE_SPAWN_REINFORCEMENTS); } @Override @@ -94,14 +94,14 @@ public class ShadowWalkerEntity extends HostileEntity { boolean attack = super.tryAttack(target); if (attack && target instanceof LivingEntity) { LivingEntity living = (LivingEntity) target; - if (!(living.hasStatusEffect(StatusEffects.BLINDNESS))) { - living.addStatusEffect(new StatusEffectInstance(StatusEffects.BLINDNESS, 60)); + if (!(living.hasMobEffect(MobEffects.BLINDNESS))) { + living.addMobEffect(new MobEffectInstance(MobEffects.BLINDNESS, 60)); } } return attack; } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { if (HostileEntity.canSpawnInDark(type, world, spawnReason, pos, random)) { Box box = new Box(pos).expand(16); diff --git a/src/main/java/ru/betterend/entity/SilkMothEntity.java b/src/main/java/ru/betterend/entity/SilkMothEntity.java index e5494757..a54ef959 100644 --- a/src/main/java/ru/betterend/entity/SilkMothEntity.java +++ b/src/main/java/ru/betterend/entity/SilkMothEntity.java @@ -24,7 +24,7 @@ import net.minecraft.world.entity.ai.pathing.BirdNavigation; import net.minecraft.world.entity.ai.pathing.EntityNavigation; import net.minecraft.world.entity.ai.pathing.PathNodeType; import net.minecraft.world.entity.attribute.DefaultAttributeContainer; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.entity.damage.DamageSource; import net.minecraft.world.entity.mob.MobEntity; import net.minecraft.world.entity.passive.AnimalEntity; @@ -41,9 +41,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Vec3d; import net.minecraft.core.Registry; -import net.minecraft.util.registry.RegistryKey; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.Level; import ru.betterend.BetterEnd; import ru.betterend.blocks.BlockProperties; @@ -68,9 +68,9 @@ public class SilkMothEntity extends AnimalEntity implements Flutterer { } public static DefaultAttributeContainer.Builder createMobAttributes() { - return LivingEntity.createLivingAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D) - .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D).add(EntityAttributes.GENERIC_FLYING_SPEED, 0.4D) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.1D); + return LivingEntity.createLivingAttributes().add(Attributes.MAX_HEALTH, 2.0D) + .add(Attributes.FOLLOW_RANGE, 16.0D).add(Attributes.FLYING_SPEED, 0.4D) + .add(Attributes.MOVEMENT_SPEED, 0.1D); } public void setHive(Level world, BlockPos hive) { @@ -92,7 +92,7 @@ public class SilkMothEntity extends AnimalEntity implements Flutterer { hivePos = NbtHelper.toBlockPos(tag.getCompound("HivePos")); ResourceLocation worldID = new ResourceLocation(tag.getString("HiveWorld")); try { - hiveWorld = world.getServer().getLevel(RegistryKey.of(Registry.DIMENSION, worldID)); + hiveWorld = world.getServer().getLevel(ResourceKey.of(Registry.DIMENSION, worldID)); } catch (Exception e) { BetterEnd.LOGGER.warning("Silk Moth Hive Level {} is missing!", worldID); hivePos = null; @@ -174,13 +174,13 @@ public class SilkMothEntity extends AnimalEntity implements Flutterer { this.world.spawnEntity(drop); } - public static boolean canSpawn(EntityType type, ServerWorldAccess world, SpawnReason spawnReason, + public static boolean canSpawn(EntityType type, ServerLevelAccessor world, SpawnReason spawnReason, BlockPos pos, Random random) { int y = world.getChunk(pos).sampleHeightmap(Type.WORLD_SURFACE, pos.getX() & 15, pos.getY() & 15); return y > 0 && pos.getY() >= y && notManyEntities(world, pos, 32, 1); } - private static boolean notManyEntities(ServerWorldAccess world, BlockPos pos, int radius, int maxCount) { + private static boolean notManyEntities(ServerLevelAccessor world, BlockPos pos, int radius, int maxCount) { Box box = new Box(pos).expand(radius); List list = world.getEntitiesByClass(SilkMothEntity.class, box, (entity) -> true); return list.size() <= maxCount; diff --git a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java index 158151ca..8a910df0 100644 --- a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java +++ b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java @@ -5,7 +5,7 @@ import java.util.Map; import com.google.common.collect.Maps; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import ru.betterend.blocks.HydraluxPetalColoredBlock; import ru.betterend.blocks.complex.ColoredMaterial; import ru.betterend.registry.EndBlocks; @@ -27,7 +27,7 @@ public class FlamboyantRefabricatedIntegration extends ModIntegration { */ Map colors = Maps.newHashMap(); - Map dyes = Maps.newHashMap(); + Map dyes = Maps.newHashMap(); /* * for (Object val: values) { Integer color = (Integer) getFieldValue(fDyeColor, * "signColor", val); String name = (String) getFieldValue(fDyeColor, "name", @@ -56,7 +56,7 @@ public class FlamboyantRefabricatedIntegration extends ModIntegration { new ColoredMaterial(HydraluxPetalColoredBlock::new, EndBlocks.HYDRALUX_PETAL_BLOCK, colors, dyes, true); } - private void addColor(String hex, String name, Map colors, Map dyes) { + private void addColor(String hex, String name, Map colors, Map dyes) { int color = MHelper.color(hex); colors.put(color, name); dyes.put(color, getItem(name + "_dye")); diff --git a/src/main/java/ru/betterend/integration/ModIntegration.java b/src/main/java/ru/betterend/integration/ModIntegration.java index 0ee53e25..9489940a 100644 --- a/src/main/java/ru/betterend/integration/ModIntegration.java +++ b/src/main/java/ru/betterend/integration/ModIntegration.java @@ -13,15 +13,15 @@ import net.minecraft.world.item.Item; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.Tag; -import net.minecraft.tags.Tag.Identified; +import net.minecraft.tags.Tag.Named; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.data.BuiltinRegistries; import net.minecraft.core.Registry; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.biome.Biome; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.BetterEnd; import ru.betterend.world.features.EndFeature; @@ -54,8 +54,8 @@ public abstract class ModIntegration { return getBlock(name).defaultBlockState(); } - public RegistryKey getKey(String name) { - return RegistryKey.of(Registry.BIOME_KEY, getID(name)); + public ResourceKey getKey(String name) { + return ResourceKey.of(Registry.BIOME_KEY, getID(name)); } public boolean modIsInstalled() { @@ -196,13 +196,13 @@ public abstract class ModIntegration { return null; } - public Tag.Identified getItemTag(String name) { + public Tag.Named getItemTag(String name) { ResourceLocation id = getID(name); Tag tag = ItemTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.item(id) : (Identified) tag; } - public Tag.Identified getBlockTag(String name) { + public Tag.Named getBlockTag(String name) { ResourceLocation id = getID(name); Tag tag = BlockTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.block(id) : (Identified) tag; diff --git a/src/main/java/ru/betterend/integration/NourishIntegration.java b/src/main/java/ru/betterend/integration/NourishIntegration.java index 1c4e8778..0697e356 100644 --- a/src/main/java/ru/betterend/integration/NourishIntegration.java +++ b/src/main/java/ru/betterend/integration/NourishIntegration.java @@ -12,10 +12,10 @@ public class NourishIntegration extends ModIntegration { @Override public void register() { - Tag.Identified fats = getItemTag("fats"); - Tag.Identified fruit = getItemTag("fruit"); - Tag.Identified protein = getItemTag("protein"); - Tag.Identified sweets = getItemTag("sweets"); + Tag.Named fats = getItemTag("fats"); + Tag.Named fruit = getItemTag("fruit"); + Tag.Named protein = getItemTag("protein"); + Tag.Named sweets = getItemTag("sweets"); TagHelper.addTag(fats, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED); TagHelper.addTag(fruit, EndItems.SHADOW_BERRY_RAW, EndItems.SHADOW_BERRY_COOKED, EndItems.BLOSSOM_BERRY, diff --git a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java index 37dffd01..b7250223 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java +++ b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java @@ -5,8 +5,8 @@ import java.util.stream.Collectors; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.collection.WeightedList; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.world.biome.Biome; +import net.minecraft.data.BuiltinRegistries; +import net.minecraft.world.level.biome.Biome; import ru.betterend.integration.Integrations; import ru.betterend.integration.ModIntegration; import ru.betterend.integration.byg.biomes.BYGBiomes; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java index 7ba8407d..3db0b3ef 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/EterialGrove.java @@ -3,8 +3,8 @@ package ru.betterend.integration.byg.biomes; import java.util.List; import net.minecraft.world.entity.SpawnGroup; -import net.minecraft.sound.SoundEvent; -import net.minecraft.world.biome.Biome; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import ru.betterend.BetterEnd; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java index 85094e37..0567deb4 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/NightshadeRedwoods.java @@ -4,8 +4,8 @@ import java.util.List; import net.minecraft.world.entity.SpawnGroup; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.sound.SoundEvent; -import net.minecraft.world.biome.Biome; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import net.minecraft.world.gen.GenerationStep.Feature; diff --git a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java index a59f15ed..d8816e4b 100644 --- a/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java +++ b/src/main/java/ru/betterend/integration/byg/biomes/OldBulbisGardens.java @@ -6,16 +6,16 @@ import java.util.function.Supplier; import net.minecraft.world.level.block.Block; import net.minecraft.world.entity.SpawnGroup; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.data.BuiltinRegistries; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import net.minecraft.world.gen.GenerationStep.Feature; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.ConfiguredFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeatures; import ru.betterend.BetterEnd; import ru.betterend.integration.Integrations; import ru.betterend.integration.byg.features.BYGFeatures; @@ -33,7 +33,7 @@ public class OldBulbisGardens extends EndBiome { BiomeEffects effects = biome.getEffects(); Block ivis = Integrations.BYG.getBlock("ivis_phylium"); - Block origin = biome.getGenerationSettings().getSurfaceConfig().getTopMaterial().getBlock(); + Block origin = biome.getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial().getBlock(); BiomeDefinition def = new BiomeDefinition("old_bulbis_gardens").setFogColor(215, 132, 207).setFogDensity(1.8F) .setWaterAndFogColor(40, 0, 56).setFoliageColor(122, 17, 155) .setParticles(ParticleTypes.REVERSE_PORTAL, 0.002F).setSurface(ivis, origin) diff --git a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java index 4e4da866..9e9d790f 100644 --- a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java @@ -7,11 +7,11 @@ import com.google.common.base.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.MHelper; @@ -21,8 +21,8 @@ import ru.betterend.world.features.DefaultFeature; public class BigEtherTreeFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -77,7 +77,7 @@ public class BigEtherTreeFeature extends DefaultFeature { return true; } - // private void makeLeavesSphere(StructureWorldAccess world, BlockPos pos, + // private void makeLeavesSphere(WorldGenLevel world, BlockPos pos, // BlockState leaves, Function ignore) { // // } diff --git a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java index bf5e89c0..91501993 100644 --- a/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/GreatNightshadeTreeFeature.java @@ -10,13 +10,13 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -35,8 +35,8 @@ public class GreatNightshadeTreeFeature extends DefaultFeature { private static final List BRANCH; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; diff --git a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java index e18fdaab..069e0f9b 100644 --- a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java @@ -10,13 +10,13 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.integration.Integrations; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -35,8 +35,8 @@ public class NightshadeRedwoodTreeFeature extends DefaultFeature { private static final List BRANCH; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; diff --git a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java index a0a3b41c..064de144 100644 --- a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java @@ -9,13 +9,13 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.integration.Integrations; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; @@ -36,8 +36,8 @@ public class OldBulbisTreeFeature extends DefaultFeature { private static final List SIDE; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; if (!world.getBlockState(pos.down(4)).getBlock().isIn(EndTags.GEN_TERRAIN)) @@ -82,11 +82,9 @@ public class OldBulbisTreeFeature extends DefaultFeature { Vector3f vec = spline.get(spline.size() - 1); float radius = (size + MHelper.randRange(0, size * 0.5F, random)) * 0.35F; - bigSphere(world, pos.offset(vec.getX(), vec.getY(), vec.getZ()), radius, cap, glow, wood, replacement, - random); + bigSphere(world, pos.offset(vec.x(), vec.y(), vec.z()), radius, cap, glow, wood, replacement, random); vec = SplineHelper.getPos(spline, 0.3F); - makeRoots(world, pos.offset(vec.getX(), vec.getY(), vec.getZ()), size * 0.4F + 5, random, wood, - replacement); + makeRoots(world, pos.offset(vec.x(), vec.y(), vec.z()), size * 0.4F + 5, random, wood, replacement); sdf = (sdf == null) ? branch : new SDFUnion().setSourceA(sdf).setSourceB(branch); } @@ -102,19 +100,19 @@ public class OldBulbisTreeFeature extends DefaultFeature { return true; } - private void bigSphere(StructureWorldAccess world, BlockPos pos, float radius, BlockState cap, BlockState glow, + private void bigSphere(WorldGenLevel world, BlockPos pos, float radius, BlockState cap, BlockState glow, BlockState wood, Function replacement, Random random) { OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); SDF sphere = new SDFSphere().setRadius(radius).setBlock(cap); SDF sphereInner = new SDFSphere().setRadius(radius * 0.53F).setBlock(Blocks.AIR); sphereInner = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1); + return (float) noise.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1); }).setSource(sphereInner); SDF sphereGlow = new SDFSphere().setRadius(radius * 0.6F).setBlock(glow); sphereGlow = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1) * 2F; + return (float) noise.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1) * 2F; }).setSource(sphereGlow); sphereGlow = new SDFSubtraction().setSourceA(sphereGlow).setSourceB(sphereInner); @@ -150,7 +148,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { sphere.fillArea(world, pos, new Box(pos.up((int) offsetY)).expand(radius * 1.3F)); } - private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random, BlockState wood, + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood, Function replacement) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java index 6869324d..7b5b8195 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java @@ -17,7 +17,7 @@ import me.shedaniel.rei.api.widgets.Tooltip; import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.entries.RecipeEntry; import me.shedaniel.rei.gui.widget.Widget; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.world.item.Items; @@ -90,7 +90,7 @@ public class REIAlloyingFuelCategory implements RecipeCategory> getBiomes(); + public List> getBiomes(); } diff --git a/src/main/java/ru/betterend/item/DrinkItem.java b/src/main/java/ru/betterend/item/DrinkItem.java index 78c78eaf..8969fb96 100644 --- a/src/main/java/ru/betterend/item/DrinkItem.java +++ b/src/main/java/ru/betterend/item/DrinkItem.java @@ -2,7 +2,7 @@ package ru.betterend.item; import net.minecraft.advancement.criterion.Criteria; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemUsage; import net.minecraft.world.item.Items; @@ -29,7 +29,7 @@ public class DrinkItem extends PatternedItem { } @Override - public TypedActionResult use(Level world, PlayerEntity user, Hand hand) { + public TypedActionResult use(Level world, Player user, Hand hand) { return ItemUsage.consumeHeldItem(world, user, hand); } @@ -41,12 +41,12 @@ public class DrinkItem extends PatternedItem { serverPlayerEntity.incrementStat(Stats.USED.getOrCreateStat(this)); } - if (user instanceof PlayerEntity && !((PlayerEntity) user).abilities.creativeMode) { + if (user instanceof Player && !((Player) user).abilities.creativeMode) { stack.decrement(1); } if (!world.isClientSide) { - user.clearStatusEffects(); + user.clearMobEffects(); } return stack.isEmpty() ? new ItemStack(Items.GLASS_BOTTLE) : stack; diff --git a/src/main/java/ru/betterend/item/EnchantedPetalItem.java b/src/main/java/ru/betterend/item/EnchantedPetalItem.java index 9ede5983..c34d07d2 100644 --- a/src/main/java/ru/betterend/item/EnchantedPetalItem.java +++ b/src/main/java/ru/betterend/item/EnchantedPetalItem.java @@ -7,7 +7,7 @@ import ru.betterend.registry.EndItems; public class EnchantedPetalItem extends PatternedItem { public EnchantedPetalItem() { - super(EndItems.makeItemSettings().rarity(Rarity.RARE).maxCount(16)); + super(EndItems.makeItemSettings().rarity(Rarity.RARE).stacksTo(16)); } @Override diff --git a/src/main/java/ru/betterend/item/EndArmorItem.java b/src/main/java/ru/betterend/item/EndArmorItem.java index 0d9bfe05..3c56b9b6 100644 --- a/src/main/java/ru/betterend/item/EndArmorItem.java +++ b/src/main/java/ru/betterend/item/EndArmorItem.java @@ -6,9 +6,9 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.attribute.EntityAttribute; -import net.minecraft.world.entity.attribute.EntityAttributeModifier; -import net.minecraft.world.entity.attribute.EntityAttributes; +import net.minecraft.world.entity.ai.attributes.Attribute; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.attribute.Attributes; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.Item; @@ -30,20 +30,20 @@ public class EndArmorItem extends ArmorItem implements Patterned { return; } - Multimap attributeModifiers = accessor.be_getAttributeModifiers(); + Multimap attributeModifiers = accessor.be_getAttributeModifiers(); // In case Mojang or anyone else decided to fix this - if (attributeModifiers.keys().contains(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE)) { + if (attributeModifiers.keys().contains(Attributes.KNOCKBACK_RESISTANCE)) { return; } UUID uuid = accessor.be_getModifiers()[slot.getEntitySlotId()]; // Rebuild attributeModifiers to include knockback resistance - ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); + ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); builder.putAll(attributeModifiers); - builder.put(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(uuid, - "Armor knockback resistance", knockbackResistance, EntityAttributeModifier.Operation.ADDITION)); + builder.put(Attributes.KNOCKBACK_RESISTANCE, new AttributeModifier(uuid, "Armor knockback resistance", + knockbackResistance, AttributeModifier.Operation.ADDITION)); accessor.be_setAttributeModifiers(builder.build()); } diff --git a/src/main/java/ru/betterend/item/EternalCrystalItem.java b/src/main/java/ru/betterend/item/EternalCrystalItem.java index 3466577e..8a547347 100644 --- a/src/main/java/ru/betterend/item/EternalCrystalItem.java +++ b/src/main/java/ru/betterend/item/EternalCrystalItem.java @@ -5,6 +5,6 @@ import ru.betterend.registry.EndItems; public class EternalCrystalItem extends PatternedItem { public EternalCrystalItem() { - super(EndItems.makeItemSettings().maxCount(16).rarity(Rarity.EPIC)); + super(EndItems.makeItemSettings().stacksTo(16).rarity(Rarity.EPIC)); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/item/GuideBookItem.java b/src/main/java/ru/betterend/item/GuideBookItem.java index ad652d22..bb137c11 100644 --- a/src/main/java/ru/betterend/item/GuideBookItem.java +++ b/src/main/java/ru/betterend/item/GuideBookItem.java @@ -3,7 +3,7 @@ package ru.betterend.item; import java.util.List; import net.minecraft.client.item.TooltipContext; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.server.level.ServerPlayer; @@ -26,11 +26,11 @@ public class GuideBookItem extends PatternedItem { } public GuideBookItem() { - super(EndItems.makeItemSettings().maxCount(1)); + super(EndItems.makeItemSettings().stacksTo(1)); } @Override - public TypedActionResult use(Level world, PlayerEntity user, Hand hand) { + public TypedActionResult use(Level world, Player user, Hand hand) { if (!world.isClientSide && user instanceof ServerPlayer) { PatchouliAPI.get().openBookGUI((ServerPlayer) user, BOOK_ID); return TypedActionResult.success(user.getStackInHand(hand)); diff --git a/src/main/java/ru/betterend/item/PatternedDiscItem.java b/src/main/java/ru/betterend/item/PatternedDiscItem.java index dca0c763..0abf6154 100644 --- a/src/main/java/ru/betterend/item/PatternedDiscItem.java +++ b/src/main/java/ru/betterend/item/PatternedDiscItem.java @@ -1,12 +1,13 @@ package ru.betterend.item; -import net.minecraft.world.item.MusicDiscItem; -import net.minecraft.sound.SoundEvent; +import net.minecraft.world.item.Item; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.item.RecordItem; import ru.betterend.patterns.Patterned; import ru.betterend.patterns.Patterns; -public class PatternedDiscItem extends MusicDiscItem implements Patterned { - public PatternedDiscItem(int comparatorOutput, SoundEvent sound, Properties settings) { +public class PatternedDiscItem extends RecordItem implements Patterned { + public PatternedDiscItem(int comparatorOutput, SoundEvent sound, Item.Properties settings) { super(comparatorOutput, sound, settings); } diff --git a/src/main/java/ru/betterend/item/material/EndArmorMaterial.java b/src/main/java/ru/betterend/item/material/EndArmorMaterial.java index c80e094c..78bb7352 100644 --- a/src/main/java/ru/betterend/item/material/EndArmorMaterial.java +++ b/src/main/java/ru/betterend/item/material/EndArmorMaterial.java @@ -7,7 +7,7 @@ import net.fabricmc.api.Environment; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.LazyLoadedValue; import ru.betterend.registry.EndBlocks; diff --git a/src/main/java/ru/betterend/item/tool/EndHammerItem.java b/src/main/java/ru/betterend/item/tool/EndHammerItem.java index ca6d5998..8ce0818a 100644 --- a/src/main/java/ru/betterend/item/tool/EndHammerItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHammerItem.java @@ -9,18 +9,19 @@ import com.google.common.collect.Sets; import io.netty.util.internal.ThreadLocalRandom; import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool; +import net.minecraft.world.entity.ai.attributes.Attribute; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.DiggerItem; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.attribute.EntityAttribute; -import net.minecraft.world.entity.attribute.EntityAttributeModifier; -import net.minecraft.world.entity.attribute.EntityAttributes; -import net.minecraft.world.entity.player.PlayerEntity; + import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.MiningToolItem; import net.minecraft.world.item.Tier; import net.minecraft.tags.Tag; import net.minecraft.core.BlockPos; @@ -30,72 +31,70 @@ import ru.betterend.patterns.Patterned; import ru.betterend.patterns.Patterns; import ru.betterend.registry.EndTags; -public class EndHammerItem extends MiningToolItem implements DynamicAttributeTool, Patterned { - public final static UUID ATTACK_KNOCKBACK_MODIFIER_ID = Mth.randomUuid(ThreadLocalRandom.current()); +public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, Patterned { + public final static UUID ATTACK_KNOCKBACK_MODIFIER_ID = Mth.createInsecureUUID(ThreadLocalRandom.current()); - private final Multimap attributeModifiers; + private final Multimap attributeModifiers; public EndHammerItem(Tier material, float attackDamage, float attackSpeed, double knockback, Properties settings) { super(attackDamage, attackSpeed, material, Sets.newHashSet(), settings); - Builder builder = ImmutableMultimap.builder(); - builder.put(EntityAttributes.GENERIC_ATTACK_DAMAGE, - new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, "Weapon modifier", - attackDamage + material.getAttackDamage(), EntityAttributeModifier.Operation.ADDITION)); - builder.put(EntityAttributes.GENERIC_ATTACK_SPEED, new EntityAttributeModifier(ATTACK_SPEED_MODIFIER_ID, - "Weapon modifier", attackSpeed, EntityAttributeModifier.Operation.ADDITION)); - builder.put(EntityAttributes.GENERIC_ATTACK_KNOCKBACK, new EntityAttributeModifier(ATTACK_KNOCKBACK_MODIFIER_ID, - "Weapon modifier", knockback, EntityAttributeModifier.Operation.ADDITION)); + Builder builder = ImmutableMultimap.builder(); + builder.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_UUID, "Weapon modifier", + attackDamage + material.getAttackDamageBonus(), AttributeModifier.Operation.ADDITION)); + builder.put(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_UUID, "Weapon modifier", + attackSpeed, AttributeModifier.Operation.ADDITION)); + builder.put(Attributes.ATTACK_KNOCKBACK, new AttributeModifier(ATTACK_KNOCKBACK_MODIFIER_ID, "Weapon modifier", + knockback, AttributeModifier.Operation.ADDITION)); this.attributeModifiers = builder.build(); } @Override - public boolean canMine(BlockState state, Level world, BlockPos pos, PlayerEntity miner) { + public boolean canAttackBlock(BlockState state, Level world, BlockPos pos, Player miner) { return state.getMaterial().equals(Material.STONE) || state.getMaterial().equals(Material.GLASS) || state.is(Blocks.DIAMOND_BLOCK) || state.is(Blocks.EMERALD_BLOCK) || state.is(Blocks.LAPIS_BLOCK) || state.is(Blocks.REDSTONE_BLOCK); } @Override - public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) { - stack.damage(1, attacker, ((entity) -> { - entity.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + stack.hurtAndBreak(1, attacker, (entity -> { + entity.broadcastBreakEvent(EquipmentSlot.MAINHAND); })); return true; } @Override - public boolean postMine(ItemStack stack, Level world, BlockState state, BlockPos pos, LivingEntity miner) { - if (state.getHardness(world, pos) != 0.0F) { - stack.damage(1, miner, ((entity) -> { - entity.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); + public boolean mineBlock(ItemStack stack, Level world, BlockState state, BlockPos pos, LivingEntity miner) { + if (state.getDestroySpeed(world, pos) != 0.0F) { + stack.hurtAndBreak(1, miner, (entity -> { + entity.broadcastBreakEvent(EquipmentSlot.MAINHAND); })); } - return true; } @Override public float getDestroySpeed(ItemStack stack, BlockState state) { if (state.getMaterial().equals(Material.GLASS)) { - return this.getMaterial().getDestroySpeed() * 2.0F; + return getTier().getSpeed() * 2.0F; } if (isCorrectToolForDrops(state)) { float mult = 1.0F; if (state.is(Blocks.DIAMOND_BLOCK) || state.is(Blocks.EMERALD_BLOCK) || state.is(Blocks.LAPIS_BLOCK) || state.is(Blocks.REDSTONE_BLOCK)) { - mult = this.getMaterial().getDestroySpeed(); + mult = getTier().getSpeed(); } else { - mult = this.getMaterial().getDestroySpeed() / 2.0F; + mult = getTier().getSpeed() / 2.0F; } - return mult > 1.0F ? mult : 1.0F; + return Math.max(mult, 1.0F); } return 1.0F; } @Override - public float getDestroySpeed(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { + public float getMiningSpeedMultiplier(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { if (tag.equals(EndTags.HAMMERS)) { return this.getDestroySpeed(stack, state); } @@ -135,8 +134,8 @@ public class EndHammerItem extends MiningToolItem implements DynamicAttributeToo } @Override - public Multimap getAttributeModifiers(EquipmentSlot slot) { - return slot == EquipmentSlot.MAINHAND ? this.attributeModifiers : super.getAttributeModifiers(slot); + public Multimap getDefaultAttributeModifiers(EquipmentSlot slot) { + return slot == EquipmentSlot.MAINHAND ? this.attributeModifiers : super.getDefaultAttributeModifiers(slot); } @Override diff --git a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java index aa74a438..e85b8ef2 100644 --- a/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/BackgroundRendererMixin.java @@ -14,14 +14,14 @@ import net.minecraft.client.render.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.effect.StatusEffects; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; import net.minecraft.fluid.FluidState; import net.minecraft.util.Util; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.Biome.Category; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biome.Category; import ru.betterend.client.ClientOptions; import ru.betterend.registry.EndBiomes; import ru.betterend.util.BackgroundInfo; @@ -55,7 +55,7 @@ public class BackgroundRendererMixin { Entity entity = camera.getFocusedEntity(); boolean skip = false; if (entity instanceof LivingEntity) { - StatusEffectInstance effect = ((LivingEntity) entity).getStatusEffect(StatusEffects.NIGHT_VISION); + MobEffectInstance effect = ((LivingEntity) entity).getMobEffect(MobEffects.NIGHT_VISION); skip = effect != null && effect.getDuration() > 0; } if (!skip) { @@ -96,7 +96,7 @@ public class BackgroundRendererMixin { if (entity instanceof LivingEntity) { LivingEntity le = (LivingEntity) entity; - StatusEffectInstance effect = le.getStatusEffect(StatusEffects.BLINDNESS); + MobEffectInstance effect = le.getMobEffect(MobEffects.BLINDNESS); if (effect != null) { int duration = effect.getDuration(); if (duration > 20) { diff --git a/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java b/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java index 6e0e074b..1a897f04 100644 --- a/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java +++ b/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.color.world.BiomeColors; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; @@ -29,7 +29,7 @@ public class BiomeColorsMixin { @Inject(method = "getWaterColor", at = @At("RETURN"), cancellable = true) private static void be_getWaterColor(BlockRenderView world, BlockPos pos, CallbackInfoReturnable info) { if (ClientOptions.useSulfurWaterColor()) { - BlockRenderView view = HAS_SODIUM ? MinecraftClient.getInstance().world : world; + BlockRenderView view = HAS_SODIUM ? Minecraft.getInstance().world : world; MutableBlockPos mut = new MutableBlockPos(); mut.setY(pos.getY()); for (int i = 0; i < OFFSETS.length; i++) { diff --git a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java index bd858608..32e0fd75 100644 --- a/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ClientPlayNetworkHandlerMixin.java @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.network.NetworkThreadUtils; @@ -18,7 +18,7 @@ import ru.betterend.client.gui.BlockSignEditScreen; @Mixin(ClientPlayNetworkHandler.class) public class ClientPlayNetworkHandlerMixin { @Shadow - private MinecraftClient client; + private Minecraft client; @Shadow private ClientLevel world; diff --git a/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java b/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java index 97c63bb2..d6a6a9b4 100644 --- a/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java +++ b/src/main/java/ru/betterend/mixin/client/MinecraftClientMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.RunArgs; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; @@ -24,7 +24,7 @@ import net.minecraft.world.level.Level; import ru.betterend.interfaces.IColorProvider; import ru.betterend.util.MHelper; -@Mixin(MinecraftClient.class) +@Mixin(Minecraft.class) public class MinecraftClientMixin { @Shadow public ClientPlayerEntity player; diff --git a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java index 587da5f2..f65bce48 100644 --- a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.sound.AbstractSoundInstance; import net.minecraft.client.sound.MusicTracker; import net.minecraft.client.sound.SoundInstance; @@ -22,7 +22,7 @@ import ru.betterend.client.ClientOptions; public class MusicTrackerMixin { @Shadow @Final - private MinecraftClient client; + private Minecraft client; @Shadow @Final diff --git a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java index ebe07df1..760409ea 100644 --- a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.gl.VertexBuffer; import net.minecraft.client.render.BackgroundRenderer; import net.minecraft.client.render.BufferBuilder; @@ -25,7 +25,7 @@ import net.minecraft.client.render.VertexFormats; import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.texture.TextureManager; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.math.Quaternion; @@ -63,7 +63,7 @@ public class WorldRendererMixin { @Shadow @Final - private MinecraftClient client; + private Minecraft client; @Shadow @Final @@ -76,7 +76,7 @@ public class WorldRendererMixin { private int ticks; @Inject(method = "*", at = @At("TAIL")) - private void be_onInit(MinecraftClient client, BufferBuilderStorage bufferBuilders, CallbackInfo info) { + private void be_onInit(Minecraft client, BufferBuilderStorage bufferBuilders, CallbackInfo info) { be_initStars(); Random random = new Random(131); axis1 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); diff --git a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java index 2b4c380e..9f393acc 100644 --- a/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/AnvilScreenHandlerMixin.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.world.level.block.AnvilBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.PlayerInventory; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeManager; @@ -60,14 +60,14 @@ public abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler imple public abstract void updateResult(); @Inject(method = "canTakeOutput", at = @At("HEAD"), cancellable = true) - protected void be_canTakeOutput(PlayerEntity player, boolean present, CallbackInfoReturnable info) { + protected void be_canTakeOutput(Player player, boolean present, CallbackInfoReturnable info) { if (be_currentRecipe != null) { info.setReturnValue(be_currentRecipe.checkHammerDurability(input, player)); } } @Inject(method = "onTakeOutput", at = @At("HEAD"), cancellable = true) - protected void be_onTakeOutput(PlayerEntity player, ItemStack stack, CallbackInfoReturnable info) { + protected void be_onTakeOutput(Player player, ItemStack stack, CallbackInfoReturnable info) { if (be_currentRecipe != null) { this.input.getStack(0).decrement(be_currentRecipe.getInputCount()); stack = be_currentRecipe.craft(input, player); @@ -120,7 +120,7 @@ public abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler imple } @Override - public boolean onButtonClick(PlayerEntity player, int id) { + public boolean onButtonClick(Player player, int id) { if (id == 0) { this.be_previousRecipe(); return true; diff --git a/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java b/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java index 08accbe8..3f55c6ef 100644 --- a/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/ArmorItemAccessor.java @@ -7,8 +7,8 @@ import org.spongepowered.asm.mixin.gen.Accessor; import com.google.common.collect.Multimap; -import net.minecraft.world.entity.attribute.EntityAttribute; -import net.minecraft.world.entity.attribute.EntityAttributeModifier; +import net.minecraft.world.entity.ai.attributes.Attribute; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.item.ArmorItem; @Mixin(ArmorItem.class) @@ -17,8 +17,8 @@ public interface ArmorItemAccessor { UUID[] be_getModifiers(); @Accessor("attributeModifiers") - Multimap be_getAttributeModifiers(); + Multimap be_getAttributeModifiers(); @Accessor("attributeModifiers") - void be_setAttributeModifiers(Multimap attributeModifiers); + void be_setAttributeModifiers(Multimap attributeModifiers); } diff --git a/src/main/java/ru/betterend/mixin/common/BiomeArrayMixin.java b/src/main/java/ru/betterend/mixin/common/BiomeArrayMixin.java index 5ac2ad3d..409ca5b6 100644 --- a/src/main/java/ru/betterend/mixin/common/BiomeArrayMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BiomeArrayMixin.java @@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Shadow; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.source.BiomeArray; import ru.betterend.interfaces.IBiomeArray; diff --git a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java index fa990422..0eff76c9 100644 --- a/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BoneMealItemMixin.java @@ -17,7 +17,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.Level; -import net.minecraft.world.biome.Biome.Category; +import net.minecraft.world.level.biome.Biome.Category; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; diff --git a/src/main/java/ru/betterend/mixin/common/BrewingAccessor.java b/src/main/java/ru/betterend/mixin/common/BrewingAccessor.java index 3c46279d..b198c6c1 100644 --- a/src/main/java/ru/betterend/mixin/common/BrewingAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/BrewingAccessor.java @@ -4,7 +4,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; import net.minecraft.world.item.Item; -import net.minecraft.potion.Potion; +import net.minecraft.world.item.alchemy.Potion; import net.minecraft.world.item.crafting.BrewingRecipeRegistry; @Mixin(BrewingRecipeRegistry.class) diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java index e55d6160..7c1e2638 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java @@ -12,10 +12,10 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.ChorusFlowerBlock; import net.minecraft.world.level.block.ConnectingBlock; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.ChorusPlantFeature; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.ChorusPlantFeature; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -24,8 +24,8 @@ import ru.betterend.world.generator.GeneratorOptions; @Mixin(ChorusPlantFeature.class) public class ChorusPlantFeatureMixin { @Inject(method = "generate", at = @At("HEAD"), cancellable = true) - private void be_onGenerate(StructureWorldAccess structureWorldAccess, ChunkGenerator chunkGenerator, Random random, - BlockPos blockPos, DefaultFeatureConfig defaultFeatureConfig, CallbackInfoReturnable info) { + private void be_onGenerate(WorldGenLevel structureWorldAccess, ChunkGenerator chunkGenerator, Random random, + BlockPos blockPos, NoneFeatureConfiguration defaultFeatureConfig, CallbackInfoReturnable info) { if (structureWorldAccess.isAir(blockPos) && structureWorldAccess.getBlockState(blockPos.below()).is(EndBlocks.CHORUS_NYLIUM)) { ChorusFlowerBlock.generate(structureWorldAccess, blockPos, random, MHelper.randRange(8, 16, random)); diff --git a/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java b/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java index d2931d21..bf506f0c 100644 --- a/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/ComposterBlockAccessor.java @@ -4,12 +4,12 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; import net.minecraft.world.level.block.ComposterBlock; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; @Mixin(ComposterBlock.class) public interface ComposterBlockAccessor { @Invoker - static void callRegisterCompostableItem(float levelIncreaseChance, ItemConvertible item) { + static void callRegisterCompostableItem(float levelIncreaseChance, ItemLike item) { throw new AssertionError("@Invoker dummy body called"); } } diff --git a/src/main/java/ru/betterend/mixin/common/CraftingScreenHandlerMixin.java b/src/main/java/ru/betterend/mixin/common/CraftingScreenHandlerMixin.java index ec38ae5e..426ca0c4 100644 --- a/src/main/java/ru/betterend/mixin/common/CraftingScreenHandlerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/CraftingScreenHandlerMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.world.level.block.CraftingTableBlock; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.screen.CraftingScreenHandler; import net.minecraft.screen.ScreenHandlerContext; @@ -19,7 +19,7 @@ public abstract class CraftingScreenHandlerMixin { private ScreenHandlerContext context; @Inject(method = "canUse", at = @At("HEAD"), cancellable = true) - private void be_canUse(PlayerEntity player, CallbackInfoReturnable info) { + private void be_canUse(Player player, CallbackInfoReturnable info) { if (context.run((world, pos) -> { return world.getBlockState(pos).getBlock() instanceof CraftingTableBlock; }, true)) { diff --git a/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java b/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java index 618d38c8..8a974c38 100644 --- a/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java +++ b/src/main/java/ru/betterend/mixin/common/DimensionTypeMixin.java @@ -6,9 +6,9 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.dimension.DimensionType; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; import net.minecraft.world.gen.chunk.NoiseChunkGenerator; import ru.betterend.world.generator.BetterEndBiomeSource; diff --git a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java index 0e4629d6..6faa563f 100644 --- a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java @@ -7,35 +7,35 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.gen.ChunkRandom; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.EndCityFeature; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.EndCityFeature; import ru.betterend.world.generator.GeneratorOptions; @Mixin(EndCityFeature.class) public class EndCityFeatureMixin { @Inject(method = "shouldStartAt", at = @At("HEAD"), cancellable = true) - private void be_shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long l, ChunkRandom chunkRandom, int i, int j, Biome biome, ChunkPos chunkPos, DefaultFeatureConfig defaultFeatureConfig, CallbackInfoReturnable info) { + private void be_shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long l, + ChunkRandom chunkRandom, int i, int j, Biome biome, ChunkPos chunkPos, + NoneFeatureConfiguration defaultFeatureConfig, CallbackInfoReturnable info) { if (GeneratorOptions.useNewGenerator()) { int chance = GeneratorOptions.getEndCityFailChance(); if (chance == 0) { info.setReturnValue(getGenerationHeight(i, j, chunkGenerator) >= 60); info.cancel(); - } - else if (chunkRandom.nextInt(chance) == 0){ + } else if (chunkRandom.nextInt(chance) == 0) { info.setReturnValue(getGenerationHeight(i, j, chunkGenerator) >= 60); info.cancel(); - } - else { + } else { info.setReturnValue(false); info.cancel(); } } } - + @Shadow private static int getGenerationHeight(int chunkX, int chunkZ, ChunkGenerator chunkGenerator) { return 0; diff --git a/src/main/java/ru/betterend/mixin/common/EndPortalFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndPortalFeatureMixin.java index 3d4b0f51..851439bd 100644 --- a/src/main/java/ru/betterend/mixin/common/EndPortalFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndPortalFeatureMixin.java @@ -15,10 +15,10 @@ import net.minecraft.structure.Structure; import net.minecraft.structure.StructurePlacementData; import net.minecraft.core.BlockPos; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.EndPortalFeature; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.EndPortalFeature; import ru.betterend.BetterEnd; import ru.betterend.util.StructureHelper; import ru.betterend.util.WorldDataUtil; @@ -31,8 +31,8 @@ public class EndPortalFeatureMixin { private boolean open; @Inject(method = "generate", at = @At("HEAD"), cancellable = true) - private void bePortalGenerate(StructureWorldAccess world, ChunkGenerator generator, Random random, - BlockPos blockPos, DefaultFeatureConfig config, CallbackInfoReturnable info) { + private void bePortalGenerate(WorldGenLevel world, ChunkGenerator generator, Random random, BlockPos blockPos, + NoneFeatureConfiguration config, CallbackInfoReturnable info) { if (!GeneratorOptions.hasPortal()) { info.setReturnValue(false); info.cancel(); @@ -49,11 +49,11 @@ public class EndPortalFeatureMixin { } @ModifyVariable(method = "generate", ordinal = 0, at = @At("HEAD")) - private BlockPos be_setPosOnGround(BlockPos blockPos, StructureWorldAccess world) { + private BlockPos be_setPosOnGround(BlockPos blockPos, WorldGenLevel world) { return be_updatePos(blockPos, world); } - private BlockPos be_updatePos(BlockPos blockPos, StructureWorldAccess world) { + private BlockPos be_updatePos(BlockPos blockPos, WorldGenLevel world) { if (GeneratorOptions.useNewGenerator()) { BlockPos pos = GeneratorOptions.getPortalPos(); if (pos.equals(BlockPos.ORIGIN)) { diff --git a/src/main/java/ru/betterend/mixin/common/EndSpikeFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndSpikeFeatureMixin.java index 579fc164..592906c2 100644 --- a/src/main/java/ru/betterend/mixin/common/EndSpikeFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndSpikeFeatureMixin.java @@ -20,11 +20,11 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.ServerWorldAccess; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.EndSpikeFeature; -import net.minecraft.world.gen.feature.EndSpikeFeatureConfig; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.EndSpikeFeature; +import net.minecraft.world.level.levelgen.feature.EndSpikeFeatureConfig; import ru.betterend.BetterEnd; import ru.betterend.util.BlocksHelper; import ru.betterend.util.StructureHelper; @@ -34,16 +34,15 @@ import ru.betterend.world.generator.GeneratorOptions; @Mixin(EndSpikeFeature.class) public class EndSpikeFeatureMixin { @Inject(method = "generate", at = @At("HEAD"), cancellable = true) - private void beSpikeGenerate(StructureWorldAccess structureWorldAccess, ChunkGenerator chunkGenerator, - Random random, BlockPos blockPos, EndSpikeFeatureConfig endSpikeFeatureConfig, - CallbackInfoReturnable info) { + private void beSpikeGenerate(WorldGenLevel structureWorldAccess, ChunkGenerator chunkGenerator, Random random, + BlockPos blockPos, EndSpikeFeatureConfig endSpikeFeatureConfig, CallbackInfoReturnable info) { if (!GeneratorOptions.hasPillars()) { info.setReturnValue(false); } } @Inject(method = "generateSpike", at = @At("HEAD"), cancellable = true) - private void be_generateSpike(ServerWorldAccess world, Random random, EndSpikeFeatureConfig config, + private void be_generateSpike(ServerLevelAccessor world, Random random, EndSpikeFeatureConfig config, EndSpikeFeature.Spike spike, CallbackInfo info) { int x = spike.getCenterX(); int z = spike.getCenterZ(); diff --git a/src/main/java/ru/betterend/mixin/common/EndermanEntityMixin.java b/src/main/java/ru/betterend/mixin/common/EndermanEntityMixin.java index 8cef9161..6656836e 100644 --- a/src/main/java/ru/betterend/mixin/common/EndermanEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndermanEntityMixin.java @@ -8,16 +8,16 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.mob.EndermanEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import ru.betterend.effects.EndEnchantments; -import ru.betterend.effects.EndStatusEffects; +import ru.betterend.effects.EndMobEffects; @Mixin(EndermanEntity.class) public abstract class EndermanEntityMixin { @Inject(method = "isPlayerStaring", at = @At("HEAD"), cancellable = true) - private void be_isPlayerStaring(PlayerEntity player, CallbackInfoReturnable info) { - if (player.isCreative() || player.hasStatusEffect(EndStatusEffects.END_VEIL) || EnchantmentHelper + private void be_isPlayerStaring(Player player, CallbackInfoReturnable info) { + if (player.isCreative() || player.hasMobEffect(EndMobEffects.END_VEIL) || EnchantmentHelper .getLevel(EndEnchantments.END_VEIL, player.getEquippedStack(EquipmentSlot.HEAD)) > 0) { info.setReturnValue(false); } diff --git a/src/main/java/ru/betterend/mixin/common/EntityMixin.java b/src/main/java/ru/betterend/mixin/common/EntityMixin.java index 3a5f1047..980b9750 100644 --- a/src/main/java/ru/betterend/mixin/common/EntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EntityMixin.java @@ -81,7 +81,7 @@ public abstract class EntityMixin implements TeleportingEntity { @Override public void beSetExitPos(BlockPos pos) { - this.exitPos = pos.toImmutable(); + this.exitPos = pos.immutable(); } @Override diff --git a/src/main/java/ru/betterend/mixin/common/GenerationSettingsAccessor.java b/src/main/java/ru/betterend/mixin/common/GenerationSettingsAccessor.java index 07ba1b66..1e139594 100644 --- a/src/main/java/ru/betterend/mixin/common/GenerationSettingsAccessor.java +++ b/src/main/java/ru/betterend/mixin/common/GenerationSettingsAccessor.java @@ -7,20 +7,20 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import net.minecraft.world.biome.GenerationSettings; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; @Mixin(GenerationSettings.class) public interface GenerationSettingsAccessor { @Accessor("features") List>>> beGetFeatures(); - + @Accessor("features") void beSetFeatures(List>>> features); - + @Accessor("structureFeatures") List>> beGetStructures(); - + @Accessor("structureFeatures") void beSetStructures(List>> structures); } diff --git a/src/main/java/ru/betterend/mixin/common/HostileEntityMixin.java b/src/main/java/ru/betterend/mixin/common/HostileEntityMixin.java index 04ab3397..2251e0dd 100644 --- a/src/main/java/ru/betterend/mixin/common/HostileEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/HostileEntityMixin.java @@ -14,13 +14,14 @@ import net.minecraft.world.entity.mob.EndermanEntity; import net.minecraft.world.entity.mob.HostileEntity; import net.minecraft.core.BlockPos; import net.minecraft.util.math.Box; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.level.ServerLevelAccessor; @Mixin(HostileEntity.class) public class HostileEntityMixin { @Inject(method = "canSpawnInDark", at = @At(value = "RETURN"), cancellable = true) - private static void be_endermenCheck(EntityType type, ServerWorldAccess serverWorldAccess, - SpawnReason spawnReason, BlockPos pos, Random random, CallbackInfoReturnable info) { + private static void be_endermenCheck(EntityType type, + ServerLevelAccessor serverWorldAccess, SpawnReason spawnReason, BlockPos pos, Random random, + CallbackInfoReturnable info) { boolean canSpawn = info.getReturnValue(); if (canSpawn && spawnReason == SpawnReason.NATURAL && type == EntityType.ENDERMAN) { Box box = new Box(pos).expand(16); diff --git a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java index 58e071f2..d6a23643 100644 --- a/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/LivingEntityMixin.java @@ -2,6 +2,8 @@ package ru.betterend.mixin.common; import java.util.Collection; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.ai.attributes.Attributes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -11,9 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.attribute.EntityAttributeModifier; -import net.minecraft.world.entity.attribute.EntityAttributes; -import net.minecraft.world.entity.damage.DamageSource; +import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.item.Item; @Mixin(LivingEntity.class) @@ -21,16 +21,16 @@ public abstract class LivingEntityMixin { private Entity lastAttacker; - @Inject(method = "damage", at = @At("HEAD")) + @Inject(method = "hurt", at = @At("HEAD")) public void be_damage(DamageSource source, float amount, CallbackInfoReturnable info) { - this.lastAttacker = source.getAttacker(); + this.lastAttacker = source.getEntity(); } - @ModifyArg(method = "damage", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;takeKnockback(FDD)V")) + @ModifyArg(method = "hurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(FDD)V")) private float be_increaseKnockback(float value, double x, double z) { if (lastAttacker != null && lastAttacker instanceof LivingEntity) { LivingEntity attacker = (LivingEntity) lastAttacker; - value += this.be_getKnockback(attacker.getMainHandStack().getItem()); + value += this.be_getKnockback(attacker.getMainHandItem().getItem()); } return value; } @@ -38,10 +38,10 @@ public abstract class LivingEntityMixin { private double be_getKnockback(Item tool) { if (tool == null) return 0.0D; - Collection modifiers = tool.getAttributeModifiers(EquipmentSlot.MAINHAND) - .get(EntityAttributes.GENERIC_ATTACK_KNOCKBACK); + Collection modifiers = tool.getDefaultAttributeModifiers(EquipmentSlot.MAINHAND) + .get(Attributes.ATTACK_KNOCKBACK); if (modifiers.size() > 0) { - return modifiers.iterator().next().getValue(); + return modifiers.iterator().next().getAmount(); } return 0.0D; } diff --git a/src/main/java/ru/betterend/mixin/common/MinecraftServerMixin.java b/src/main/java/ru/betterend/mixin/common/MinecraftServerMixin.java index 3bdf2c65..7b7fbef6 100644 --- a/src/main/java/ru/betterend/mixin/common/MinecraftServerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/MinecraftServerMixin.java @@ -18,7 +18,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.PlayerManager; import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.registry.RegistryKey; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.SaveProperties; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerWorldProperties; @@ -33,7 +33,7 @@ public class MinecraftServerMixin { @Final @Shadow - private Map, ServerLevel> worlds; + private Map, ServerLevel> worlds; @Final @Shadow diff --git a/src/main/java/ru/betterend/mixin/common/NoiseChunkGeneratorMixin.java b/src/main/java/ru/betterend/mixin/common/NoiseChunkGeneratorMixin.java index 375d706d..20934b4b 100644 --- a/src/main/java/ru/betterend/mixin/common/NoiseChunkGeneratorMixin.java +++ b/src/main/java/ru/betterend/mixin/common/NoiseChunkGeneratorMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import net.minecraft.world.biome.source.BiomeSource; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; import net.minecraft.world.gen.chunk.NoiseChunkGenerator; import net.minecraft.world.gen.chunk.StructuresConfig; @@ -22,24 +22,26 @@ public abstract class NoiseChunkGeneratorMixin extends ChunkGenerator { @Final @Shadow protected Supplier settings; - - public NoiseChunkGeneratorMixin(BiomeSource populationSource, BiomeSource biomeSource, StructuresConfig structuresConfig, long worldSeed) { + + public NoiseChunkGeneratorMixin(BiomeSource populationSource, BiomeSource biomeSource, + StructuresConfig structuresConfig, long worldSeed) { super(populationSource, biomeSource, structuresConfig, worldSeed); } - + @Inject(method = "(Lnet/minecraft/world/biome/source/BiomeSource;Lnet/minecraft/world/biome/source/BiomeSource;JLjava/util/function/Supplier;)V", at = @At("TAIL")) - private void beOnInit(BiomeSource populationSource, BiomeSource biomeSource, long seed, Supplier settings, CallbackInfo info) { + private void beOnInit(BiomeSource populationSource, BiomeSource biomeSource, long seed, + Supplier settings, CallbackInfo info) { TerrainGenerator.initNoise(seed); } - + @Inject(method = "sampleNoiseColumn([DII)V", at = @At("HEAD"), cancellable = true, allow = 2) private void beSampleNoiseColumn(double[] buffer, int x, int z, CallbackInfo info) { if (GeneratorOptions.useNewGenerator() && settings.get().equals(ChunkGeneratorSettings.END)) { - //System.out.println(TerrainGenerator.canGenerate(x, z)); - //if (TerrainGenerator.canGenerate(x, z)) { - TerrainGenerator.fillTerrainDensity(buffer, x, z, getBiomeSource()); - info.cancel(); - //} + // System.out.println(TerrainGenerator.canGenerate(x, z)); + // if (TerrainGenerator.canGenerate(x, z)) { + TerrainGenerator.fillTerrainDensity(buffer, x, z, getBiomeSource()); + info.cancel(); + // } } } } diff --git a/src/main/java/ru/betterend/mixin/common/PlayerEntityMixin.java b/src/main/java/ru/betterend/mixin/common/PlayerEntityMixin.java index af378145..3363b548 100644 --- a/src/main/java/ru/betterend/mixin/common/PlayerEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/PlayerEntityMixin.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerLevel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -19,7 +19,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; -@Mixin(PlayerEntity.class) +@Mixin(Player.class) public abstract class PlayerEntityMixin { private static Direction[] HORIZONTAL; diff --git a/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java b/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java index ed21cf4a..18482905 100644 --- a/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/PlayerManagerMixin.java @@ -21,7 +21,7 @@ import com.mojang.serialization.Dynamic; import io.netty.buffer.Unpooled; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.effect.StatusEffectInstance; +import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; @@ -31,7 +31,7 @@ import net.minecraft.network.Packet; import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.network.packet.s2c.play.DifficultyS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityStatusEffectS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityMobEffectS2CPacket; import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket; import net.minecraft.network.packet.s2c.play.HeldItemChangeS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerAbilitiesS2CPacket; @@ -50,7 +50,7 @@ import net.minecraft.util.Formatting; import net.minecraft.util.UserCache; import net.minecraft.util.Util; import net.minecraft.util.registry.DynamicRegistryManager; -import net.minecraft.util.registry.RegistryKey; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.GameRules; import net.minecraft.world.level.Level; import net.minecraft.world.WorldProperties; @@ -92,18 +92,18 @@ public class PlayerManagerMixin { String string = gameProfile2 == null ? gameProfile.getName() : gameProfile2.getName(); userCache.add(gameProfile); CompoundTag compoundTag = this.loadPlayerData(player); - RegistryKey var23; + ResourceKey var23; if (compoundTag != null) { - DataResult> var10000 = DimensionType + DataResult> var10000 = DimensionType .method_28521(new Dynamic(NbtOps.INSTANCE, compoundTag.get("Dimension"))); Logger var10001 = LOGGER; var10001.getClass(); - var23 = (RegistryKey) var10000.resultOrPartial(var10001::error).orElse(Level.END); + var23 = (ResourceKey) var10000.resultOrPartial(var10001::error).orElse(Level.END); } else { var23 = Level.END; } - RegistryKey registryKey = var23; + ResourceKey registryKey = var23; ServerLevel serverWorld = this.server.getLevel(registryKey); ServerLevel serverWorld3; if (serverWorld == null) { @@ -178,12 +178,12 @@ public class PlayerManagerMixin { player.sendResourcePackUrl(this.server.getResourcePackUrl(), this.server.getResourcePackHash()); } - Iterator var24 = player.getStatusEffects().iterator(); + Iterator var24 = player.getMobEffects().iterator(); while (var24.hasNext()) { - StatusEffectInstance statusEffectInstance = (StatusEffectInstance) var24.next(); + MobEffectInstance statusEffectInstance = (MobEffectInstance) var24.next(); serverPlayNetworkHandler - .sendPacket(new EntityStatusEffectS2CPacket(player.getEntityId(), statusEffectInstance)); + .sendPacket(new EntityMobEffectS2CPacket(player.getEntityId(), statusEffectInstance)); } if (compoundTag != null && compoundTag.contains("RootVehicle", 10)) { diff --git a/src/main/java/ru/betterend/mixin/common/ServerPlayerEntityMixin.java b/src/main/java/ru/betterend/mixin/common/ServerPlayerEntityMixin.java index 9c95d85e..f592d94d 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerPlayerEntityMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerPlayerEntityMixin.java @@ -11,10 +11,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import com.mojang.authlib.GameProfile; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.player.Player; import net.minecraft.network.packet.s2c.play.DifficultyS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityStatusEffectS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityMobEffectS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerAbilitiesS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket; import net.minecraft.network.packet.s2c.play.WorldEventS2CPacket; @@ -34,7 +34,7 @@ import ru.betterend.interfaces.TeleportingEntity; import ru.betterend.world.generator.GeneratorOptions; @Mixin(ServerPlayer.class) -public abstract class ServerPlayerEntityMixin extends PlayerEntity implements TeleportingEntity { +public abstract class ServerPlayerEntityMixin extends Player implements TeleportingEntity { @Shadow public ServerPlayNetworkHandler networkHandler; @@ -108,9 +108,8 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntity implements Te playerManager.sendWorldInfo(player, destination); playerManager.sendPlayerStatus(player); - for (StatusEffectInstance statusEffectInstance : this.getStatusEffects()) { - this.networkHandler - .sendPacket(new EntityStatusEffectS2CPacket(getEntityId(), statusEffectInstance)); + for (MobEffectInstance statusEffectInstance : this.getMobEffects()) { + this.networkHandler.sendPacket(new EntityMobEffectS2CPacket(getEntityId(), statusEffectInstance)); } this.networkHandler.sendPacket(new WorldEventS2CPacket(1032, BlockPos.ORIGIN, 0, false)); @@ -135,7 +134,7 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntity implements Te @Override public void beSetExitPos(BlockPos pos) { - this.exitPos = pos.toImmutable(); + this.exitPos = pos.immutable(); } @Override diff --git a/src/main/java/ru/betterend/mixin/common/ServerWorldMixin.java b/src/main/java/ru/betterend/mixin/common/ServerWorldMixin.java index 5ca3794c..944990c0 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerWorldMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerWorldMixin.java @@ -19,11 +19,11 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.level.ServerLevel; import net.minecraft.core.BlockPos; -import net.minecraft.util.registry.RegistryKey; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.gen.Spawner; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.ServerWorldProperties; import net.minecraft.world.level.storage.LevelStorage; import ru.betterend.BetterEnd; @@ -39,7 +39,7 @@ public class ServerWorldMixin { @Inject(method = "*", at = @At("TAIL")) private void be_onServerWorldInit(MinecraftServer server, Executor workerExecutor, LevelStorage.Session session, - ServerWorldProperties properties, RegistryKey registryKey, DimensionType dimensionType, + ServerWorldProperties properties, ResourceKey registryKey, DimensionType dimensionType, WorldGenerationProgressListener worldGenerationProgressListener, ChunkGenerator chunkGenerator, boolean debugWorld, long l, List list, boolean bl, CallbackInfo info) { if (lastWorld != null && lastWorld.equals(session.getDirectoryName())) { diff --git a/src/main/java/ru/betterend/mixin/common/WeightedBiomePickerMixin.java b/src/main/java/ru/betterend/mixin/common/WeightedBiomePickerMixin.java index ecfe1b63..f8f3830e 100644 --- a/src/main/java/ru/betterend/mixin/common/WeightedBiomePickerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/WeightedBiomePickerMixin.java @@ -11,28 +11,29 @@ import com.google.common.collect.Lists; import net.fabricmc.fabric.impl.biome.InternalBiomeData; import net.fabricmc.fabric.impl.biome.WeightedBiomePicker; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeKeys; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; import ru.betterend.interfaces.IBiomeList; @Mixin(value = WeightedBiomePicker.class, remap = false) public class WeightedBiomePickerMixin implements IBiomeList { - private List> biomes = Lists.newArrayList(); - + private List> biomes = Lists.newArrayList(); + @Inject(method = "addBiome", at = @At("TAIL")) - private void be_addBiome(final RegistryKey biome, final double weight, CallbackInfo info) { + private void be_addBiome(final ResourceKey biome, final double weight, CallbackInfo info) { if (be_isCorrectPicker((WeightedBiomePicker) (Object) this)) { biomes.add(biome); } } - + @Override - public List> getBiomes() { + public List> getBiomes() { return biomes; } - + private boolean be_isCorrectPicker(WeightedBiomePicker picker) { - return picker == InternalBiomeData.getEndBiomesMap().get(BiomeKeys.SMALL_END_ISLANDS) || picker == InternalBiomeData.getEndBarrensMap().get(BiomeKeys.END_BARRENS); + return picker == InternalBiomeData.getEndBiomesMap().get(Biomes.SMALL_END_ISLANDS) + || picker == InternalBiomeData.getEndBarrensMap().get(Biomes.END_BARRENS); } } diff --git a/src/main/java/ru/betterend/patterns/Patterns.java b/src/main/java/ru/betterend/patterns/Patterns.java index eba3e869..d4f5b7da 100644 --- a/src/main/java/ru/betterend/patterns/Patterns.java +++ b/src/main/java/ru/betterend/patterns/Patterns.java @@ -11,7 +11,7 @@ import java.util.stream.Collectors; import com.google.common.collect.Maps; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.resource.ResourceManager; import net.minecraft.resources.ResourceLocation; import ru.betterend.BetterEnd; @@ -145,7 +145,7 @@ public class Patterns { } public static String createJson(ResourceLocation patternId, String parent, String block) { - ResourceManager resourceManager = MinecraftClient.getInstance().getResourceManager(); + ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { return createJson(new InputStreamReader(input, StandardCharsets.UTF_8), parent, block); } catch (Exception ex) { @@ -160,7 +160,7 @@ public class Patterns { } public static String createJson(ResourceLocation patternId, Map textures) { - ResourceManager resourceManager = MinecraftClient.getInstance().getResourceManager(); + ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { String json = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)).lines() .collect(Collectors.joining()); diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index bee10313..841be2e2 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -6,7 +6,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.potion.PotionUtil; -import net.minecraft.potion.Potions; +import net.minecraft.world.item.alchemy.Potions; import ru.betterend.BetterEnd; import ru.betterend.item.GuideBookItem; import ru.betterend.recipe.builders.GridRecipe; diff --git a/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java b/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java index 69874cb2..fc5876a1 100644 --- a/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/AlloyingRecipe.java @@ -7,7 +7,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.inventory.Inventory; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.world.item.crafting.Ingredient; @@ -157,16 +157,16 @@ public class AlloyingRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder setPrimaryInput(ItemConvertible... inputs) { - for (ItemConvertible item : inputs) { + public Builder setPrimaryInput(ItemLike... inputs) { + for (ItemLike item : inputs) { this.alright &= RecipeHelper.exists(item); } this.primaryInput = Ingredient.of(inputs); return this; } - public Builder setSecondaryInput(ItemConvertible... inputs) { - for (ItemConvertible item : inputs) { + public Builder setSecondaryInput(ItemLike... inputs) { + for (ItemLike item : inputs) { this.alright &= RecipeHelper.exists(item); } this.secondaryInput = Ingredient.of(inputs); @@ -183,7 +183,7 @@ public class AlloyingRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder setInput(ItemConvertible primaryInput, ItemConvertible secondaryInput) { + public Builder setInput(ItemLike primaryInput, ItemLike secondaryInput) { this.setPrimaryInput(primaryInput); this.setSecondaryInput(secondaryInput); return this; @@ -195,7 +195,7 @@ public class AlloyingRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder setOutput(ItemConvertible output, int amount) { + public Builder setOutput(ItemLike output, int amount) { this.alright &= RecipeHelper.exists(output); this.output = new ItemStack(output, amount); return this; diff --git a/src/main/java/ru/betterend/recipe/builders/AnvilRecipe.java b/src/main/java/ru/betterend/recipe/builders/AnvilRecipe.java index f46d27fe..498d55f5 100644 --- a/src/main/java/ru/betterend/recipe/builders/AnvilRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/AnvilRecipe.java @@ -6,12 +6,12 @@ import com.google.gson.JsonObject; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.inventory.Inventory; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ToolItem; +import net.minecraft.world.item.TieredItem; import net.minecraft.network.PacketByteBuf; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; @@ -76,7 +76,7 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { return this.output.copy(); } - public ItemStack craft(Inventory craftingInventory, PlayerEntity player) { + public ItemStack craft(Inventory craftingInventory, Player player) { if (!player.isCreative()) { if (!checkHammerDurability(craftingInventory, player)) return ItemStack.EMPTY; @@ -86,7 +86,7 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { return this.craft(craftingInventory); } - public boolean checkHammerDurability(Inventory craftingInventory, PlayerEntity player) { + public boolean checkHammerDurability(Inventory craftingInventory, Player player) { if (player.isCreative()) return true; ItemStack hammer = craftingInventory.getStack(1); @@ -101,7 +101,7 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { } ItemStack material = craftingInventory.getStack(0); int materialCount = material.getCount(); - int level = ((ToolItem) hammer.getItem()).getTier().getLevel(); + int level = ((TieredItem) hammer.getItem()).getTier().getLevel(); return this.input.test(craftingInventory.getStack(0)) && materialCount >= this.inputCount && level >= this.toolLevel; } @@ -122,7 +122,7 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { public DefaultedList getPreviewInputs() { DefaultedList defaultedList = DefaultedList.of(); defaultedList.add(Ingredient.ofStacks(EndTags.HAMMERS.values().stream() - .filter(hammer -> ((ToolItem) hammer).getTier().getLevel() >= toolLevel).map(ItemStack::new))); + .filter(hammer -> ((TieredItem) hammer).getTier().getLevel() >= toolLevel).map(ItemStack::new))); defaultedList.add(input); return defaultedList; @@ -202,7 +202,7 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { private Builder() { } - public Builder setInput(ItemConvertible... inputItems) { + public Builder setInput(ItemLike... inputItems) { this.alright &= RecipeHelper.exists(inputItems); this.setInput(Ingredient.of(inputItems)); return this; @@ -223,11 +223,11 @@ public class AnvilRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder setOutput(ItemConvertible output) { + public Builder setOutput(ItemLike output) { return this.setOutput(output, 1); } - public Builder setOutput(ItemConvertible output, int amount) { + public Builder setOutput(ItemLike output, int amount) { this.alright &= RecipeHelper.exists(output); this.output = new ItemStack(output, amount); return this; diff --git a/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java b/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java index cdf09e24..928a533e 100644 --- a/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/FurnaceRecipe.java @@ -1,6 +1,6 @@ package ru.betterend.recipe.builders; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.BlastingRecipe; import net.minecraft.world.item.crafting.CampfireCookingRecipe; @@ -17,8 +17,8 @@ import ru.betterend.util.RecipeHelper; public class FurnaceRecipe { private static final FurnaceRecipe INSTANCE = new FurnaceRecipe(); - private ItemConvertible input; - private ItemConvertible output; + private ItemLike input; + private ItemLike output; private boolean exist; private String group; private String name; @@ -29,7 +29,7 @@ public class FurnaceRecipe { private FurnaceRecipe() { } - public static FurnaceRecipe make(String name, ItemConvertible input, ItemConvertible output) { + public static FurnaceRecipe make(String name, ItemLike input, ItemLike output) { INSTANCE.name = name; INSTANCE.group = ""; INSTANCE.input = input; diff --git a/src/main/java/ru/betterend/recipe/builders/GridRecipe.java b/src/main/java/ru/betterend/recipe/builders/GridRecipe.java index c51f2090..d3991074 100644 --- a/src/main/java/ru/betterend/recipe/builders/GridRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/GridRecipe.java @@ -6,7 +6,7 @@ import java.util.Map; import com.google.common.collect.Maps; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingRecipe; import net.minecraft.world.item.crafting.Ingredient; @@ -25,7 +25,7 @@ public class GridRecipe { private static final GridRecipe INSTANCE = new GridRecipe(); private String name; - private ItemConvertible output; + private ItemLike output; private String group; private RecipeType type; @@ -38,7 +38,7 @@ public class GridRecipe { private GridRecipe() { } - public static GridRecipe make(String name, ItemConvertible output) { + public static GridRecipe make(String name, ItemLike output) { INSTANCE.name = name; INSTANCE.output = output; @@ -78,8 +78,8 @@ public class GridRecipe { return addMaterial(key, Ingredient.ofStacks(Arrays.stream(value))); } - public GridRecipe addMaterial(char key, ItemConvertible... values) { - for (ItemConvertible item : values) { + public GridRecipe addMaterial(char key, ItemLike... values) { + for (ItemLike item : values) { exist &= RecipeHelper.exists(item); } return addMaterial(key, Ingredient.of(values)); diff --git a/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java b/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java index 079c0b07..8864b200 100644 --- a/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java @@ -6,7 +6,7 @@ import com.google.gson.JsonObject; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.world.item.crafting.Ingredient; @@ -146,12 +146,12 @@ public class InfusionRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder setInput(ItemConvertible input) { + public Builder setInput(ItemLike input) { this.input = Ingredient.of(input); return this; } - public Builder setOutput(ItemConvertible output) { + public Builder setOutput(ItemLike output) { this.output = new ItemStack(output); this.output.setCount(1); return this; @@ -168,7 +168,7 @@ public class InfusionRecipe implements Recipe, BetterEndRecipe { return this; } - public Builder addCatalyst(int slot, ItemConvertible... items) { + public Builder addCatalyst(int slot, ItemLike... items) { if (slot > 7) return this; this.catalysts[slot] = Ingredient.of(items); diff --git a/src/main/java/ru/betterend/recipe/builders/SmithingTableRecipe.java b/src/main/java/ru/betterend/recipe/builders/SmithingTableRecipe.java index d2172a2c..bed7b508 100644 --- a/src/main/java/ru/betterend/recipe/builders/SmithingTableRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/SmithingTableRecipe.java @@ -1,7 +1,7 @@ package ru.betterend.recipe.builders; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeType; @@ -41,17 +41,17 @@ public class SmithingTableRecipe { private SmithingTableRecipe() { } - public SmithingTableRecipe setResult(ItemConvertible item) { + public SmithingTableRecipe setResult(ItemLike item) { return this.setResult(item, 1); } - public SmithingTableRecipe setResult(ItemConvertible item, int count) { + public SmithingTableRecipe setResult(ItemLike item, int count) { this.alright &= RecipeHelper.exists(item); this.result = new ItemStack(item, count); return this; } - public SmithingTableRecipe setBase(ItemConvertible... items) { + public SmithingTableRecipe setBase(ItemLike... items) { this.alright &= RecipeHelper.exists(items); this.base = Ingredient.of(items); return this; @@ -62,7 +62,7 @@ public class SmithingTableRecipe { return this; } - public SmithingTableRecipe setAddition(ItemConvertible... items) { + public SmithingTableRecipe setAddition(ItemLike... items) { this.alright &= RecipeHelper.exists(items); this.addition = Ingredient.of(items); return this; diff --git a/src/main/java/ru/betterend/registry/EndBiomes.java b/src/main/java/ru/betterend/registry/EndBiomes.java index 8b133da5..9526810c 100644 --- a/src/main/java/ru/betterend/registry/EndBiomes.java +++ b/src/main/java/ru/betterend/registry/EndBiomes.java @@ -18,15 +18,14 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.impl.biome.InternalBiomeData; import net.fabricmc.fabric.impl.biome.WeightedBiomePicker; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; +import net.minecraft.data.BuiltinRegistries; +import net.minecraft.resources.ResourceKey; import net.minecraft.server.MinecraftServer; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.core.Registry; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.Biome.Category; -import net.minecraft.world.biome.BiomeKeys; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; import ru.betterend.integration.Integrations; @@ -75,13 +74,13 @@ public class EndBiomes { private static Registry biomeRegistry; // Vanilla Land - public static final EndBiome END = registerBiome(BiomeKeys.THE_END, BiomeType.LAND, 1F); - public static final EndBiome END_MIDLANDS = registerSubBiome(BiomeKeys.END_MIDLANDS, END, 0.5F); - public static final EndBiome END_HIGHLANDS = registerSubBiome(BiomeKeys.END_HIGHLANDS, END, 0.5F); + public static final EndBiome END = registerBiome(Biomes.THE_END, BiomeType.LAND, 1F); + public static final EndBiome END_MIDLANDS = registerSubBiome(Biomes.END_MIDLANDS, END, 0.5F); + public static final EndBiome END_HIGHLANDS = registerSubBiome(Biomes.END_HIGHLANDS, END, 0.5F); // Vanilla Void - public static final EndBiome END_BARRENS = registerBiome(BiomeKeys.END_BARRENS, BiomeType.VOID, 1F); - public static final EndBiome SMALL_END_ISLANDS = registerBiome(BiomeKeys.SMALL_END_ISLANDS, BiomeType.VOID, 1); + public static final EndBiome END_BARRENS = registerBiome(Biomes.END_BARRENS, BiomeType.VOID, 1F); + public static final EndBiome SMALL_END_ISLANDS = registerBiome(Biomes.SMALL_END_ISLANDS, BiomeType.VOID, 1); // Better End Land public static final EndBiome FOGGY_MUSHROOMLAND = registerBiome(new FoggyMushroomlandBiome(), BiomeType.LAND); @@ -129,8 +128,8 @@ public class EndBiomes { Map configs = Maps.newHashMap(); biomeRegistry.forEach((biome) -> { - if (biome.getCategory() == Category.THEEND) { - ResourceLocation id = biomeRegistry.getId(biome); + if (biome.getBiomeCategory() == Biome.BiomeCategory.THEEND) { + ResourceLocation id = biomeRegistry.getKey(biome); if (Configs.BIOME_CONFIG.getBoolean(id, "enabled", true)) { if (!LAND_BIOMES.containsImmutable(id) && !VOID_BIOMES.containsImmutable(id) && !SUBBIOMES_UNMUTABLES.contains(id)) { @@ -184,22 +183,20 @@ public class EndBiomes { } private static void loadFabricAPIBiomes() { - List> biomes = Lists.newArrayList(); - biomes.addAll(getBiomes(InternalBiomeData.getEndBiomesMap().get(BiomeKeys.SMALL_END_ISLANDS))); - biomes.addAll(getBiomes(InternalBiomeData.getEndBarrensMap().get(BiomeKeys.END_BARRENS))); - biomes.forEach((key) -> FABRIC_VOID.add(key.getValue())); + List> biomes = Lists.newArrayList(); + biomes.addAll(getBiomes(InternalBiomeData.getEndBiomesMap().get(Biomes.SMALL_END_ISLANDS))); + biomes.addAll(getBiomes(InternalBiomeData.getEndBarrensMap().get(Biomes.END_BARRENS))); + biomes.forEach((key) -> FABRIC_VOID.add(key.location())); if (BetterEnd.isDevEnvironment()) { System.out.println("=================================="); System.out.println("Added void biomes from Fabric API:"); - FABRIC_VOID.forEach((id) -> { - System.out.println(id); - }); + FABRIC_VOID.forEach(System.out::println); System.out.println("=================================="); } } - private static List> getBiomes(WeightedBiomePicker picker) { + private static List> getBiomes(WeightedBiomePicker picker) { IBiomeList biomeList = (IBiomeList) (Object) picker; return biomeList == null ? Collections.emptyList() : biomeList.getBiomes(); } @@ -222,7 +219,7 @@ public class EndBiomes { */ public static void initRegistry(MinecraftServer server) { if (biomeRegistry == null) { - biomeRegistry = server.registryAccess().get(Registry.BIOME_KEY); + biomeRegistry = server.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); } } @@ -250,7 +247,7 @@ public class EndBiomes { * @return registered {@link EndBiome} */ public static EndBiome registerBiome(Biome biome, BiomeType type, float fogDensity, float genChance) { - EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getId(biome), biome, fogDensity, genChance, true); + EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getKey(biome), biome, fogDensity, genChance, true); if (Configs.BIOME_CONFIG.getBoolean(endBiome.getID(), "enabled", true)) { addToPicker(endBiome, type); } @@ -282,7 +279,7 @@ public class EndBiomes { */ public static EndBiome registerSubBiome(Biome biome, EndBiome parent, float fogDensity, float genChance, boolean hasCaves) { - EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getId(biome), biome, fogDensity, genChance, hasCaves); + EndBiome endBiome = new EndBiome(BuiltinRegistries.BIOME.getKey(biome), biome, fogDensity, genChance, hasCaves); if (Configs.BIOME_CONFIG.getBoolean(endBiome.getID(), "enabled", true)) { parent.addSubBiome(endBiome); SUBBIOMES.add(endBiome); @@ -365,11 +362,11 @@ public class EndBiomes { } } - public static EndBiome registerBiome(RegistryKey key, BiomeType type, float genChance) { + public static EndBiome registerBiome(ResourceKey key, BiomeType type, float genChance) { return registerBiome(BuiltinRegistries.BIOME.get(key), type, genChance); } - public static EndBiome registerSubBiome(RegistryKey key, EndBiome parent, float genChance) { + public static EndBiome registerSubBiome(ResourceKey key, EndBiome parent, float genChance) { return registerSubBiome(BuiltinRegistries.BIOME.get(key), parent, genChance, true); } @@ -387,15 +384,15 @@ public class EndBiomes { private static void addLandBiomeToFabricApi(EndBiome biome) { float weight = biome.getGenChanceImmutable(); - RegistryKey key = BuiltinRegistries.BIOME.getKey(biome.getBiome()).get(); - InternalBiomeData.addEndBiomeReplacement(BiomeKeys.END_HIGHLANDS, key, weight); - InternalBiomeData.addEndBiomeReplacement(BiomeKeys.END_MIDLANDS, key, weight); + ResourceKey key = BuiltinRegistries.BIOME.getResourceKey(biome.getBiome()).get(); + InternalBiomeData.addEndBiomeReplacement(Biomes.END_HIGHLANDS, key, weight); + InternalBiomeData.addEndBiomeReplacement(Biomes.END_MIDLANDS, key, weight); } private static void addVoidBiomeToFabricApi(EndBiome biome) { float weight = biome.getGenChanceImmutable(); - RegistryKey key = BuiltinRegistries.BIOME.getKey(biome.getBiome()).get(); - InternalBiomeData.addEndBiomeReplacement(BiomeKeys.SMALL_END_ISLANDS, key, weight); + ResourceKey key = BuiltinRegistries.BIOME.getResourceKey(biome.getBiome()).get(); + InternalBiomeData.addEndBiomeReplacement(Biomes.SMALL_END_ISLANDS, key, weight); } public static EndBiome getFromBiome(Biome biome) { @@ -406,8 +403,9 @@ public class EndBiomes { public static EndBiome getRenderBiome(Biome biome) { EndBiome endBiome = CLIENT.get(biome); if (endBiome == null) { - MinecraftClient minecraft = MinecraftClient.getInstance(); - ResourceLocation id = minecraft.world.registryAccess().get(Registry.BIOME_KEY).getId(biome); + Minecraft minecraft = Minecraft.getInstance(); + ResourceLocation id = minecraft.level.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY) + .getKey(biome); endBiome = id == null ? END : ID_MAP.getOrDefault(id, END); CLIENT.put(biome, endBiome); } @@ -415,7 +413,7 @@ public class EndBiomes { } public static ResourceLocation getBiomeID(Biome biome) { - ResourceLocation id = biomeRegistry.getId(biome); + ResourceLocation id = biomeRegistry.getKey(biome); return id == null ? END.getID() : id; } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index e4bb5310..b21a480a 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -400,7 +400,7 @@ public class EndBlocks { maxCount = item.getStackSize(); placeOnWater = item.canPlaceOnWater(); } - Properties item = EndItems.makeBlockItemSettings().maxCount(maxCount); + Properties item = EndItems.makeBlockItemSettings().stacksTo(maxCount); if (placeOnWater) { EndItems.registerBlockItem(id, new LilyPadItem(block, item)); } else { diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index ffb8ef58..1003ed6f 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -7,9 +7,9 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.Blocks; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import ru.betterend.BetterEnd; import ru.betterend.world.biome.BiomeDefinition; import ru.betterend.world.biome.EndBiome; diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index fc5efa72..7e8f1f1e 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -5,25 +5,24 @@ import java.util.List; import com.google.common.collect.Lists; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; +import net.minecraft.core.dispenser.DispenseItemBehavior; +import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.food.Foods; import net.minecraft.world.item.*; import net.minecraft.world.level.block.DispenserBlock; -import net.minecraft.world.level.block.dispenser.ItemDispenserBehavior; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.SpawnReason; -import net.minecraft.world.entity.effect.StatusEffectInstance; -import net.minecraft.world.entity.effect.StatusEffects; -import net.minecraft.fluid.Fluids; -import net.minecraft.world.item.FoodComponent; -import net.minecraft.world.item.FoodComponents; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.level.material.Fluids; import net.minecraft.world.item.Item.Properties; -import net.minecraft.world.item.ToolItem; -import net.minecraft.world.item.ToolMaterials; -import net.minecraft.sound.SoundEvent; +import net.minecraft.world.item.TieredItem; +import net.minecraft.world.item.Tiers; import net.minecraft.tags.Tag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Rarity; -import net.minecraft.util.math.BlockPointer; import net.minecraft.core.Direction; import net.minecraft.core.Registry; import ru.betterend.BetterEnd; @@ -94,17 +93,17 @@ public class EndItems { EndArmorMaterial.CRYSTALITE, EquipmentSlot.FEET, makeItemSettings().rarity(Rarity.UNCOMMON))); // Tools // - public static final ToolItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", + public static final TieredItem AETERNIUM_SHOVEL = registerTool("aeternium_shovel", new EndShovelItem(EndToolMaterial.AETERNIUM, 1.5F, -3.0F, makeItemSettings().fireResistant())); - public static final ToolItem AETERNIUM_SWORD = registerTool("aeternium_sword", + public static final TieredItem AETERNIUM_SWORD = registerTool("aeternium_sword", new EndSwordItem(EndToolMaterial.AETERNIUM, 3, -2.4F, makeItemSettings().fireResistant())); - public static final ToolItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", + public static final TieredItem AETERNIUM_PICKAXE = registerTool("aeternium_pickaxe", new EndPickaxeItem(EndToolMaterial.AETERNIUM, 1, -2.8F, makeItemSettings().fireResistant())); - public static final ToolItem AETERNIUM_AXE = registerTool("aeternium_axe", + public static final TieredItem AETERNIUM_AXE = registerTool("aeternium_axe", new EndAxeItem(EndToolMaterial.AETERNIUM, 5.0F, -3.0F, makeItemSettings().fireResistant())); - public static final ToolItem AETERNIUM_HOE = registerTool("aeternium_hoe", + public static final TieredItem AETERNIUM_HOE = registerTool("aeternium_hoe", new EndHoeItem(EndToolMaterial.AETERNIUM, -3, 0.0F, makeItemSettings().fireResistant())); - public static final ToolItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", + public static final TieredItem AETERNIUM_HAMMER = registerTool("aeternium_hammer", new EndHammerItem(EndToolMaterial.AETERNIUM, 6.0F, -3.0F, 0.3D, makeItemSettings().fireResistant())); // Toolparts // @@ -117,33 +116,31 @@ public class EndItems { public final static Item AETERNIUM_SWORD_HANDLE = registerItem("aeternium_sword_handle"); // Hammers // - public static final ToolItem IRON_HAMMER = registerTool("iron_hammer", - new EndHammerItem(ToolMaterials.IRON, 5.0F, -3.2F, 0.2D, makeItemSettings())); - public static final ToolItem GOLDEN_HAMMER = registerTool("golden_hammer", - new EndHammerItem(ToolMaterials.GOLD, 4.5F, -3.4F, 0.3D, makeItemSettings())); - public static final ToolItem DIAMOND_HAMMER = registerTool("diamond_hammer", - new EndHammerItem(ToolMaterials.DIAMOND, 5.5F, -3.1F, 0.2D, makeItemSettings())); - public static final ToolItem NETHERITE_HAMMER = registerTool("netherite_hammer", - new EndHammerItem(ToolMaterials.NETHERITE, 5.0F, -3.0F, 0.2D, makeItemSettings().fireResistant())); + public static final TieredItem IRON_HAMMER = registerTool("iron_hammer", + new EndHammerItem(Tiers.IRON, 5.0F, -3.2F, 0.2D, makeItemSettings())); + public static final TieredItem GOLDEN_HAMMER = registerTool("golden_hammer", + new EndHammerItem(Tiers.GOLD, 4.5F, -3.4F, 0.3D, makeItemSettings())); + public static final TieredItem DIAMOND_HAMMER = registerTool("diamond_hammer", + new EndHammerItem(Tiers.DIAMOND, 5.5F, -3.1F, 0.2D, makeItemSettings())); + public static final TieredItem NETHERITE_HAMMER = registerTool("netherite_hammer", + new EndHammerItem(Tiers.NETHERITE, 5.0F, -3.0F, 0.2D, makeItemSettings().fireResistant())); // Food // public final static Item SHADOW_BERRY_RAW = registerFood("shadow_berry_raw", 4, 0.5F); public final static Item SHADOW_BERRY_COOKED = registerFood("shadow_berry_cooked", 6, 0.7F); - public final static Item END_FISH_RAW = registerFood("end_fish_raw", FoodComponents.SALMON); - public final static Item END_FISH_COOKED = registerFood("end_fish_cooked", FoodComponents.COOKED_SALMON); + public final static Item END_FISH_RAW = registerFood("end_fish_raw", Foods.SALMON); + public final static Item END_FISH_COOKED = registerFood("end_fish_cooked", Foods.COOKED_SALMON); public final static Item BUCKET_END_FISH = registerItem("bucket_end_fish", - new FishBucketItem(EndEntities.END_FISH, Fluids.WATER, makeItemSettings().maxCount(1))); + new FishBucketItem(EndEntities.END_FISH, Fluids.WATER, makeItemSettings().stacksTo(1))); public final static Item SWEET_BERRY_JELLY = registerFood("sweet_berry_jelly", 6, 0.75F); public final static Item SHADOW_BERRY_JELLY = registerFood("shadow_berry_jelly", 7, 0.75F, - new StatusEffectInstance(StatusEffects.NIGHT_VISION, 400)); - public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", FoodComponents.APPLE); + new MobEffectInstance(MobEffects.NIGHT_VISION, 400)); + public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", Foods.APPLE); public final static Item AMBER_ROOT_RAW = registerFood("amber_root_raw", 2, 0.8F); public final static Item CHORUS_MUSHROOM_RAW = registerFood("chorus_mushroom_raw", 3, 0.5F); - public final static Item CHORUS_MUSHROOM_COOKED = registerFood("chorus_mushroom_cooked", - FoodComponents.MUSHROOM_STEW); - public final static Item BOLUX_MUSHROOM_COOKED = registerFood("bolux_mushroom_cooked", - FoodComponents.MUSHROOM_STEW); - public final static Item CAVE_PUMPKIN_PIE = registerFood("cave_pumpkin_pie", FoodComponents.PUMPKIN_PIE); + public final static Item CHORUS_MUSHROOM_COOKED = registerFood("chorus_mushroom_cooked", Foods.MUSHROOM_STEW); + public final static Item BOLUX_MUSHROOM_COOKED = registerFood("bolux_mushroom_cooked", Foods.MUSHROOM_STEW); + public final static Item CAVE_PUMPKIN_PIE = registerFood("cave_pumpkin_pie", Foods.PUMPKIN_PIE); // Drinks // public final static Item UMBRELLA_CLUSTER_JUICE = registerDrink("umbrella_cluster_juice", 5, 0.7F); @@ -191,7 +188,7 @@ public class EndItems { return item; } - public static ToolItem registerTool(String name, ToolItem item) { + public static TieredItem registerTool(String name, TieredItem item) { ResourceLocation id = BetterEnd.makeID(name); if (!Configs.ITEM_CONFIG.getBoolean("tools", id.getPath(), true)) { return item; @@ -199,17 +196,17 @@ public class EndItems { registerItem(id, item, MOD_ITEMS); if (item instanceof ShovelItem) { - TagHelper.addTag((Tag.Identified) FabricToolTags.SHOVELS, item); + TagHelper.addTag((Tag.Named) FabricToolTags.SHOVELS, item); } else if (item instanceof SwordItem) { - TagHelper.addTag((Tag.Identified) FabricToolTags.SWORDS, item); + TagHelper.addTag((Tag.Named) FabricToolTags.SWORDS, item); } else if (item instanceof EndPickaxeItem) { - TagHelper.addTag((Tag.Identified) FabricToolTags.PICKAXES, item); + TagHelper.addTag((Tag.Named) FabricToolTags.PICKAXES, item); } else if (item instanceof EndAxeItem) { - TagHelper.addTag((Tag.Identified) FabricToolTags.AXES, item); + TagHelper.addTag((Tag.Named) FabricToolTags.AXES, item); } else if (item instanceof EndHoeItem) { - TagHelper.addTag((Tag.Identified) FabricToolTags.HOES, item); + TagHelper.addTag((Tag.Named) FabricToolTags.HOES, item); } else if (item instanceof EndHammerItem) { - TagHelper.addTag((Tag.Identified) EndTags.HAMMERS, item); + TagHelper.addTag((Tag.Named) EndTags.HAMMERS, item); } return item; @@ -217,42 +214,40 @@ public class EndItems { public static Item registerEgg(String name, EntityType type, int background, int dots) { SpawnEggItem item = new EndSpawnEggItem(type, background, dots, makeItemSettings()); - ItemDispenserBehavior behavior = new ItemDispenserBehavior() { - public ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) { - Direction direction = pointer.getBlockState().get(DispenserBlock.FACING); - EntityType entityType = ((SpawnEggItem) stack.getItem()).getEntityType(stack.getTag()); - entityType.spawnFromItemStack(pointer.getLevel(), stack, null, pointer.getBlockPos().offset(direction), - SpawnReason.DISPENSER, direction != Direction.UP, false); - stack.decrement(1); - return stack; - } + DispenseItemBehavior behavior = (pointer, stack) -> { + Direction direction = pointer.getBlockState().getValue(DispenserBlock.FACING); + EntityType entityType = ((SpawnEggItem) stack.getItem()).getType(stack.getTag()); + entityType.spawn(pointer.getLevel(), stack, null, pointer.getPos().relative(direction), + MobSpawnType.DISPENSER, direction != Direction.UP, false); + stack.shrink(1); + return stack; }; DispenserBlock.registerBehavior(item, behavior); return registerItem(name, item); } - public static Item registerFood(String name, int hunger, float saturation, StatusEffectInstance... effects) { - FoodComponent.Builder builder = new FoodComponent.Builder().hunger(hunger).saturationModifier(saturation); - for (StatusEffectInstance effect : effects) { - builder.statusEffect(effect, 1F); + public static Item registerFood(String name, int hunger, float saturation, MobEffectInstance... effects) { + FoodProperties.Builder builder = new FoodProperties.Builder().nutrition(hunger).saturationMod(saturation); + for (MobEffectInstance effect : effects) { + builder.effect(effect, 1F); } return registerFood(name, builder.build()); } - public static Item registerFood(String name, FoodComponent foodComponent) { + public static Item registerFood(String name, FoodProperties foodComponent) { return registerItem(name, new PatternedItem(makeItemSettings().food(foodComponent))); } public static Item registerDrink(String name) { - return registerItem(name, new DrinkItem(makeItemSettings().maxCount(1))); + return registerItem(name, new DrinkItem(makeItemSettings().stacksTo(1))); } - public static Item registerDrink(String name, FoodComponent foodComponent) { - return registerItem(name, new DrinkItem(makeItemSettings().maxCount(1).food(foodComponent))); + public static Item registerDrink(String name, FoodProperties foodComponent) { + return registerItem(name, new DrinkItem(makeItemSettings().stacksTo(1).food(foodComponent))); } public static Item registerDrink(String name, int hunger, float saturation) { - FoodComponent.Builder builder = new FoodComponent.Builder().hunger(hunger).saturationModifier(saturation); + FoodProperties.Builder builder = new FoodProperties.Builder().nutrition(hunger).saturationMod(saturation); return registerDrink(name, builder.build()); } diff --git a/src/main/java/ru/betterend/registry/EndSounds.java b/src/main/java/ru/betterend/registry/EndSounds.java index 5acdda1a..b5962beb 100644 --- a/src/main/java/ru/betterend/registry/EndSounds.java +++ b/src/main/java/ru/betterend/registry/EndSounds.java @@ -1,6 +1,6 @@ package ru.betterend.registry; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.core.Registry; import ru.betterend.BetterEnd; diff --git a/src/main/java/ru/betterend/registry/EndStructures.java b/src/main/java/ru/betterend/registry/EndStructures.java index aba3747f..bc11e4da 100644 --- a/src/main/java/ru/betterend/registry/EndStructures.java +++ b/src/main/java/ru/betterend/registry/EndStructures.java @@ -6,9 +6,9 @@ import java.util.function.Supplier; import net.minecraft.structure.StructurePieceType; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.gen.GenerationStep.Feature; -import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import ru.betterend.BetterEnd; import ru.betterend.world.structures.EndStructureFeature; import ru.betterend.world.structures.features.EternalPortalStructure; diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index 1c6cd6e1..46f7283f 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -10,16 +10,16 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.FoodComponent; +import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.Tag; -import net.minecraft.tags.Tag.Identified; +import net.minecraft.tags.Tag.Named; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.Biome.Category; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biome.Category; import net.minecraft.world.gen.surfacebuilder.SurfaceConfig; import ru.betterend.BetterEnd; import ru.betterend.blocks.EndTerrainBlock; @@ -34,45 +34,45 @@ public class EndTags { // https://fabricmc.net/wiki/tutorial:tags // Block Tags - public static final Tag.Identified BOOKSHELVES = makeCommonBlockTag("bookshelves"); - public static final Tag.Identified GEN_TERRAIN = makeBlockTag("gen_terrain"); - public static final Tag.Identified END_GROUND = makeBlockTag("end_ground"); - public static final Tag.Identified PEDESTALS = makeBlockTag("pedestal"); - public static final Tag.Identified BLOCK_CHEST = makeCommonBlockTag("chest"); - public static final Tag.Identified END_STONES = makeCommonBlockTag("end_stones"); - public static final Tag.Identified DRAGON_IMMUNE = getMCBlockTag("dragon_immune"); + public static final Tag.Named BOOKSHELVES = makeCommonBlockTag("bookshelves"); + public static final Tag.Named GEN_TERRAIN = makeBlockTag("gen_terrain"); + public static final Tag.Named END_GROUND = makeBlockTag("end_ground"); + public static final Tag.Named PEDESTALS = makeBlockTag("pedestal"); + public static final Tag.Named BLOCK_CHEST = makeCommonBlockTag("chest"); + public static final Tag.Named END_STONES = makeCommonBlockTag("end_stones"); + public static final Tag.Named DRAGON_IMMUNE = getMCBlockTag("dragon_immune"); // Item Tags - public static final Tag.Identified ITEM_CHEST = makeCommonItemTag("chest"); - public static final Tag.Identified IRON_INGOTS = makeCommonItemTag("iron_ingots"); - public static final Tag.Identified FURNACES = makeCommonItemTag("furnaces"); + public static final Tag.Named ITEM_CHEST = makeCommonItemTag("chest"); + public static final Tag.Named IRON_INGOTS = makeCommonItemTag("iron_ingots"); + public static final Tag.Named FURNACES = makeCommonItemTag("furnaces"); public final static Tag HAMMERS = registerFabricItemTag("hammers"); - public static Tag.Identified makeBlockTag(String name) { + public static Tag.Named makeBlockTag(String name) { ResourceLocation id = BetterEnd.makeID(name); Tag tag = BlockTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.block(id) : (Identified) tag; } - public static Tag.Identified makeItemTag(String name) { + public static Tag.Named makeItemTag(String name) { ResourceLocation id = BetterEnd.makeID(name); Tag tag = ItemTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.item(id) : (Identified) tag; } - public static Tag.Identified makeCommonBlockTag(String name) { + public static Tag.Named makeCommonBlockTag(String name) { ResourceLocation id = new ResourceLocation("c", name); Tag tag = BlockTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.block(id) : (Identified) tag; } - public static Tag.Identified makeCommonItemTag(String name) { + public static Tag.Named makeCommonItemTag(String name) { ResourceLocation id = new ResourceLocation("c", name); Tag tag = ItemTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.item(id) : (Identified) tag; } - public static Tag.Identified getMCBlockTag(String name) { + public static Tag.Named getMCBlockTag(String name) { ResourceLocation id = new ResourceLocation(name); Tag tag = BlockTags.getTagGroup().getTag(id); return tag == null ? (Identified) TagRegistry.block(id) : (Identified) tag; @@ -106,7 +106,7 @@ public class EndTags { EndItems.getModItems().forEach((item) -> { if (item.isFood()) { - FoodComponent food = item.getFoodComponent(); + FoodProperties food = item.getFoodComponent(); float compost = food.getHunger() * food.getSaturationModifier() * 0.18F; ComposterBlockAccessor.callRegisterCompostableItem(compost, item); } @@ -139,7 +139,7 @@ public class EndTags { public static void addTerrainTags(Registry biomeRegistry) { biomeRegistry.forEach((biome) -> { if (biome.getCategory() == Category.THEEND) { - SurfaceConfig config = biome.getGenerationSettings().getSurfaceConfig(); + SurfaceConfig config = biome.getGenerationSettings().getSurfaceBuilderConfig(); Block under = config.getUnderMaterial().getBlock(); Block surface = config.getTopMaterial().getBlock(); TagHelper.addTag(GEN_TERRAIN, under, surface); diff --git a/src/main/java/ru/betterend/rituals/EternalRitual.java b/src/main/java/ru/betterend/rituals/EternalRitual.java index 34430016..964cef7c 100644 --- a/src/main/java/ru/betterend/rituals/EternalRitual.java +++ b/src/main/java/ru/betterend/rituals/EternalRitual.java @@ -36,7 +36,7 @@ import net.minecraft.world.Heightmap; import net.minecraft.world.level.Level; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.level.dimension.DimensionType; -import net.minecraft.world.gen.feature.ConfiguredFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeatures; import ru.betterend.BetterEnd; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.EndPortalBlock; @@ -305,7 +305,7 @@ public class EternalRitual { int worldCeil = targetWorld.getDimensionHeight() - 1; if (checkIsAreaValid(targetWorld, basePos, portalAxis)) { generatePortal(targetWorld, basePos, portalAxis, portalId); - return basePos.toImmutable(); + return basePos.immutable(); } else { Direction direction = Direction.EAST; BlockPos.MutableBlockPos checkPos = basePos.mutable(); @@ -325,7 +325,7 @@ public class EternalRitual { while (checkPos.getY() >= 5) { if (checkIsAreaValid(targetWorld, checkPos, portalAxis)) { generatePortal(targetWorld, checkPos, portalAxis, portalId); - return checkPos.toImmutable(); + return checkPos.immutable(); } checkPos.move(Direction.DOWN); } @@ -345,7 +345,7 @@ public class EternalRitual { EndFeatures.BIOME_ISLAND.getFeatureConfigured().generate(targetWorld, targetWorld.getChunkManager().getChunkGenerator(), new Random(basePos.asLong()), basePos.below()); generatePortal(targetWorld, basePos, portalAxis, portalId); - return basePos.toImmutable(); + return basePos.immutable(); } private Level getTargetWorld(int state) { diff --git a/src/main/java/ru/betterend/rituals/InfusionRitual.java b/src/main/java/ru/betterend/rituals/InfusionRitual.java index 0db4530c..fc589e14 100644 --- a/src/main/java/ru/betterend/rituals/InfusionRitual.java +++ b/src/main/java/ru/betterend/rituals/InfusionRitual.java @@ -3,7 +3,7 @@ package ru.betterend.rituals; import java.awt.Point; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.entity.player.PlayerEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.inventory.Inventory; import net.minecraft.world.item.ItemStack; import net.minecraft.nbt.CompoundTag; @@ -230,7 +230,7 @@ public class InfusionRitual implements Inventory { } @Override - public boolean canPlayerUse(PlayerEntity player) { + public boolean canPlayerUse(Player player) { return true; } diff --git a/src/main/java/ru/betterend/util/BlocksHelper.java b/src/main/java/ru/betterend/util/BlocksHelper.java index 094ef837..580a5b7e 100644 --- a/src/main/java/ru/betterend/util/BlocksHelper.java +++ b/src/main/java/ru/betterend/util/BlocksHelper.java @@ -172,7 +172,7 @@ public class BlocksHelper { state = world.getBlockState(POS); if (state.getBlock() instanceof FurBlock) { - doubleCheck.add(POS.toImmutable()); + doubleCheck.add(POS.immutable()); } // Liquids else if (!state.getFluidState().isEmpty()) { @@ -237,7 +237,7 @@ public class BlocksHelper { if (state.is(Blocks.CHORUS_PLANT)) { Set ends = Sets.newHashSet(); Set add = Sets.newHashSet(); - ends.add(POS.toImmutable()); + ends.add(POS.immutable()); for (int i = 0; i < 64 && !ends.isEmpty(); i++) { ends.forEach((pos) -> { @@ -276,7 +276,7 @@ public class BlocksHelper { POS.setY(POS.getY() - 1); state = world.getBlockState(POS); - int ray = downRayRep(world, POS.toImmutable(), 64); + int ray = downRayRep(world, POS.immutable(), 64); if (ray > 32) { BlocksHelper.setWithoutUpdate(world, POS, Blocks.END_STONE.defaultBlockState()); if (world.getRandom().nextBoolean()) { diff --git a/src/main/java/ru/betterend/util/ColorUtil.java b/src/main/java/ru/betterend/util/ColorUtil.java index 17c6f39b..e2031cbd 100644 --- a/src/main/java/ru/betterend/util/ColorUtil.java +++ b/src/main/java/ru/betterend/util/ColorUtil.java @@ -10,7 +10,7 @@ import com.google.common.collect.Maps; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.impl.client.indigo.renderer.helper.ColorHelper; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.Minecraft; import net.minecraft.client.texture.NativeImage; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -193,7 +193,7 @@ public class ColorUtil { public static int extractColor(Item item) { ResourceLocation id = Registry.ITEM.getId(item); - if (id.equals(Registry.ITEM.getDefaultId())) + if (id.equals(Registry.ITEM.getDefaultKey())) return -1; if (colorPalette.containsKey(id)) { return colorPalette.get(id); @@ -227,7 +227,7 @@ public class ColorUtil { } public static NativeImage loadImage(ResourceLocation image, int w, int h) { - MinecraftClient minecraft = MinecraftClient.getInstance(); + Minecraft minecraft = Minecraft.getInstance(); ResourceManager resourceManager = minecraft.getResourceManager(); if (resourceManager.containsResource(image)) { try (Resource resource = resourceManager.getResource(image)) { diff --git a/src/main/java/ru/betterend/util/FeaturesHelper.java b/src/main/java/ru/betterend/util/FeaturesHelper.java index 806f8325..c00e2452 100644 --- a/src/main/java/ru/betterend/util/FeaturesHelper.java +++ b/src/main/java/ru/betterend/util/FeaturesHelper.java @@ -9,9 +9,9 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import ru.betterend.mixin.common.GenerationSettingsAccessor; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndStructures; diff --git a/src/main/java/ru/betterend/util/MHelper.java b/src/main/java/ru/betterend/util/MHelper.java index 3db1bc5d..156333b8 100644 --- a/src/main/java/ru/betterend/util/MHelper.java +++ b/src/main/java/ru/betterend/util/MHelper.java @@ -2,7 +2,7 @@ package ru.betterend.util; import java.util.Random; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.util.math.Vec3d; public class MHelper { @@ -15,7 +15,7 @@ public class MHelper { public static int color(int r, int g, int b) { return ALPHA | (r << 16) | (g << 8) | b; } - + public static int color(String hex) { int r = Integer.parseInt(hex.substring(0, 2), 16); int g = Integer.parseInt(hex.substring(2, 4), 16); @@ -26,7 +26,7 @@ public class MHelper { public static int randRange(int min, int max, Random random) { return min + random.nextInt(max - min + 1); } - + public static double randRange(double min, double max, Random random) { return min + random.nextDouble() * (max - min); } @@ -68,81 +68,81 @@ public class MHelper { public static int min(int a, int b) { return a < b ? a : b; } - + public static int min(int a, int b, int c) { return min(a, min(b, c)); } - + public static int max(int a, int b) { return a > b ? a : b; } - + public static float min(float a, float b) { return a < b ? a : b; } - + public static float max(float a, float b) { return a > b ? a : b; } - + public static float max(float a, float b, float c) { return max(a, max(b, c)); } - + public static int max(int a, int b, int c) { return max(a, max(b, c)); } - + public static boolean isEven(int num) { return (num & 1) == 0; } - + public static float lengthSqr(float x, float y, float z) { return x * x + y * y + z * z; } - + public static double lengthSqr(double x, double y, double z) { return x * x + y * y + z * z; } - + public static float length(float x, float y, float z) { return (float) Math.sqrt(lengthSqr(x, y, z)); } - + public static double length(double x, double y, double z) { return Math.sqrt(lengthSqr(x, y, z)); } - + public static float lengthSqr(float x, float y) { return x * x + y * y; } - + public static double lengthSqr(double x, double y) { return x * x + y * y; } - + public static float length(float x, float y) { return (float) Math.sqrt(lengthSqr(x, y)); } - + public static double length(double x, double y) { return Math.sqrt(lengthSqr(x, y)); } - + public static float dot(float x1, float y1, float z1, float x2, float y2, float z2) { return x1 * x2 + y1 * y2 + z1 * z2; } - + public static float dot(float x1, float y1, float x2, float y2) { return x1 * x2 + y1 * y2; } - + public static int getRandom(int x, int z) { int h = x * 374761393 + z * 668265263; h = (h ^ (h >> 13)) * 1274126177; return h ^ (h >> 16); } - + public static int getSeed(int seed, int x, int y) { int h = seed + x * 374761393 + y * 668265263; h = (h ^ (h >> 13)) * 1274126177; @@ -154,7 +154,7 @@ public class MHelper { h = (h ^ (h >> 13)) * 1274126177; return h ^ (h >> 16); } - + public static void shuffle(T[] array, Random random) { for (int i = 0; i < array.length; i++) { int i2 = random.nextInt(array.length); @@ -167,15 +167,15 @@ public class MHelper { public static int pow2(int i) { return i * i; } - + public static float pow2(float f) { return f * f; } - + public static double pow2(double d) { return d * d; } - + public static int fromHSBtoRGB(float hue, float saturation, float brightness) { int red = 0; int green = 0; @@ -189,35 +189,35 @@ public class MHelper { float var9 = brightness * (1.0F - saturation * var7); float var10 = brightness * (1.0F - saturation * (1.0F - var7)); switch ((int) var6) { - case 0 : - red = (int) (brightness * 255.0F + 0.5F); - green = (int) (var10 * 255.0F + 0.5F); - blue = (int) (var8 * 255.0F + 0.5F); - break; - case 1 : - red = (int) (var9 * 255.0F + 0.5F); - green = (int) (brightness * 255.0F + 0.5F); - blue = (int) (var8 * 255.0F + 0.5F); - break; - case 2 : - red = (int) (var8 * 255.0F + 0.5F); - green = (int) (brightness * 255.0F + 0.5F); - blue = (int) (var10 * 255.0F + 0.5F); - break; - case 3 : - red = (int) (var8 * 255.0F + 0.5F); - green = (int) (var9 * 255.0F + 0.5F); - blue = (int) (brightness * 255.0F + 0.5F); - break; - case 4 : - red = (int) (var10 * 255.0F + 0.5F); - green = (int) (var8 * 255.0F + 0.5F); - blue = (int) (brightness * 255.0F + 0.5F); - break; - case 5 : - red = (int) (brightness * 255.0F + 0.5F); - green = (int) (var8 * 255.0F + 0.5F); - blue = (int) (var9 * 255.0F + 0.5F); + case 0: + red = (int) (brightness * 255.0F + 0.5F); + green = (int) (var10 * 255.0F + 0.5F); + blue = (int) (var8 * 255.0F + 0.5F); + break; + case 1: + red = (int) (var9 * 255.0F + 0.5F); + green = (int) (brightness * 255.0F + 0.5F); + blue = (int) (var8 * 255.0F + 0.5F); + break; + case 2: + red = (int) (var8 * 255.0F + 0.5F); + green = (int) (brightness * 255.0F + 0.5F); + blue = (int) (var10 * 255.0F + 0.5F); + break; + case 3: + red = (int) (var8 * 255.0F + 0.5F); + green = (int) (var9 * 255.0F + 0.5F); + blue = (int) (brightness * 255.0F + 0.5F); + break; + case 4: + red = (int) (var10 * 255.0F + 0.5F); + green = (int) (var8 * 255.0F + 0.5F); + blue = (int) (brightness * 255.0F + 0.5F); + break; + case 5: + red = (int) (brightness * 255.0F + 0.5F); + green = (int) (var8 * 255.0F + 0.5F); + blue = (int) (var9 * 255.0F + 0.5F); } } @@ -241,8 +241,7 @@ public class MHelper { float hue; if (saturation == 0.0F) { hue = 0.0F; - } - else { + } else { float var9 = (float) (max - r) / (float) (max - min); float var10 = (float) (max - g) / (float) (max - min); float var11 = (float) (max - b) / (float) (max - min); @@ -263,10 +262,10 @@ public class MHelper { values[0] = hue; values[1] = saturation; values[2] = brightness; - + return values; } - + public static Vec3d fromRGBtoHSBV(int r, int g, int b) { int max = max(r, g, b); int min = min(r, g, b); @@ -282,8 +281,7 @@ public class MHelper { float hue; if (saturation == 0.0F) { hue = 0.0F; - } - else { + } else { float var9 = (float) (max - r) / (float) (max - min); float var10 = (float) (max - g) / (float) (max - min); float var11 = (float) (max - b) / (float) (max - min); @@ -300,45 +298,44 @@ public class MHelper { ++hue; } } - + return new Vec3d(hue, saturation, brightness); } - + public static final float radiansToDegrees(float value) { return value * RAD_TO_DEG; } - + public static final float degreesToRadians(float value) { return value / RAD_TO_DEG; } - - public static Vector3f cross(Vector3f vec1, Vector3f vec2) - { + + public static Vector3f cross(Vector3f vec1, Vector3f vec2) { float cx = vec1.getY() * vec2.getZ() - vec1.getZ() * vec2.getY(); float cy = vec1.getZ() * vec2.getX() - vec1.getX() * vec2.getZ(); float cz = vec1.getX() * vec2.getY() - vec1.getY() * vec2.getX(); return new Vector3f(cx, cy, cz); } - + public static Vector3f normalize(Vector3f vec) { - float length = lengthSqr(vec.getX(), vec.getY(), vec.getZ()); + float length = lengthSqr(vec.x(), vec.y(), vec.z()); if (length > 0) { length = (float) Math.sqrt(length); - float x = vec.getX() / length; - float y = vec.getY() / length; - float z = vec.getZ() / length; + float x = vec.x() / length; + float y = vec.y() / length; + float z = vec.z() / length; vec.set(x, y, z); } return vec; } - + public static float angle(Vector3f vec1, Vector3f vec2) { float dot = vec1.getX() * vec2.getX() + vec1.getY() * vec2.getY() + vec1.getZ() * vec2.getZ(); float length1 = lengthSqr(vec1.getX(), vec1.getY(), vec1.getZ()); float length2 = lengthSqr(vec2.getX(), vec2.getY(), vec2.getZ()); return (float) Math.acos(dot / Math.sqrt(length1 * length2)); } - + public static Vector3f randomHorizontal(Random random) { float angleY = MHelper.randRange(0, MHelper.PI2, random); float vx = (float) Math.sin(angleY); diff --git a/src/main/java/ru/betterend/util/RecipeHelper.java b/src/main/java/ru/betterend/util/RecipeHelper.java index 61bdbb13..e0b9b2a0 100644 --- a/src/main/java/ru/betterend/util/RecipeHelper.java +++ b/src/main/java/ru/betterend/util/RecipeHelper.java @@ -1,20 +1,20 @@ package ru.betterend.util; import net.minecraft.world.level.block.Block; -import net.minecraft.world.item.ItemConvertible; +import net.minecraft.world.level.ItemLike; import net.minecraft.core.Registry; public class RecipeHelper { - public static boolean exists(ItemConvertible item) { + public static boolean exists(ItemLike item) { if (item instanceof Block) { - return Registry.BLOCK.getKey((Block) item) != Registry.BLOCK.getDefaultId(); + return Registry.BLOCK.getKey((Block) item) != Registry.BLOCK.getDefaultKey(); } else { - return Registry.ITEM.getId(item.asItem()) != Registry.ITEM.getDefaultId(); + return Registry.ITEM.getId(item.asItem()) != Registry.ITEM.getDefaultKey(); } } - public static boolean exists(ItemConvertible... items) { - for (ItemConvertible item : items) { + public static boolean exists(ItemLike... items) { + for (ItemLike item : items) { if (!exists(item)) { return false; } diff --git a/src/main/java/ru/betterend/util/SplineHelper.java b/src/main/java/ru/betterend/util/SplineHelper.java index e5e66ef0..d0ad187f 100644 --- a/src/main/java/ru/betterend/util/SplineHelper.java +++ b/src/main/java/ru/betterend/util/SplineHelper.java @@ -8,11 +8,11 @@ import java.util.function.Function; import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.util.sdf.SDF; import ru.betterend.util.sdf.operator.SDFUnion; import ru.betterend.util.sdf.primitive.SDFLine; @@ -114,7 +114,7 @@ public class SplineHelper { return result; } - public static boolean fillSpline(List spline, StructureWorldAccess world, BlockState state, BlockPos pos, + public static boolean fillSpline(List spline, WorldGenLevel world, BlockState state, BlockPos pos, Function replace) { Vector3f startPos = spline.get(0); for (int i = 1; i < spline.size(); i++) { @@ -128,8 +128,8 @@ public class SplineHelper { return true; } - public static void fillSplineForce(List spline, StructureWorldAccess world, BlockState state, - BlockPos pos, Function replace) { + public static void fillSplineForce(List spline, WorldGenLevel world, BlockState state, BlockPos pos, + Function replace) { Vector3f startPos = spline.get(0); for (int i = 1; i < spline.size(); i++) { Vector3f endPos = spline.get(i); @@ -138,8 +138,8 @@ public class SplineHelper { } } - public static boolean fillLine(Vector3f start, Vector3f end, StructureWorldAccess world, BlockState state, - BlockPos pos, Function replace) { + public static boolean fillLine(Vector3f start, Vector3f end, WorldGenLevel world, BlockState state, BlockPos pos, + Function replace) { float dx = end.getX() - start.getX(); float dy = end.getY() - start.getY(); float dz = end.getZ() - start.getZ(); @@ -187,8 +187,8 @@ public class SplineHelper { } } - public static void fillLineForce(Vector3f start, Vector3f end, StructureWorldAccess world, BlockState state, - BlockPos pos, Function replace) { + public static void fillLineForce(Vector3f start, Vector3f end, WorldGenLevel world, BlockState state, BlockPos pos, + Function replace) { float dx = end.getX() - start.getX(); float dy = end.getY() - start.getY(); float dz = end.getZ() - start.getZ(); @@ -231,19 +231,19 @@ public class SplineHelper { } } - public static boolean canGenerate(List spline, float scale, BlockPos start, StructureWorldAccess world, + public static boolean canGenerate(List spline, float scale, BlockPos start, WorldGenLevel world, Function canReplace) { int count = spline.size(); Vector3f vec = spline.get(0); MutableBlockPos mut = new MutableBlockPos(); - float x1 = start.getX() + vec.getX() * scale; - float y1 = start.getY() + vec.getY() * scale; - float z1 = start.getZ() + vec.getZ() * scale; + float x1 = start.getX() + vec.x() * scale; + float y1 = start.getY() + vec.y() * scale; + float z1 = start.getZ() + vec.z() * scale; for (int i = 1; i < count; i++) { vec = spline.get(i); - float x2 = start.getX() + vec.getX() * scale; - float y2 = start.getY() + vec.getY() * scale; - float z2 = start.getZ() + vec.getZ() * scale; + float x2 = start.getX() + vec.x() * scale; + float y2 = start.getY() + vec.y() * scale; + float z2 = start.getZ() + vec.z() * scale; for (float py = y1; py < y2; py += 3) { if (py - start.getY() < 10) @@ -264,19 +264,19 @@ public class SplineHelper { return true; } - public static boolean canGenerate(List spline, BlockPos start, StructureWorldAccess world, + public static boolean canGenerate(List spline, BlockPos start, WorldGenLevel world, Function canReplace) { int count = spline.size(); Vector3f vec = spline.get(0); MutableBlockPos mut = new MutableBlockPos(); - float x1 = start.getX() + vec.getX(); - float y1 = start.getY() + vec.getY(); - float z1 = start.getZ() + vec.getZ(); + float x1 = start.getX() + vec.x(); + float y1 = start.getY() + vec.y(); + float z1 = start.getZ() + vec.z(); for (int i = 1; i < count; i++) { vec = spline.get(i); - float x2 = start.getX() + vec.getX(); - float y2 = start.getY() + vec.getY(); - float z2 = start.getZ() + vec.getZ(); + float x2 = start.getX() + vec.x(); + float y2 = start.getY() + vec.y(); + float z2 = start.getZ() + vec.z(); for (float py = y1; py < y2; py += 3) { if (py - start.getY() < 10) diff --git a/src/main/java/ru/betterend/util/StructureHelper.java b/src/main/java/ru/betterend/util/StructureHelper.java index ec249958..8ec9dbc5 100644 --- a/src/main/java/ru/betterend/util/StructureHelper.java +++ b/src/main/java/ru/betterend/util/StructureHelper.java @@ -26,7 +26,7 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -88,13 +88,13 @@ public class StructureHelper { return pos.offset(-offset.getX() * 0.5, 0, -offset.getZ() * 0.5); } - public static void placeCenteredBottom(StructureWorldAccess world, BlockPos pos, Structure structure, - Rotation rotation, BlockMirror mirror, Random random) { + public static void placeCenteredBottom(WorldGenLevel world, BlockPos pos, Structure structure, Rotation rotation, + BlockMirror mirror, Random random) { placeCenteredBottom(world, pos, structure, rotation, mirror, makeBox(pos), random); } - public static void placeCenteredBottom(StructureWorldAccess world, BlockPos pos, Structure structure, - Rotation rotation, BlockMirror mirror, BlockBox bounds, Random random) { + public static void placeCenteredBottom(WorldGenLevel world, BlockPos pos, Structure structure, Rotation rotation, + BlockMirror mirror, BlockBox bounds, Random random) { BlockPos offset = offsetPos(pos, structure, rotation, mirror); StructurePlacementData placementData = new StructurePlacementData().setRotation(rotation).setMirror(mirror) .setBoundingBox(bounds); @@ -129,7 +129,7 @@ public class StructureHelper { return BlockBox.create(x1, y1, z1, x2, y2, z2); } - public static void erode(StructureWorldAccess world, BlockBox bounds, int iterations, Random random) { + public static void erode(WorldGenLevel world, BlockBox bounds, int iterations, Random random) { MutableBlockPos mut = new MutableBlockPos(); boolean canDestruct = true; for (int i = 0; i < iterations; i++) { @@ -227,7 +227,7 @@ public class StructureHelper { } } - public static void erodeIntense(StructureWorldAccess world, BlockBox bounds, Random random) { + public static void erodeIntense(WorldGenLevel world, BlockBox bounds, Random random) { MutableBlockPos mut = new MutableBlockPos(); MutableBlockPos mut2 = new MutableBlockPos(); int minY = bounds.minY - 10; @@ -264,7 +264,7 @@ public class StructureHelper { drop(world, bounds); } - private static boolean isTerrainNear(StructureWorldAccess world, BlockPos pos) { + private static boolean isTerrainNear(WorldGenLevel world, BlockPos pos) { for (Direction dir : BlocksHelper.DIRECTIONS) { if (world.getBlockState(pos.relative(dir)).isIn(EndTags.GEN_TERRAIN)) { return true; @@ -273,7 +273,7 @@ public class StructureHelper { return false; } - private static void drop(StructureWorldAccess world, BlockBox bounds) { + private static void drop(WorldGenLevel world, BlockBox bounds) { MutableBlockPos mut = new MutableBlockPos(); Set blocks = Sets.newHashSet(); @@ -288,7 +288,7 @@ public class StructureHelper { mut.setY(y); BlockState state = world.getBlockState(mut); if (!ignore(state) && isTerrainNear(world, mut)) { - edge.add(mut.toImmutable()); + edge.add(mut.immutable()); } } } @@ -307,7 +307,7 @@ public class StructureHelper { if (bounds.contains(mut)) { state = world.getBlockState(mut); if (!ignore(state) && !blocks.contains(mut)) { - add.add(mut.toImmutable()); + add.add(mut.immutable()); } } } @@ -359,13 +359,13 @@ public class StructureHelper { } } - public static void cover(StructureWorldAccess world, BlockBox bounds, Random random) { + public static void cover(WorldGenLevel world, BlockBox bounds, Random random) { MutableBlockPos mut = new MutableBlockPos(); for (int x = bounds.minX; x <= bounds.maxX; x++) { mut.setX(x); for (int z = bounds.minZ; z <= bounds.maxZ; z++) { mut.setZ(z); - BlockState top = world.getBiome(mut).getGenerationSettings().getSurfaceConfig().getTopMaterial(); + BlockState top = world.getBiome(mut).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); for (int y = bounds.maxY; y >= bounds.minY; y--) { mut.setY(y); BlockState state = world.getBlockState(mut); diff --git a/src/main/java/ru/betterend/util/TagHelper.java b/src/main/java/ru/betterend/util/TagHelper.java index 5710e020..2f962089 100644 --- a/src/main/java/ru/betterend/util/TagHelper.java +++ b/src/main/java/ru/betterend/util/TagHelper.java @@ -6,9 +6,9 @@ import java.util.Set; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemConvertible; import net.minecraft.tags.Tag; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.Registry; @@ -17,53 +17,45 @@ public class TagHelper { private static final Map> TAGS_BLOCK = Maps.newHashMap(); private static final Map> TAGS_ITEM = Maps.newHashMap(); - public static void addTag(Tag.Identified tag, Block... blocks) { - ResourceLocation tagID = tag.getId(); - Set set = TAGS_BLOCK.get(tagID); - if (set == null) { - set = Sets.newHashSet(); - TAGS_BLOCK.put(tagID, set); - } + public static void addTag(Tag.Named tag, Block... blocks) { + ResourceLocation tagID = tag.getName(); + Set set = TAGS_BLOCK.computeIfAbsent(tagID, k -> Sets.newHashSet()); for (Block block : blocks) { ResourceLocation id = Registry.BLOCK.getKey(block); - if (id != Registry.BLOCK.getDefaultId()) { + if (id != Registry.BLOCK.getDefaultKey()) { set.add(id); } } } - public static void addTag(Tag.Identified tag, ItemConvertible... items) { - ResourceLocation tagID = tag.getId(); - Set set = TAGS_ITEM.get(tagID); - if (set == null) { - set = Sets.newHashSet(); - TAGS_ITEM.put(tagID, set); - } - for (ItemConvertible item : items) { - ResourceLocation id = Registry.ITEM.getId(item.asItem()); - if (id != Registry.ITEM.getDefaultId()) { + public static void addTag(Tag.Named tag, ItemLike... items) { + ResourceLocation tagID = tag.getName(); + Set set = TAGS_ITEM.computeIfAbsent(tagID, k -> Sets.newHashSet()); + for (ItemLike item : items) { + ResourceLocation id = Registry.ITEM.getKey(item.asItem()); + if (id != Registry.ITEM.getDefaultKey()) { set.add(id); } } } @SafeVarargs - public static void addTags(ItemConvertible item, Tag.Identified... tags) { - for (Tag.Identified tag : tags) { + public static void addTags(ItemLike item, Tag.Named... tags) { + for (Tag.Named tag : tags) { addTag(tag, item); } } @SafeVarargs - public static void addTags(Block block, Tag.Identified... tags) { - for (Tag.Identified tag : tags) { + public static void addTags(Block block, Tag.Named... tags) { + for (Tag.Named tag : tags) { addTag(tag, block); } } public static Tag.Builder apply(Tag.Builder builder, Set ids) { - ids.forEach((value) -> { - builder.add(value, "Better End Code"); + ids.forEach(value -> { + builder.addTag(value, "Better End Code"); }); return builder; } @@ -80,7 +72,7 @@ public class TagHelper { if (tagsMap.containsKey(id)) { apply(tagsMap.get(id), ids); } else { - tagsMap.put(id, apply(Tag.Builder.create(), ids)); + tagsMap.put(id, apply(Tag.Builder.tag(), ids)); } }); } diff --git a/src/main/java/ru/betterend/util/sdf/SDF.java b/src/main/java/ru/betterend/util/sdf/SDF.java index a75ff615..fce2d575 100644 --- a/src/main/java/ru/betterend/util/sdf/SDF.java +++ b/src/main/java/ru/betterend/util/sdf/SDF.java @@ -11,12 +11,12 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.math.Box; import net.minecraft.core.Direction; -import net.minecraft.world.ServerWorldAccess; import ru.betterend.util.BlocksHelper; import ru.betterend.world.structures.StructureWorld; @@ -40,7 +40,7 @@ public abstract class SDF { return this; } - public void fillRecursive(ServerWorldAccess world, BlockPos start) { + public void fillRecursive(ServerLevelAccessor world, BlockPos start) { Map mapWorld = Maps.newHashMap(); Map addInfo = Maps.newHashMap(); Set blocks = Sets.newHashSet(); @@ -55,13 +55,13 @@ public abstract class SDF { for (BlockPos center : ends) { for (Direction dir : Direction.values()) { bPos.set(center).move(dir); - BlockPos wpos = bPos.add(start); + BlockPos wpos = bPos.offset(start); if (!blocks.contains(bPos) && canReplace.apply(world.getBlockState(wpos))) { if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { BlockState state = getBlockState(wpos); PosInfo.create(mapWorld, addInfo, wpos).setState(state); - add.add(bPos.toImmutable()); + add.add(bPos.immutable()); } } } @@ -103,7 +103,7 @@ public abstract class SDF { } } - public void fillArea(ServerWorldAccess world, BlockPos center, Box box) { + public void fillArea(ServerLevelAccessor world, BlockPos center, Box box) { Map mapWorld = Maps.newHashMap(); Map addInfo = Maps.newHashMap(); @@ -117,7 +117,7 @@ public abstract class SDF { if (canReplace.apply(world.getBlockState(mut))) { BlockPos fpos = mut.subtract(center); if (this.getDistance(fpos.getX(), fpos.getY(), fpos.getZ()) < 0) { - PosInfo.create(mapWorld, addInfo, mut.toImmutable()).setState(getBlockState(mut)); + PosInfo.create(mapWorld, addInfo, mut.immutable()).setState(getBlockState(mut)); } } } @@ -152,7 +152,7 @@ public abstract class SDF { } } - public void fillRecursiveIgnore(ServerWorldAccess world, BlockPos start, Function ignore) { + public void fillRecursiveIgnore(ServerLevelAccessor world, BlockPos start, Function ignore) { Map mapWorld = Maps.newHashMap(); Map addInfo = Maps.newHashMap(); Set blocks = Sets.newHashSet(); @@ -167,13 +167,13 @@ public abstract class SDF { for (BlockPos center : ends) { for (Direction dir : Direction.values()) { bPos.set(center).move(dir); - BlockPos wpos = bPos.add(start); + BlockPos wpos = bPos.offset(start); BlockState state = world.getBlockState(wpos); boolean ign = ignore.apply(state); if (!blocks.contains(bPos) && (ign || canReplace.apply(state))) { if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { PosInfo.create(mapWorld, addInfo, wpos).setState(ign ? state : getBlockState(bPos)); - add.add(bPos.toImmutable()); + add.add(bPos.immutable()); } } } @@ -230,13 +230,13 @@ public abstract class SDF { for (BlockPos center : ends) { for (Direction dir : Direction.values()) { bPos.set(center).move(dir); - BlockPos wpos = bPos.add(start); + BlockPos wpos = bPos.offset(start); if (!blocks.contains(bPos)) { if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { BlockState state = getBlockState(wpos); PosInfo.create(mapWorld, addInfo, wpos).setState(state); - add.add(bPos.toImmutable()); + add.add(bPos.immutable()); } } } @@ -274,7 +274,7 @@ public abstract class SDF { }); } - public Set getPositions(ServerWorldAccess world, BlockPos start) { + public Set getPositions(ServerLevelAccessor world, BlockPos start) { Set blocks = Sets.newHashSet(); Set ends = Sets.newHashSet(); Set add = Sets.newHashSet(); @@ -287,17 +287,17 @@ public abstract class SDF { for (BlockPos center : ends) { for (Direction dir : Direction.values()) { bPos.set(center).move(dir); - BlockPos wpos = bPos.add(start); + BlockPos wpos = bPos.offset(start); BlockState state = world.getBlockState(wpos); if (!blocks.contains(wpos) && canReplace.apply(state)) { if (this.getDistance(bPos.getX(), bPos.getY(), bPos.getZ()) < 0) { - add.add(bPos.toImmutable()); + add.add(bPos.immutable()); } } } } - ends.forEach((end) -> blocks.add(end.add(start))); + ends.forEach((end) -> blocks.add(end.offset(start))); ends.clear(); ends.addAll(add); add.clear(); diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java b/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java index ea04ace9..280cd223 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFCoordModify.java @@ -2,17 +2,17 @@ package ru.betterend.util.sdf.operator; import java.util.function.Consumer; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; public class SDFCoordModify extends SDFUnary { private static final Vector3f POS = new Vector3f(); private Consumer function; - + public SDFCoordModify setFunction(Consumer function) { this.function = function; return this; } - + @Override public float getDistance(float x, float y, float z) { POS.set(x, y, z); diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java b/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java index 652c02f8..32b9474d 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFDisplacement.java @@ -2,17 +2,17 @@ package ru.betterend.util.sdf.operator; import java.util.function.Function; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; public class SDFDisplacement extends SDFUnary { private static final Vector3f POS = new Vector3f(); private Function displace; - + public SDFDisplacement setFunction(Function displace) { this.displace = displace; return this; } - + @Override public float getDistance(float x, float y, float z) { POS.set(x, y, z); diff --git a/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java b/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java index 3452c255..38112670 100644 --- a/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java +++ b/src/main/java/ru/betterend/util/sdf/operator/SDFRotation.java @@ -1,17 +1,17 @@ package ru.betterend.util.sdf.operator; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.util.math.Quaternion; public class SDFRotation extends SDFUnary { private static final Vector3f POS = new Vector3f(); private Quaternion rotation; - + public SDFRotation setRotation(Vector3f axis, float rotationAngle) { rotation = new Quaternion(axis, rotationAngle, false); return this; } - + @Override public float getDistance(float x, float y, float z) { POS.set(x, y, z); diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index c3c96e88..8a02e4a9 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -12,13 +12,13 @@ import net.minecraft.core.particles.ParticleOptions; import net.minecraft.sound.BiomeAdditionsSound; import net.minecraft.sound.BiomeMoodSound; import net.minecraft.sound.MusicSound; -import net.minecraft.sound.SoundEvent; +import net.minecraft.sounds.SoundEvent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.Biome.Category; -import net.minecraft.world.biome.Biome.Precipitation; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biome.Category; +import net.minecraft.world.level.biome.Biome.Precipitation; import net.minecraft.world.biome.BiomeEffects.Builder; import net.minecraft.world.biome.BiomeParticleConfig; import net.minecraft.world.biome.GenerationSettings; @@ -28,8 +28,8 @@ import net.minecraft.world.gen.GenerationStep.Carver; import net.minecraft.world.gen.GenerationStep.Feature; import net.minecraft.world.gen.ProbabilityConfig; import net.minecraft.world.gen.carver.ConfiguredCarver; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilders; import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; @@ -119,7 +119,7 @@ public class BiomeDefinition { public BiomeDefinition addMobSpawn(EntityType type, int weight, int minGroupSize, int maxGroupSize) { ResourceLocation eID = Registry.ENTITY_TYPE.getId(type); - if (eID != Registry.ENTITY_TYPE.getDefaultId()) { + if (eID != Registry.ENTITY_TYPE.getDefaultKey()) { SpawnInfo info = new SpawnInfo(); info.type = type; info.weight = weight; diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index b01d89f0..94c553a7 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -10,7 +10,7 @@ import com.google.gson.JsonObject; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import ru.betterend.config.Configs; import ru.betterend.util.JsonFactory; import ru.betterend.util.StructureHelper; diff --git a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java index dff525fe..94368757 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.util.collection.WeightedList; import net.minecraft.core.BlockPos; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.registry.EndBiomes; import ru.betterend.world.biome.BiomeDefinition; import ru.betterend.world.biome.EndBiome; diff --git a/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java b/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java index 086e1a03..ea5ad1ce 100644 --- a/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/AmberLandBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java b/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java index a63f1eba..343211dd 100644 --- a/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ChorusForestBiome.java @@ -3,8 +3,8 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.gen.GenerationStep.Feature; -import net.minecraft.world.gen.feature.ConfiguredFeatures; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java b/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java index 4e1b32c1..77f81198 100644 --- a/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DryShrublandBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; diff --git a/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java b/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java index db5b761b..cc46c7db 100644 --- a/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/DustWastelandsBiome.java @@ -2,7 +2,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndSounds; import ru.betterend.world.biome.BiomeDefinition; diff --git a/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java b/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java index d599bb94..9f2f2184 100644 --- a/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/FoggyMushroomlandBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java b/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java index 79f29743..69521075 100644 --- a/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/GlowingGrasslandsBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; diff --git a/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java b/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java index e888b454..5ffd7775 100644 --- a/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/LanternWoodsBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; diff --git a/src/main/java/ru/betterend/world/biome/land/NeonOasisBiome.java b/src/main/java/ru/betterend/world/biome/land/NeonOasisBiome.java index 705b18a2..9332aa0e 100644 --- a/src/main/java/ru/betterend/world/biome/land/NeonOasisBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/NeonOasisBiome.java @@ -2,7 +2,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; diff --git a/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java b/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java index 59547453..0ee6a1f5 100644 --- a/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/ShadowForestBiome.java @@ -2,7 +2,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndFeatures; diff --git a/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java b/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java index 2ded7681..29c8e5eb 100644 --- a/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java +++ b/src/main/java/ru/betterend/world/biome/land/UmbrellaJungleBiome.java @@ -1,7 +1,7 @@ package ru.betterend.world.biome.land; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.gen.feature.ConfiguredStructureFeatures; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeatures; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; diff --git a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java index ad97e5c2..16658b53 100644 --- a/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java +++ b/src/main/java/ru/betterend/world/features/BiomeIslandFeature.java @@ -6,10 +6,10 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.gen.surfacebuilder.SurfaceConfig; import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig; import ru.betterend.noise.OpenSimplexNoise; @@ -28,10 +28,10 @@ public class BiomeIslandFeature extends DefaultFeature { private static BlockState underBlock = Blocks.DIRT.defaultBlockState(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { Biome biome = world.getBiome(pos); - SurfaceConfig surfaceConfig = biome.getGenerationSettings().getSurfaceConfig(); + SurfaceConfig surfaceConfig = biome.getGenerationSettings().getSurfaceBuilderConfig(); BlockState topMaterial = surfaceConfig.getTopMaterial(); if (BlocksHelper.isFluid(topMaterial)) { topBlock = ((TernarySurfaceConfig) surfaceConfig).getUnderwaterMaterial(); diff --git a/src/main/java/ru/betterend/world/features/BlueVineFeature.java b/src/main/java/ru/betterend/world/features/BlueVineFeature.java index 861cc1e2..b74d5057 100644 --- a/src/main/java/ru/betterend/world/features/BlueVineFeature.java +++ b/src/main/java/ru/betterend/world/features/BlueVineFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; @@ -17,8 +17,7 @@ public class BlueVineFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { float d = MHelper.length(center.getX() - blockPos.getX(), center.getZ() - blockPos.getZ()) / radius * 0.6F + random.nextFloat() * 0.4F; small = d > 0.5F; @@ -26,7 +25,7 @@ public class BlueVineFeature extends ScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { if (small) { BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.BLUE_VINE_SEED.defaultBlockState().with(EndPlantWithAgeBlock.AGE, random.nextInt(4))); diff --git a/src/main/java/ru/betterend/world/features/CavePlantFeature.java b/src/main/java/ru/betterend/world/features/CavePlantFeature.java index e3e21ded..63c6b393 100644 --- a/src/main/java/ru/betterend/world/features/CavePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePlantFeature.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.world.level.block.Block; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.util.BlocksHelper; public class CavePlantFeature extends FullHeightScatterFeature { @@ -16,13 +16,12 @@ public class CavePlantFeature extends FullHeightScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return plant.canPlaceAt(world.getBlockState(blockPos), world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { BlocksHelper.setWithoutUpdate(world, blockPos, plant); } } diff --git a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java index 65c5aef3..83e477e7 100644 --- a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java @@ -3,9 +3,9 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -13,8 +13,8 @@ import ru.betterend.util.BlocksHelper; public class CavePumpkinFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.up()).isIn(EndTags.GEN_TERRAIN) || !world.isAir(pos) || !world.isAir(pos.below())) { return false; diff --git a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java index 0b474328..4ac58a3b 100644 --- a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java +++ b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java @@ -16,10 +16,10 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.WorldView; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -31,7 +31,7 @@ public class CrashedShipFeature extends NBTStructureFeature { private Structure structure; @Override - protected Structure getStructure(StructureWorldAccess world, BlockPos pos, Random random) { + protected Structure getStructure(WorldGenLevel world, BlockPos pos, Random random) { if (structure == null) { structure = world.toServerWorld().getStructureManager() .getStructureOrBlank(new ResourceLocation("end_city/ship")); @@ -43,7 +43,7 @@ public class CrashedShipFeature extends NBTStructureFeature { } @Override - protected boolean canSpawn(StructureWorldAccess world, BlockPos pos, Random random) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos, Random random) { long x = pos.getX() >> 4; long z = pos.getX() >> 4; if (x * x + z * z < 3600) { @@ -53,30 +53,30 @@ public class CrashedShipFeature extends NBTStructureFeature { } @Override - protected Rotation getRotation(StructureWorldAccess world, BlockPos pos, Random random) { + protected Rotation getRotation(WorldGenLevel world, BlockPos pos, Random random) { return Rotation.random(random); } @Override - protected BlockMirror getMirror(StructureWorldAccess world, BlockPos pos, Random random) { + protected BlockMirror getMirror(WorldGenLevel world, BlockPos pos, Random random) { return BlockMirror.values()[random.nextInt(3)]; } @Override - protected int getYOffset(Structure structure, StructureWorldAccess world, BlockPos pos, Random random) { + protected int getYOffset(Structure structure, WorldGenLevel world, BlockPos pos, Random random) { int min = structure.getSize().getY() >> 3; int max = structure.getSize().getY() >> 2; return -MHelper.randRange(min, max, random); } @Override - protected TerrainMerge getTerrainMerge(StructureWorldAccess world, BlockPos pos, Random random) { + protected TerrainMerge getTerrainMerge(WorldGenLevel world, BlockPos pos, Random random) { return TerrainMerge.NONE; } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { center = new BlockPos(((center.getX() >> 4) << 4) | 8, 128, ((center.getZ() >> 4) << 4) | 8); center = getGround(world, center); BlockBox bounds = makeBox(center); diff --git a/src/main/java/ru/betterend/world/features/DefaultFeature.java b/src/main/java/ru/betterend/world/features/DefaultFeature.java index 1c9dd59e..ede487d5 100644 --- a/src/main/java/ru/betterend/world/features/DefaultFeature.java +++ b/src/main/java/ru/betterend/world/features/DefaultFeature.java @@ -1,44 +1,44 @@ package ru.betterend.world.features; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; -import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.levelgen.Heightmap.Types; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.util.BlocksHelper; -public abstract class DefaultFeature extends Feature { +public abstract class DefaultFeature extends Feature { protected static final BlockState AIR = Blocks.AIR.defaultBlockState(); protected static final BlockState WATER = Blocks.WATER.defaultBlockState(); public DefaultFeature() { - super(DefaultFeatureConfig.CODEC); + super(NoneFeatureConfiguration.CODEC); } - public static int getYOnSurface(StructureWorldAccess world, int x, int z) { - return world.getTopY(Type.WORLD_SURFACE, x, z); + public static int getYOnSurface(WorldGenLevel world, int x, int z) { + return world.getHeight(Types.WORLD_SURFACE, x, z); } - public static int getYOnSurfaceWG(StructureWorldAccess world, int x, int z) { - return world.getTopY(Type.WORLD_SURFACE_WG, x, z); + public static int getYOnSurfaceWG(WorldGenLevel world, int x, int z) { + return world.getHeight(Types.WORLD_SURFACE_WG, x, z); } - public static BlockPos getPosOnSurface(StructureWorldAccess world, BlockPos pos) { - return world.getTopPosition(Type.WORLD_SURFACE, pos); + public static BlockPos getPosOnSurface(WorldGenLevel world, BlockPos pos) { + return world.getHeightmapPos(Types.WORLD_SURFACE, pos); } - public static BlockPos getPosOnSurfaceWG(StructureWorldAccess world, BlockPos pos) { - return world.getTopPosition(Type.WORLD_SURFACE_WG, pos); + public static BlockPos getPosOnSurfaceWG(WorldGenLevel world, BlockPos pos) { + return world.getHeightmapPos(Types.WORLD_SURFACE_WG, pos); } - public static BlockPos getPosOnSurfaceRaycast(StructureWorldAccess world, BlockPos pos) { + public static BlockPos getPosOnSurfaceRaycast(WorldGenLevel world, BlockPos pos) { return getPosOnSurfaceRaycast(world, pos, 256); } - public static BlockPos getPosOnSurfaceRaycast(StructureWorldAccess world, BlockPos pos, int dist) { + public static BlockPos getPosOnSurfaceRaycast(WorldGenLevel world, BlockPos pos, int dist) { int h = BlocksHelper.downRay(world, pos, dist); - return pos.down(h); + return pos.below(h); } } diff --git a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java index 7dcaba6c..38bdabb6 100644 --- a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.DoublePlantBlock; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -22,8 +22,7 @@ public class DoublePlantFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { float d = MHelper.length(center.getX() - blockPos.getX(), center.getZ() - blockPos.getZ()) / radius * 0.6F + random.nextFloat() * 0.4F; plant = d < 0.5F ? largePlant : smallPlant; @@ -31,7 +30,7 @@ public class DoublePlantFeature extends ScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { if (plant instanceof DoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().with(DoublePlantBlock.ROTATION, rot); diff --git a/src/main/java/ru/betterend/world/features/EndFeature.java b/src/main/java/ru/betterend/world/features/EndFeature.java index 49a5755c..ac26405d 100644 --- a/src/main/java/ru/betterend/world/features/EndFeature.java +++ b/src/main/java/ru/betterend/world/features/EndFeature.java @@ -5,19 +5,19 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.structure.rule.BlockMatchRuleTest; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.data.BuiltinRegistries; import net.minecraft.core.Registry; import net.minecraft.world.gen.CountConfig; import net.minecraft.world.gen.GenerationStep; import net.minecraft.world.gen.decorator.ChanceDecoratorConfig; import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.decorator.RangeDecoratorConfig; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.ConfiguredFeatures; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeatures; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeatureConfig; +import net.minecraft.world.level.levelgen.feature.OreFeatureConfig; import ru.betterend.BetterEnd; import ru.betterend.blocks.complex.StoneMaterial; import ru.betterend.world.features.terrain.OreLayerFeature; @@ -37,7 +37,7 @@ public class EndFeature { this.featureConfigured = configuredFeature; } - public EndFeature(String name, Feature feature, GenerationStep.Feature featureStep, + public EndFeature(String name, Feature feature, GenerationStep.Feature featureStep, ConfiguredFeature configuredFeature) { ResourceLocation id = BetterEnd.makeID(name); this.featureStep = featureStep; @@ -45,7 +45,7 @@ public class EndFeature { this.featureConfigured = Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, id, configuredFeature); } - public EndFeature(String name, Feature feature) { + public EndFeature(String name, Feature feature) { ResourceLocation id = BetterEnd.makeID(name); this.featureStep = GenerationStep.Feature.VEGETAL_DECORATION; this.feature = Registry.register(Registry.FEATURE, id, feature); @@ -53,7 +53,7 @@ public class EndFeature { .configure(FeatureConfig.DEFAULT).decorate(Decorator.CHANCE.configure(new ChanceDecoratorConfig(100)))); } - public EndFeature(String name, Feature feature, int density) { + public EndFeature(String name, Feature feature, int density) { ResourceLocation id = BetterEnd.makeID(name); this.featureStep = GenerationStep.Feature.VEGETAL_DECORATION; this.feature = Registry.register(Registry.FEATURE, id, feature); @@ -62,13 +62,13 @@ public class EndFeature { .repeatRandomly(density)); } - public static EndFeature makeRawGenFeature(String name, Feature feature, int chance) { + public static EndFeature makeRawGenFeature(String name, Feature feature, int chance) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT) .decorate(Decorator.CHANCE.configure(new ChanceDecoratorConfig(chance))); return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); } - public static EndFeature makeLakeFeature(String name, Feature feature, int chance) { + public static EndFeature makeLakeFeature(String name, Feature feature, int chance) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT) .decorate(Decorator.WATER_LAKE.configure(new ChanceDecoratorConfig(chance))); return new EndFeature(name, feature, GenerationStep.Feature.LAKES, configured); @@ -113,25 +113,25 @@ public class EndFeature { return new EndFeature(name, layer, GenerationStep.Feature.UNDERGROUND_ORES, configured); } - public static EndFeature makeChunkFeature(String name, Feature feature) { + public static EndFeature makeChunkFeature(String name, Feature feature) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT) .decorate(Decorator.COUNT.configure(new CountConfig(1))); return new EndFeature(name, feature, GenerationStep.Feature.LOCAL_MODIFICATIONS, configured); } - public static EndFeature makeChansedFeature(String name, Feature feature, int chance) { + public static EndFeature makeChansedFeature(String name, Feature feature, int chance) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT) .decorate(Decorator.CHANCE.configure(new ChanceDecoratorConfig(chance))); return new EndFeature(name, feature, GenerationStep.Feature.SURFACE_STRUCTURES, configured); } - public static EndFeature makeCountRawFeature(String name, Feature feature, int chance) { + public static EndFeature makeCountRawFeature(String name, Feature feature, int chance) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT) .decorate(Decorator.COUNT.configure(new CountConfig(chance))); return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); } - public static EndFeature makeFeatureConfigured(String name, Feature feature) { + public static EndFeature makeFeatureConfigured(String name, Feature feature) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT); return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); } diff --git a/src/main/java/ru/betterend/world/features/EndLilyFeature.java b/src/main/java/ru/betterend/world/features/EndLilyFeature.java index a97d377a..598a3afc 100644 --- a/src/main/java/ru/betterend/world/features/EndLilyFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLilyFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.EndLilySeedBlock; import ru.betterend.registry.EndBlocks; @@ -13,7 +13,7 @@ public class EndLilyFeature extends UnderwaterPlantScatter { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { EndLilySeedBlock seed = (EndLilySeedBlock) EndBlocks.END_LILY_SEED; seed.grow(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/EndLotusFeature.java b/src/main/java/ru/betterend/world/features/EndLotusFeature.java index 3cf060e4..6de29310 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.EndLotusSeedBlock; import ru.betterend.registry.EndBlocks; @@ -13,7 +13,7 @@ public class EndLotusFeature extends UnderwaterPlantScatter { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { EndLotusSeedBlock seed = (EndLotusSeedBlock) EndBlocks.END_LOTUS_SEED; seed.grow(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java b/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java index 0264ccc4..3ea237c6 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.EndLotusLeafBlock; import ru.betterend.registry.EndBlocks; @@ -19,7 +19,7 @@ public class EndLotusLeafFeature extends ScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { if (canGenerate(world, blockPos)) { generateLeaf(world, blockPos); } @@ -31,11 +31,11 @@ public class EndLotusLeafFeature extends ScatterFeature { } @Override - protected BlockPos getCenterGround(StructureWorldAccess world, BlockPos pos) { + protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { return getPosOnSurface(world, pos); } - private void generateLeaf(StructureWorldAccess world, BlockPos pos) { + private void generateLeaf(WorldGenLevel world, BlockPos pos) { MutableBlockPos p = new MutableBlockPos(); BlockState leaf = EndBlocks.END_LOTUS_LEAF.defaultBlockState(); BlocksHelper.setWithoutUpdate(world, pos, leaf.with(EndLotusLeafBlock.SHAPE, TripleShape.BOTTOM)); @@ -51,7 +51,7 @@ public class EndLotusLeafFeature extends ScatterFeature { } } - private boolean canGenerate(StructureWorldAccess world, BlockPos pos) { + private boolean canGenerate(WorldGenLevel world, BlockPos pos) { MutableBlockPos p = new MutableBlockPos(); p.setY(pos.getY()); int count = 0; @@ -67,8 +67,7 @@ public class EndLotusLeafFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return world.isAir(blockPos) && world.getBlockState(blockPos.below()).is(Blocks.WATER); } } diff --git a/src/main/java/ru/betterend/world/features/FilaluxFeature.java b/src/main/java/ru/betterend/world/features/FilaluxFeature.java index 80b0505a..e263c2f5 100644 --- a/src/main/java/ru/betterend/world/features/FilaluxFeature.java +++ b/src/main/java/ru/betterend/world/features/FilaluxFeature.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.registry.EndBlocks; @@ -19,7 +19,7 @@ public class FilaluxFeature extends SkyScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { BlockState vine = EndBlocks.FILALUX.defaultBlockState(); BlockState wings = EndBlocks.FILALUX_WINGS.defaultBlockState(); BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.FILALUX_LANTERN); diff --git a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java index a188df4c..7253dd35 100644 --- a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java @@ -5,9 +5,9 @@ import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -19,14 +19,14 @@ public abstract class FullHeightScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, + public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(StructureWorldAccess world, Random random, BlockPos blockPos); + public abstract void place(WorldGenLevel world, Random random, BlockPos blockPos); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { int maxY = world.getTopY(Heightmap.Type.WORLD_SURFACE_WG, center.getX(), center.getZ()); int minY = BlocksHelper.upRay(world, new BlockPos(center.getX(), 0, center.getZ()), maxY); for (int y = maxY; y > minY; y--) { diff --git a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java index 0afd2944..f63576e4 100644 --- a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -13,13 +13,12 @@ public class GlowPillarFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return EndBlocks.GLOWING_PILLAR_SEED.canPlaceAt(AIR, world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.GLOWING_PILLAR_SEED); seed.growAdult(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/HydraluxFeature.java b/src/main/java/ru/betterend/world/features/HydraluxFeature.java index 3b27ddf7..a4004fee 100644 --- a/src/main/java/ru/betterend/world/features/HydraluxFeature.java +++ b/src/main/java/ru/betterend/world/features/HydraluxFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.HydraluxSaplingBlock; import ru.betterend.registry.EndBlocks; @@ -13,7 +13,7 @@ public class HydraluxFeature extends UnderwaterPlantScatter { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { HydraluxSaplingBlock seed = (HydraluxSaplingBlock) EndBlocks.HYDRALUX_SAPLING; seed.grow(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java index 6f4b3dc0..fd900d57 100644 --- a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java @@ -5,9 +5,9 @@ import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -19,14 +19,14 @@ public abstract class InvertedScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, + public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(StructureWorldAccess world, Random random, BlockPos blockPos); + public abstract void place(WorldGenLevel world, Random random, BlockPos blockPos); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { int maxY = world.getTopY(Heightmap.Type.WORLD_SURFACE, center.getX(), center.getZ()); int minY = BlocksHelper.upRay(world, new BlockPos(center.getX(), 0, center.getZ()), maxY); for (int y = maxY; y > minY; y--) { diff --git a/src/main/java/ru/betterend/world/features/LanceleafFeature.java b/src/main/java/ru/betterend/world/features/LanceleafFeature.java index 2223c3c1..aaff0656 100644 --- a/src/main/java/ru/betterend/world/features/LanceleafFeature.java +++ b/src/main/java/ru/betterend/world/features/LanceleafFeature.java @@ -3,7 +3,7 @@ package ru.betterend.world.features; import java.util.Random; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; @@ -13,13 +13,12 @@ public class LanceleafFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return EndBlocks.LANCELEAF_SEED.canPlaceAt(AIR, world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.LANCELEAF_SEED); seed.growAdult(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/ListFeature.java b/src/main/java/ru/betterend/world/features/ListFeature.java index bc4dcf0c..69c2dd13 100644 --- a/src/main/java/ru/betterend/world/features/ListFeature.java +++ b/src/main/java/ru/betterend/world/features/ListFeature.java @@ -8,7 +8,7 @@ import net.minecraft.structure.StructurePlacementData; import net.minecraft.util.BlockMirror; import net.minecraft.world.level.block.Rotation; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.registry.EndTags; import ru.betterend.util.StructureHelper; @@ -21,35 +21,35 @@ public class ListFeature extends NBTStructureFeature { } @Override - protected Structure getStructure(StructureWorldAccess world, BlockPos pos, Random random) { + protected Structure getStructure(WorldGenLevel world, BlockPos pos, Random random) { selected = list.get(random.nextInt(list.size())); return selected.getStructure(); } @Override - protected boolean canSpawn(StructureWorldAccess world, BlockPos pos, Random random) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos, Random random) { int cx = pos.getX() >> 4; int cz = pos.getZ() >> 4; return ((cx + cz) & 1) == 0 && pos.getY() > 58 && world.getBlockState(pos.below()).isIn(EndTags.GEN_TERRAIN); } @Override - protected Rotation getRotation(StructureWorldAccess world, BlockPos pos, Random random) { + protected Rotation getRotation(WorldGenLevel world, BlockPos pos, Random random) { return Rotation.random(random); } @Override - protected BlockMirror getMirror(StructureWorldAccess world, BlockPos pos, Random random) { + protected BlockMirror getMirror(WorldGenLevel world, BlockPos pos, Random random) { return BlockMirror.values()[random.nextInt(3)]; } @Override - protected int getYOffset(Structure structure, StructureWorldAccess world, BlockPos pos, Random random) { + protected int getYOffset(Structure structure, WorldGenLevel world, BlockPos pos, Random random) { return selected.offsetY; } @Override - protected TerrainMerge getTerrainMerge(StructureWorldAccess world, BlockPos pos, Random random) { + protected TerrainMerge getTerrainMerge(WorldGenLevel world, BlockPos pos, Random random) { return selected.terrainMerge; } diff --git a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java index 3347ab66..5a20b737 100644 --- a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java +++ b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java @@ -6,7 +6,7 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; @@ -18,7 +18,7 @@ public class MengerSpongeFeature extends UnderwaterPlantScatter { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { BlocksHelper.setWithoutUpdate(world, blockPos, EndBlocks.MENGER_SPONGE_WET); if (random.nextBoolean()) { for (Direction dir : BlocksHelper.DIRECTIONS) { diff --git a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java index a8ced4bf..f3020bb6 100644 --- a/src/main/java/ru/betterend/world/features/NBTStructureFeature.java +++ b/src/main/java/ru/betterend/world/features/NBTStructureFeature.java @@ -17,10 +17,10 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.gen.surfacebuilder.SurfaceConfig; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndTags; @@ -30,21 +30,21 @@ import ru.betterend.world.processors.DestructionStructureProcessor; public abstract class NBTStructureFeature extends DefaultFeature { protected static final DestructionStructureProcessor DESTRUCTION = new DestructionStructureProcessor(); - protected abstract Structure getStructure(StructureWorldAccess world, BlockPos pos, Random random); + protected abstract Structure getStructure(WorldGenLevel world, BlockPos pos, Random random); - protected abstract boolean canSpawn(StructureWorldAccess world, BlockPos pos, Random random); + protected abstract boolean canSpawn(WorldGenLevel world, BlockPos pos, Random random); - protected abstract Rotation getRotation(StructureWorldAccess world, BlockPos pos, Random random); + protected abstract Rotation getRotation(WorldGenLevel world, BlockPos pos, Random random); - protected abstract BlockMirror getMirror(StructureWorldAccess world, BlockPos pos, Random random); + protected abstract BlockMirror getMirror(WorldGenLevel world, BlockPos pos, Random random); - protected abstract int getYOffset(Structure structure, StructureWorldAccess world, BlockPos pos, Random random); + protected abstract int getYOffset(Structure structure, WorldGenLevel world, BlockPos pos, Random random); - protected abstract TerrainMerge getTerrainMerge(StructureWorldAccess world, BlockPos pos, Random random); + protected abstract TerrainMerge getTerrainMerge(WorldGenLevel world, BlockPos pos, Random random); protected abstract void addStructureData(StructurePlacementData data); - protected BlockPos getGround(StructureWorldAccess world, BlockPos center) { + protected BlockPos getGround(WorldGenLevel world, BlockPos center) { Biome biome = world.getBiome(center); ResourceLocation id = EndBiomes.getBiomeID(biome); if (id.getNamespace().contains("moutain") || id.getNamespace().contains("lake")) { @@ -56,7 +56,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { } } - protected int getAverageY(StructureWorldAccess world, BlockPos center) { + protected int getAverageY(WorldGenLevel world, BlockPos center) { int y = getYOnSurface(world, center.getX(), center.getZ()); y += getYOnSurface(world, center.getX() - 2, center.getZ() - 2); y += getYOnSurface(world, center.getX() + 2, center.getZ() - 2); @@ -65,7 +65,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { return y / 5; } - protected int getAverageYWG(StructureWorldAccess world, BlockPos center) { + protected int getAverageYWG(WorldGenLevel world, BlockPos center) { int y = getYOnSurfaceWG(world, center.getX(), center.getZ()); y += getYOnSurfaceWG(world, center.getX() - 2, center.getZ() - 2); y += getYOnSurfaceWG(world, center.getX() + 2, center.getZ() - 2); @@ -75,8 +75,8 @@ public abstract class NBTStructureFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { center = new BlockPos(((center.getX() >> 4) << 4) | 8, 128, ((center.getZ() >> 4) << 4) | 8); center = getGround(world, center); @@ -132,7 +132,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { if (!stateSt.isIn(EndTags.GEN_TERRAIN)) { if (merge == TerrainMerge.SURFACE) { SurfaceConfig config = world.getBiome(mut).getGenerationSettings() - .getSurfaceConfig(); + .getSurfaceBuilderConfig(); boolean isTop = mut.getY() == surfMax && state.getMaterial().blocksLight(); BlockState top = isTop ? config.getTopMaterial() : config.getUnderMaterial(); BlocksHelper.setWithoutUpdate(world, mut, top); @@ -143,7 +143,7 @@ public abstract class NBTStructureFeature extends DefaultFeature { if (stateSt.isIn(EndTags.END_GROUND) && state.getMaterial().blocksLight()) { if (merge == TerrainMerge.SURFACE) { SurfaceConfig config = world.getBiome(mut).getGenerationSettings() - .getSurfaceConfig(); + .getSurfaceBuilderConfig(); BlocksHelper.setWithoutUpdate(world, mut, config.getUnderMaterial()); } else { BlocksHelper.setWithoutUpdate(world, mut, state); diff --git a/src/main/java/ru/betterend/world/features/NeonCactusFeature.java b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java index c38a6ce4..845e1008 100644 --- a/src/main/java/ru/betterend/world/features/NeonCactusFeature.java +++ b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java @@ -6,9 +6,9 @@ import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.registry.EndBlocks; @@ -17,8 +17,8 @@ import ru.betterend.util.MHelper; public class NeonCactusFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).is(EndBlocks.ENDSTONE_DUST)) { return false; } @@ -48,7 +48,7 @@ public class NeonCactusFeature extends DefaultFeature { return true; } - private void branch(StructureWorldAccess world, BlockPos pos, Direction dir, Random random, int length, int size) { + private void branch(WorldGenLevel world, BlockPos pos, Direction dir, Random random, int length, int size) { int rotIndex = length >> 2; MutableBlockPos mut = new MutableBlockPos().set(pos); Direction hor = BlocksHelper.randomHorizontal(random); diff --git a/src/main/java/ru/betterend/world/features/ScatterFeature.java b/src/main/java/ru/betterend/world/features/ScatterFeature.java index eed12d70..ddd6b540 100644 --- a/src/main/java/ru/betterend/world/features/ScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/ScatterFeature.java @@ -4,9 +4,9 @@ import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -19,16 +19,16 @@ public abstract class ScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, + public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(StructureWorldAccess world, Random random, BlockPos blockPos); + public abstract void place(WorldGenLevel world, Random random, BlockPos blockPos); - protected BlockPos getCenterGround(StructureWorldAccess world, BlockPos pos) { + protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { return getPosOnSurfaceWG(world, pos); } - protected boolean canSpawn(StructureWorldAccess world, BlockPos pos) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos) { if (pos.getY() < 5) { return false; } else if (!world.getBlockState(pos.below()).isIn(EndTags.END_GROUND)) { @@ -37,7 +37,7 @@ public abstract class ScatterFeature extends DefaultFeature { return true; } - protected boolean getGroundPlant(StructureWorldAccess world, MutableBlockPos pos) { + protected boolean getGroundPlant(WorldGenLevel world, MutableBlockPos pos) { int down = BlocksHelper.downRay(world, pos, 16); if (down > Math.abs(getYOffset() * 2)) { return false; @@ -55,8 +55,8 @@ public abstract class ScatterFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { center = getCenterGround(world, center); if (!canSpawn(world, center)) { diff --git a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java index ba270515..20f00833 100644 --- a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java +++ b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java @@ -9,9 +9,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; @@ -19,7 +19,7 @@ import ru.betterend.util.BlocksHelper; public class SilkMothNestFeature extends DefaultFeature { private static final MutableBlockPos POS = new MutableBlockPos(); - private boolean canGenerate(StructureWorldAccess world, BlockPos pos) { + private boolean canGenerate(WorldGenLevel world, BlockPos pos) { BlockState state = world.getBlockState(pos.up()); if (state.isIn(BlockTags.LEAVES) || state.isIn(BlockTags.LOGS)) { state = world.getBlockState(pos); @@ -36,8 +36,8 @@ public class SilkMothNestFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { int maxY = world.getTopY(Heightmap.Type.WORLD_SURFACE, center.getX(), center.getZ()); int minY = BlocksHelper.upRay(world, new BlockPos(center.getX(), 0, center.getZ()), maxY); POS.set(center); diff --git a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java index 77a6bf04..8923635a 100644 --- a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.AttachedBlock; import ru.betterend.util.BlocksHelper; @@ -20,8 +20,7 @@ public class SingleInvertedScatterFeature extends InvertedScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { if (!world.isAir(blockPos)) { return false; } @@ -33,7 +32,7 @@ public class SingleInvertedScatterFeature extends InvertedScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { BlockState state = block.defaultBlockState(); if (block instanceof AttachedBlock) { state = state.with(Properties.FACING, Direction.DOWN); diff --git a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java index 9218691b..ef8d6fa5 100644 --- a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.DoublePlantBlock; import ru.betterend.blocks.basis.EndCropBlock; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; @@ -40,18 +40,17 @@ public class SinglePlantFeature extends ScatterFeature { } @Override - protected BlockPos getCenterGround(StructureWorldAccess world, BlockPos pos) { + protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { return rawHeightmap ? getPosOnSurfaceWG(world, pos) : getPosOnSurface(world, pos); } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return plant.canPlaceAt(plant.defaultBlockState(), world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { if (plant instanceof DoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().with(DoublePlantBlock.ROTATION, rot); diff --git a/src/main/java/ru/betterend/world/features/SkyScatterFeature.java b/src/main/java/ru/betterend/world/features/SkyScatterFeature.java index 090b8314..37160826 100644 --- a/src/main/java/ru/betterend/world/features/SkyScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SkyScatterFeature.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -20,8 +20,7 @@ public abstract class SkyScatterFeature extends ScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { if (!world.isAir(blockPos)) { return false; } @@ -39,16 +38,16 @@ public abstract class SkyScatterFeature extends ScatterFeature { } @Override - protected boolean canSpawn(StructureWorldAccess world, BlockPos pos) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos) { return true; } @Override - protected BlockPos getCenterGround(StructureWorldAccess world, BlockPos pos) { + protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { return new BlockPos(pos.getX(), MHelper.randRange(32, 192, world.getRandom()), pos.getZ()); } - protected boolean getGroundPlant(StructureWorldAccess world, MutableBlockPos pos) { + protected boolean getGroundPlant(WorldGenLevel world, MutableBlockPos pos) { pos.setY(pos.getY() + MHelper.randRange(-getYOffset(), getYOffset(), world.getRandom())); return true; } diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java index a62b4a5e..a2886e60 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.DoublePlantBlock; import ru.betterend.util.BlocksHelper; @@ -18,13 +18,12 @@ public class UnderwaterPlantFeature extends UnderwaterPlantScatter { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return super.canSpawn(world, blockPos) && plant.canPlaceAt(plant.defaultBlockState(), world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { if (plant instanceof DoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().with(DoublePlantBlock.ROTATION, rot); diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java index d38eb537..35bf1de9 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; public abstract class UnderwaterPlantScatter extends ScatterFeature { private static final MutableBlockPos POS = new MutableBlockPos(); @@ -15,26 +15,25 @@ public abstract class UnderwaterPlantScatter extends ScatterFeature { } @Override - protected BlockPos getCenterGround(StructureWorldAccess world, BlockPos pos) { + protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { POS.setX(pos.getX()); POS.setZ(pos.getZ()); POS.setY(0); - return getGround(world, POS).toImmutable(); + return getGround(world, POS).immutable(); } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { return world.getBlockState(blockPos).is(Blocks.WATER); } @Override - protected boolean canSpawn(StructureWorldAccess world, BlockPos pos) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos) { return world.getBlockState(pos).is(Blocks.WATER); } @Override - protected boolean getGroundPlant(StructureWorldAccess world, MutableBlockPos pos) { + protected boolean getGroundPlant(WorldGenLevel world, MutableBlockPos pos) { return getGround(world, pos).getY() < 128; } @@ -48,7 +47,7 @@ public abstract class UnderwaterPlantScatter extends ScatterFeature { return 5; } - private BlockPos getGround(StructureWorldAccess world, MutableBlockPos pos) { + private BlockPos getGround(WorldGenLevel world, MutableBlockPos pos) { while (pos.getY() < 128 && world.getFluidState(pos).isEmpty()) { pos.setY(pos.getY() + 1); } diff --git a/src/main/java/ru/betterend/world/features/VineFeature.java b/src/main/java/ru/betterend/world/features/VineFeature.java index ec3885b2..18c8e7c7 100644 --- a/src/main/java/ru/betterend/world/features/VineFeature.java +++ b/src/main/java/ru/betterend/world/features/VineFeature.java @@ -5,7 +5,7 @@ import java.util.Random; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.VineBlock; @@ -24,14 +24,13 @@ public class VineFeature extends InvertedScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos center, BlockPos blockPos, - float radius) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { BlockState state = world.getBlockState(blockPos); return state.getMaterial().isReplaceable() && canPlaceBlock(state, world, blockPos); } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos blockPos) { + public void place(WorldGenLevel world, Random random, BlockPos blockPos) { int h = BlocksHelper.downRay(world, blockPos, random.nextInt(maxLength)) - 1; if (h > 2) { BlockState top = getTopState(); @@ -45,7 +44,7 @@ public class VineFeature extends InvertedScatterFeature { } } - private boolean canPlaceBlock(BlockState state, StructureWorldAccess world, BlockPos blockPos) { + private boolean canPlaceBlock(BlockState state, WorldGenLevel world, BlockPos blockPos) { if (vine) { return ((VineBlock) vineBlock).canGenerate(state, world, blockPos); } else { diff --git a/src/main/java/ru/betterend/world/features/WallPlantFeature.java b/src/main/java/ru/betterend/world/features/WallPlantFeature.java index 24f252d8..0f34f39f 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.blocks.basis.AttachedBlock; import ru.betterend.blocks.basis.EndWallPlantBlock; import ru.betterend.util.BlocksHelper; @@ -21,7 +21,7 @@ public class WallPlantFeature extends WallScatterFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { if (block instanceof EndWallPlantBlock) { BlockState state = block.defaultBlockState().with(EndWallPlantBlock.FACING, dir); return block.canPlaceAt(state, world, pos); @@ -33,7 +33,7 @@ public class WallPlantFeature extends WallScatterFeature { } @Override - public void generate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { + public void place(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { BlockState state = block.defaultBlockState(); if (block instanceof EndWallPlantBlock) { state = state.with(EndWallPlantBlock.FACING, dir); diff --git a/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java b/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java index 6fb1bb71..72855bab 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.tags.BlockTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; public class WallPlantOnLogFeature extends WallPlantFeature { public WallPlantOnLogFeature(Block block, int radius) { @@ -15,7 +15,7 @@ public class WallPlantOnLogFeature extends WallPlantFeature { } @Override - public boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir) { + public boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { BlockPos blockPos = pos.relative(dir.getOpposite()); BlockState blockState = world.getBlockState(blockPos); return blockState.isIn(BlockTags.LOGS); diff --git a/src/main/java/ru/betterend/world/features/WallScatterFeature.java b/src/main/java/ru/betterend/world/features/WallScatterFeature.java index 80f628ad..7528bf86 100644 --- a/src/main/java/ru/betterend/world/features/WallScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/WallScatterFeature.java @@ -6,9 +6,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.util.BlocksHelper; import ru.betterend.util.MHelper; @@ -20,13 +20,13 @@ public abstract class WallScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir); + public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir); - public abstract void generate(StructureWorldAccess world, Random random, BlockPos pos, Direction dir); + public abstract void place(WorldGenLevel world, Random random, BlockPos pos, Direction dir); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos center, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos center, + NoneFeatureConfiguration featureConfig) { int maxY = world.getTopY(Heightmap.Type.WORLD_SURFACE, center.getX(), center.getZ()); int minY = BlocksHelper.upRay(world, new BlockPos(center.getX(), 0, center.getZ()), maxY); if (maxY < 10 || maxY < minY) { diff --git a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java index ad884473..dbd7c83c 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java @@ -9,9 +9,9 @@ import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -35,8 +35,8 @@ public class BushFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND) && !world.getBlockState(pos.up()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -46,7 +46,7 @@ public class BushFeature extends DefaultFeature { SDF sphere = new SDFSphere().setRadius(radius).setBlock(this.leaves); sphere = new SDFScale3D().setScale(1, 0.5F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 3; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-2F, 2F, random); diff --git a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java index 03f54c15..9f088dba 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java @@ -10,9 +10,9 @@ import net.minecraft.world.level.material.Material; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -39,8 +39,8 @@ public class BushWithOuterFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND) && !world.getBlockState(pos.up()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -50,7 +50,7 @@ public class BushWithOuterFeature extends DefaultFeature { SDF sphere = new SDFSphere().setRadius(radius).setBlock(this.leaves); sphere = new SDFScale3D().setScale(1, 0.5F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 3; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-2F, 2F, random); diff --git a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java index cad1b8c7..b4794ae8 100644 --- a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.registry.EndBlocks; @@ -19,8 +19,8 @@ import ru.betterend.world.features.DefaultFeature; public class LargeAmaranitaFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; diff --git a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java index 0dc33584..5d323765 100644 --- a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java +++ b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties.LumecornShape; import ru.betterend.blocks.LumecornBlock; import ru.betterend.registry.EndBlocks; @@ -19,8 +19,8 @@ import ru.betterend.world.features.DefaultFeature; public class Lumecorn extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; diff --git a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java index 210fce3c..3e6edc03 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -12,9 +12,9 @@ import net.minecraft.world.level.material.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; @@ -39,8 +39,8 @@ public class TenaneaBushFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -50,7 +50,7 @@ public class TenaneaBushFeature extends DefaultFeature { SDF sphere = new SDFSphere().setRadius(radius).setBlock(leaves); sphere = new SDFScale3D().setScale(1, 0.75F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 3; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-2F, 2F, random); diff --git a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java index e7f7b7ba..ec22a61f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java @@ -3,11 +3,11 @@ package ru.betterend.world.features.terrain; import java.util.Random; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -19,8 +19,8 @@ import ru.betterend.world.features.DefaultFeature; public class BigAuroraCrystalFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { int maxY = pos.getY() + BlocksHelper.upRay(world, pos, 16); int minY = pos.getY() - BlocksHelper.downRay(world, pos, 16); diff --git a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java index 97d3e3b6..3231fbb6 100644 --- a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java @@ -8,9 +8,9 @@ import net.minecraft.world.level.material.Material; import net.minecraft.fluid.FluidState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -24,8 +24,8 @@ public class EndLakeFeature extends DefaultFeature { private static final MutableBlockPos POS = new MutableBlockPos(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, + NoneFeatureConfiguration featureConfig) { double radius = MHelper.randRange(10.0, 20.0, random); double depth = radius * 0.5 * MHelper.randRange(0.8, 1.2, random); int dist = MHelper.floor(radius); @@ -121,7 +121,7 @@ public class EndLakeFeature extends DefaultFeature { } pos = POS.below(); if (world.getBlockState(pos).isIn(EndTags.GEN_TERRAIN)) { - state = world.getBiome(pos).getGenerationSettings().getSurfaceConfig() + state = world.getBiome(pos).getGenerationSettings().getSurfaceBuilderConfig() .getTopMaterial(); if (y > waterLevel + 1) BlocksHelper.setWithoutUpdate(world, pos, state); @@ -183,7 +183,8 @@ public class EndLakeFeature extends DefaultFeature { // Make border else if (y < waterLevel && y2 + x2 + z2 <= rb) { if (world.isAir(POS.up())) { - state = world.getBiome(POS).getGenerationSettings().getSurfaceConfig().getTopMaterial(); + state = world.getBiome(POS).getGenerationSettings().getSurfaceBuilderConfig() + .getTopMaterial(); BlocksHelper.setWithoutUpdate(world, POS, random.nextBoolean() ? state : EndBlocks.ENDSTONE_DUST.defaultBlockState()); BlocksHelper.setWithoutUpdate(world, POS.below(), END_STONE); diff --git a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java index 27402490..53f60237 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java @@ -5,11 +5,11 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -23,8 +23,8 @@ import ru.betterend.world.features.DefaultFeature; public class FallenPillarFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurface(world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))); if (!world.getBlockState(pos.down(5)).isIn(EndTags.GEN_TERRAIN)) { @@ -38,7 +38,7 @@ public class FallenPillarFeature extends DefaultFeature { pillar = new SDFTranslate().setTranslate(0, radius * 0.5F - 2, 0).setSource(pillar); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); pillar = new SDFDisplacement().setFunction((vec) -> { - return (float) (noise.eval(vec.getX() * 0.3, vec.getY() * 0.3, vec.getZ() * 0.3) * 0.5F); + return (float) (noise.eval(vec.x() * 0.3, vec.y() * 0.3, vec.z() * 0.3) * 0.5F); }).setSource(pillar); Vector3f vec = MHelper.randomHorizontal(random); float angle = (float) random.nextGaussian() * 0.05F + (float) Math.PI; diff --git a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java index dde3dc7c..108edf17 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java @@ -8,9 +8,9 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; @@ -21,8 +21,8 @@ import ru.betterend.util.sdf.primitive.SDFSphere; public class FloatingSpireFeature extends SpireFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { int minY = getYOnSurface(world, pos.getX(), pos.getZ()); int y = minY > 57 ? MHelper.floor(MHelper.randRange(minY, minY * 2, random) * 0.5F + 32) : MHelper.randRange(64, 192, random); @@ -42,8 +42,8 @@ public class FloatingSpireFeature extends SpireFeature { OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); sdf = new SDFDisplacement().setFunction((vec) -> { - return (float) (Math.abs(noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1)) * 3F - + Math.abs(noise.eval(vec.getX() * 0.3, vec.getY() * 0.3 + 100, vec.getZ() * 0.3)) * 1.3F); + return (float) (Math.abs(noise.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1)) * 3F + + Math.abs(noise.eval(vec.x() * 0.3, vec.y() * 0.3 + 100, vec.z() * 0.3)) * 1.3F); }).setSource(sdf); final BlockPos center = pos; List support = Lists.newArrayList(); @@ -52,9 +52,10 @@ public class FloatingSpireFeature extends SpireFeature { if (random.nextInt(16) == 0) { support.add(info.getPos().up()); } - return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceConfig().getTopMaterial(); + return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); } else if (info.getState(Direction.UP, 3).isAir()) { - return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceConfig().getUnderMaterial(); + return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceBuilderConfig() + .getUnderMaterial(); } return info.getState(); }); @@ -62,7 +63,7 @@ public class FloatingSpireFeature extends SpireFeature { support.forEach((bpos) -> { if (EndBiomes.getFromBiome(world.getBiome(bpos)) == EndBiomes.BLOSSOMING_SPIRES) { - EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + EndFeatures.TENANEA_BUSH.getFeature().place(world, chunkGenerator, random, bpos, null); } }); diff --git a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java index 04899d98..4ee5f97f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java @@ -7,14 +7,14 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.HorizontalFacingBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.HydrothermalVentBlock; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; @@ -45,8 +45,8 @@ public class GeyserFeature extends DefaultFeature { private static final Direction[] HORIZONTAL = BlocksHelper.makeHorizontal(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurfaceWG(world, pos); if (pos.getY() < 10) { @@ -96,9 +96,9 @@ public class GeyserFeature extends DefaultFeature { final OpenSimplexNoise noise2 = new OpenSimplexNoise(random.nextLong()); bowl = new SDFCoordModify().setFunction((vec) -> { - float dx = (float) noise1.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1); - float dz = (float) noise2.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1); - vec.set(vec.getX() + dx, vec.getY(), vec.getZ() + dz); + float dx = (float) noise1.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1); + float dz = (float) noise2.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1); + vec.set(vec.x() + dx, vec.y(), vec.z() + dz); }).setSource(bowl); SDF cut = new SDFFlatland().setBlock(Blocks.AIR); @@ -124,13 +124,13 @@ public class GeyserFeature extends DefaultFeature { obj1 = new SDFCappedCone().setHeight(halfHeight + 5).setRadius1(radius1 * 0.5F).setRadius2(radius2); sdf = new SDFTranslate().setTranslate(0, halfHeight - 13, 0).setSource(obj1); sdf = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.3F, vec.getY() * 0.3F, vec.getZ() * 0.3F) * 0.5F; + return (float) noise.eval(vec.x() * 0.3F, vec.y() * 0.3F, vec.z() * 0.3F) * 0.5F; }).setSource(sdf); obj2 = new SDFSphere().setRadius(radius1); SDF cave = new SDFScale3D().setScale(1.5F, 1, 1.5F).setSource(obj2); cave = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.1F, vec.getY() * 0.1F, vec.getZ() * 0.1F) * 2F; + return (float) noise.eval(vec.x() * 0.1F, vec.y() * 0.1F, vec.z() * 0.1F) * 2F; }).setSource(cave); cave = new SDFTranslate().setTranslate(0, -halfHeight - 10, 0).setSource(cave); @@ -238,7 +238,7 @@ public class GeyserFeature extends DefaultFeature { } } - EndFeatures.SULPHURIC_LAKE.getFeature().generate(world, chunkGenerator, random, pos, null); + EndFeatures.SULPHURIC_LAKE.getFeature().place(world, chunkGenerator, random, pos, null); double distance = radius1 * 1.7; BlockPos start = pos.offset(-distance, -halfHeight - 15 - distance, -distance); diff --git a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java index 52f6def7..a1db3934 100644 --- a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java @@ -5,11 +5,11 @@ import java.util.List; import java.util.Random; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; @@ -33,8 +33,8 @@ public class IceStarFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { float size = MHelper.randRange(minSize, maxSize, random); int count = MHelper.randRange(minCount, maxCount, random); List points = getFibonacciPoints(count); diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java index 0cc228d1..815e810c 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -21,8 +21,8 @@ import ru.betterend.world.features.DefaultFeature; public class ObsidianBoulderFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurface(world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))); if (!world.getBlockState(pos.below()).isIn(EndTags.END_GROUND)) { @@ -39,7 +39,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { return true; } - private void makeBoulder(StructureWorldAccess world, BlockPos pos, Random random) { + private void makeBoulder(WorldGenLevel world, BlockPos pos, Random random) { if (!world.getBlockState(pos.below()).isIn(EndTags.END_GROUND)) { return; } @@ -52,7 +52,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { sphere = new SDFScale3D().setScale(sx, sy, sz).setSource(sphere); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) (noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 1.5F); + return (float) (noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 1.5F); }).setSource(sphere); BlockState mossy = EndBlocks.MOSSY_OBSIDIAN.defaultBlockState(); diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java index 75fc5f22..08067b32 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java @@ -5,11 +5,11 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -25,8 +25,8 @@ import ru.betterend.world.features.DefaultFeature; public class ObsidianPillarBasementFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurface(world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))); if (!world.getBlockState(pos.down(5)).isIn(EndTags.GEN_TERRAIN)) { @@ -41,7 +41,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature { SDF cut = new SDFFlatland().setBlock(Blocks.OBSIDIAN); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); cut = new SDFDisplacement().setFunction((vec) -> { - return (float) (noise.eval(vec.getX() * 0.2, vec.getZ() * 0.2) * 3); + return (float) (noise.eval(vec.x() * 0.2, vec.z() * 0.2) * 3); }).setSource(cut); Vector3f vec = MHelper.randomHorizontal(random); float angle = random.nextFloat() * 0.5F + (float) Math.PI; diff --git a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java index 36766726..cd73b096 100644 --- a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java @@ -5,9 +5,9 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; @@ -35,8 +35,8 @@ public class OreLayerFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { float radius = this.radius * 0.5F; int r = MHelper.floor(radius + 1); int posX = MHelper.randRange(Math.max(r - 16, 0), Math.min(31 - r, 15), random) + pos.getX(); @@ -49,10 +49,10 @@ public class OreLayerFeature extends DefaultFeature { SPHERE.setRadius(radius).setBlock(state); NOISE.setFunction((vec) -> { - double x = (vec.getX() + pos.getX()) * 0.1; - double z = (vec.getZ() + pos.getZ()) * 0.1; + double x = (vec.x() + pos.getX()) * 0.1; + double z = (vec.z() + pos.getZ()) * 0.1; double offset = noise.eval(x, z); - vec.set(vec.getX(), vec.getY() + (float) offset * 8, vec.getZ()); + vec.set(vec.x(), vec.y() + (float) offset * 8, vec.z()); }); FUNCTION.fillRecursive(world, new BlockPos(posX, posY, posZ)); return true; diff --git a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java index a13e5821..08f7c648 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.world.features.DefaultFeature; @@ -21,8 +21,8 @@ public class SingleBlockFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).isIn(EndTags.GEN_TERRAIN)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java index 466bd242..6397ca07 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -17,8 +17,8 @@ import ru.betterend.world.features.DefaultFeature; public class SmaragdantCrystalFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).isIn(EndTags.GEN_TERRAIN)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java index 6f6824ab..30617675 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -9,12 +9,12 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.material.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndFeatures; @@ -31,11 +31,11 @@ public class SpireFeature extends DefaultFeature { protected static final Function REPLACE; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurfaceWG(world, pos); - if (pos.getY() < 10 || !world.getBlockState(pos.down(3)).isIn(EndTags.GEN_TERRAIN) - || !world.getBlockState(pos.down(6)).isIn(EndTags.GEN_TERRAIN)) { + if (pos.getY() < 10 || !world.getBlockState(pos.below(3)).is(EndTags.GEN_TERRAIN) + || !world.getBlockState(pos.below(6)).is(EndTags.GEN_TERRAIN)) { return false; } @@ -46,27 +46,28 @@ public class SpireFeature extends DefaultFeature { sdf = addSegment(sdf, MHelper.randRange(rMin, rMin + 1.5F, random), random); } OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); - sdf = new SDFDisplacement().setFunction((vec) -> { - return (float) (Math.abs(noise.eval(vec.getX() * 0.1, vec.getY() * 0.1, vec.getZ() * 0.1)) * 3F - + Math.abs(noise.eval(vec.getX() * 0.3, vec.getY() * 0.3 + 100, vec.getZ() * 0.3)) * 1.3F); + sdf = new SDFDisplacement().setFunction(vec -> { + return (float) (Math.abs(noise.eval(vec.x() * 0.1, vec.y() * 0.1, vec.z() * 0.1)) * 3F + + Math.abs(noise.eval(vec.x() * 0.3, vec.y() * 0.3 + 100, vec.z() * 0.3)) * 1.3F); }).setSource(sdf); final BlockPos center = pos; List support = Lists.newArrayList(); sdf.setReplaceFunction(REPLACE).addPostProcess((info) -> { if (info.getStateUp().isAir()) { if (random.nextInt(16) == 0) { - support.add(info.getPos().up()); + support.add(info.getPos().above()); } - return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceConfig().getTopMaterial(); + return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); } else if (info.getState(Direction.UP, 3).isAir()) { - return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceConfig().getUnderMaterial(); + return world.getBiome(info.getPos()).getGenerationSettings().getSurfaceBuilderConfig() + .getUnderMaterial(); } return info.getState(); }).fillRecursive(world, center); support.forEach((bpos) -> { if (EndBiomes.getFromBiome(world.getBiome(bpos)) == EndBiomes.BLOSSOMING_SPIRES) { - EndFeatures.TENANEA_BUSH.getFeature().generate(world, chunkGenerator, random, bpos, null); + EndFeatures.TENANEA_BUSH.getFeature().place(world, chunkGenerator, random, bpos, null); } }); @@ -82,7 +83,7 @@ public class SpireFeature extends DefaultFeature { static { REPLACE = (state) -> { - if (state.isIn(EndTags.END_GROUND)) { + if (state.is(EndTags.END_GROUND)) { return true; } if (state.getBlock() instanceof LeavesBlock) { diff --git a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java index 6c54c59c..3a336a23 100644 --- a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java @@ -8,9 +8,9 @@ import net.minecraft.state.property.Properties; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.basis.StalactiteBlock; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -28,8 +28,8 @@ public class StalactiteFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!isGround(world.getBlockState(ceiling ? pos.up() : pos.below()).getBlock())) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java index 16ebab6f..d75ea8ed 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java @@ -7,9 +7,9 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; @@ -19,8 +19,8 @@ import ru.betterend.world.features.DefaultFeature; public class SulphurHillFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurfaceWG(world, pos); if (pos.getY() < 57 || pos.getY() > 70) { return false; @@ -40,7 +40,7 @@ public class SulphurHillFeature extends DefaultFeature { return true; } - private void makeCircle(StructureWorldAccess world, BlockPos pos, OpenSimplexNoise noise, Random random) { + private void makeCircle(WorldGenLevel world, BlockPos pos, OpenSimplexNoise noise, Random random) { int radius = MHelper.randRange(5, 9, random); int min = -radius - 3; int max = radius + 4; diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java index 6fc09489..35aa9add 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java @@ -13,9 +13,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.noise.OpenSimplexNoise; @@ -31,8 +31,8 @@ public class SulphuricCaveFeature extends DefaultFeature { private static final Direction[] HORIZONTAL = BlocksHelper.makeHorizontal(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { int radius = MHelper.randRange(10, 30, random); int top = world.getTopY(Heightmap.Type.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); @@ -106,7 +106,7 @@ public class SulphuricCaveFeature extends DefaultFeature { double v = noise.eval(x * 0.1, y * 0.1, z * 0.1) + noise.eval(x * 0.03, y * 0.03, z * 0.03) * 0.5; if (v > 0.4) { - brimstone.add(mut.toImmutable()); + brimstone.add(mut.immutable()); } else { BlocksHelper.setWithoutUpdate(world, mut, rock); } @@ -173,7 +173,7 @@ public class SulphuricCaveFeature extends DefaultFeature { || state.getMaterial().equals(Material.UNDERWATER_PLANT) || state.getMaterial().equals(Material.LEAVES); } - private void placeBrimstone(StructureWorldAccess world, BlockPos pos, Random random) { + private void placeBrimstone(WorldGenLevel world, BlockPos pos, Random random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); if (state.getValue(BlockProperties.ACTIVE)) { @@ -181,7 +181,7 @@ public class SulphuricCaveFeature extends DefaultFeature { } } - private BlockState getBrimstone(StructureWorldAccess world, BlockPos pos) { + private BlockState getBrimstone(WorldGenLevel world, BlockPos pos) { for (Direction dir : BlocksHelper.DIRECTIONS) { if (world.getBlockState(pos.relative(dir)).is(Blocks.WATER)) { return EndBlocks.BRIMSTONE.defaultBlockState().with(BlockProperties.ACTIVE, true); @@ -190,7 +190,7 @@ public class SulphuricCaveFeature extends DefaultFeature { return EndBlocks.BRIMSTONE.defaultBlockState(); } - private void makeShards(StructureWorldAccess world, BlockPos pos, Random random) { + private void makeShards(WorldGenLevel world, BlockPos pos, Random random) { for (Direction dir : BlocksHelper.DIRECTIONS) { BlockPos side; if (random.nextInt(16) == 0 && world.getBlockState((side = pos.relative(dir))).is(Blocks.WATER)) { diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java index 9428fe66..5f1948a4 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -7,13 +7,13 @@ import com.google.common.collect.Sets; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; -import net.minecraft.fluid.Fluids; +import net.minecraft.world.level.material.Fluids; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.noise.OpenSimplexNoise; @@ -28,8 +28,8 @@ public class SulphuricLakeFeature extends DefaultFeature { private static final MutableBlockPos POS = new MutableBlockPos(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, + NoneFeatureConfiguration featureConfig) { blockPos = getPosOnSurfaceWG(world, blockPos); if (blockPos.getY() < 57) { @@ -63,7 +63,7 @@ public class SulphuricLakeFeature extends DefaultFeature { if (world.getBlockState(POS).isIn(EndTags.GEN_TERRAIN)) { if (isBorder(world, POS)) { if (random.nextInt(8) > 0) { - brimstone.add(POS.toImmutable()); + brimstone.add(POS.immutable()); if (random.nextBoolean()) { brimstone.add(POS.below()); if (random.nextBoolean()) { @@ -82,7 +82,7 @@ public class SulphuricLakeFeature extends DefaultFeature { } } } else { - brimstone.add(POS.toImmutable()); + brimstone.add(POS.immutable()); if (random.nextBoolean()) { brimstone.add(POS.below()); } @@ -119,7 +119,7 @@ public class SulphuricLakeFeature extends DefaultFeature { } else if (dist < r2) { POS.setY(getYOnSurface(world, x, z) - 1); if (world.getBlockState(POS).isIn(EndTags.GEN_TERRAIN)) { - brimstone.add(POS.toImmutable()); + brimstone.add(POS.immutable()); if (random.nextBoolean()) { brimstone.add(POS.below()); if (random.nextBoolean()) { @@ -138,7 +138,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return true; } - private boolean isBorder(StructureWorldAccess world, BlockPos pos) { + private boolean isBorder(WorldGenLevel world, BlockPos pos) { int y = pos.getY() + 1; for (Direction dir : BlocksHelper.DIRECTIONS) { if (getYOnSurface(world, pos.getX() + dir.getOffsetX(), pos.getZ() + dir.getOffsetZ()) < y) { @@ -148,7 +148,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return false; } - private boolean isAbsoluteBorder(StructureWorldAccess world, BlockPos pos) { + private boolean isAbsoluteBorder(WorldGenLevel world, BlockPos pos) { int y = pos.getY() - 2; for (Direction dir : BlocksHelper.DIRECTIONS) { if (getYOnSurface(world, pos.getX() + dir.getOffsetX() * 3, pos.getZ() + dir.getOffsetZ() * 3) < y) { @@ -158,7 +158,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return false; } - private boolean isDeepWater(StructureWorldAccess world, BlockPos pos) { + private boolean isDeepWater(WorldGenLevel world, BlockPos pos) { int y = pos.getY() + 1; for (Direction dir : BlocksHelper.DIRECTIONS) { if (getYOnSurface(world, pos.getX() + dir.getOffsetX(), pos.getZ() + dir.getOffsetZ()) < y @@ -170,7 +170,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return true; } - private void placeBrimstone(StructureWorldAccess world, BlockPos pos, Random random) { + private void placeBrimstone(WorldGenLevel world, BlockPos pos, Random random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); if (state.getValue(BlockProperties.ACTIVE)) { @@ -178,7 +178,7 @@ public class SulphuricLakeFeature extends DefaultFeature { } } - private BlockState getBrimstone(StructureWorldAccess world, BlockPos pos) { + private BlockState getBrimstone(WorldGenLevel world, BlockPos pos) { for (Direction dir : BlocksHelper.DIRECTIONS) { if (world.getBlockState(pos.relative(dir)).is(Blocks.WATER)) { return EndBlocks.BRIMSTONE.defaultBlockState().with(BlockProperties.ACTIVE, true); @@ -187,7 +187,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return EndBlocks.BRIMSTONE.defaultBlockState(); } - private void makeShards(StructureWorldAccess world, BlockPos pos, Random random) { + private void makeShards(WorldGenLevel world, BlockPos pos, Random random) { for (Direction dir : BlocksHelper.DIRECTIONS) { BlockPos side; if (random.nextInt(16) == 0 && world.getBlockState((side = pos.relative(dir))).is(Blocks.WATER)) { diff --git a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java index 92148073..1e75d2ca 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java @@ -5,9 +5,9 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.HydrothermalVentBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -17,8 +17,8 @@ import ru.betterend.world.features.DefaultFeature; public class SurfaceVentFeature extends DefaultFeature { @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { pos = getPosOnSurface(world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16))); if (!world.getBlockState(pos.down(3)).isIn(EndTags.GEN_TERRAIN)) { diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java index 261828c0..96397bb2 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java @@ -10,11 +10,11 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.world.biome.cave.EndCaveBiome; @@ -28,8 +28,8 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { } @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { Set floorPositions = Sets.newHashSet(); Set ceilPositions = Sets.newHashSet(); int sx = (pos.getX() >> 4) << 4; @@ -38,7 +38,7 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { MutableBlockPos max = new MutableBlockPos().set(pos); fillSets(sx, sz, world.getChunk(pos), floorPositions, ceilPositions, min, max); EndCaveBiome biome = supplier.get(); - BlockState surfaceBlock = biome.getBiome().getGenerationSettings().getSurfaceConfig().getTopMaterial(); + BlockState surfaceBlock = biome.getBiome().getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); placeFloor(world, biome, floorPositions, random, surfaceBlock); placeCeil(world, biome, ceilPositions, random); BlocksHelper.fixBlocks(world, min, max); @@ -63,12 +63,12 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { BlockState bottom = chunk.getBlockState(mut2); if (top.isAir() && (bottom.isIn(EndTags.GEN_TERRAIN) || bottom.is(Blocks.STONE))) { mut3.set(mut2).move(sx, 0, sz); - floorPositions.add(mut3.toImmutable()); + floorPositions.add(mut3.immutable()); updateMin(mut3, min); updateMax(mut3, max); } else if (bottom.isAir() && (top.isIn(EndTags.GEN_TERRAIN) || top.is(Blocks.STONE))) { mut3.set(mut).move(sx, 0, sz); - ceilPositions.add(mut3.toImmutable()); + ceilPositions.add(mut3.immutable()); updateMin(mut3, min); updateMax(mut3, max); } @@ -102,22 +102,21 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { } } - protected void placeFloor(StructureWorldAccess world, EndCaveBiome biome, Set floorPositions, - Random random, BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, + BlockState surfaceBlock) { float density = biome.getFloorDensity(); floorPositions.forEach((pos) -> { BlocksHelper.setWithoutUpdate(world, pos, surfaceBlock); if (density > 0 && random.nextFloat() <= density) { Feature feature = biome.getFloorFeature(random); if (feature != null) { - feature.generate(world, null, random, pos.up(), null); + feature.place(world, null, random, pos.up(), null); } } }); } - protected void placeCeil(StructureWorldAccess world, EndCaveBiome biome, Set ceilPositions, - Random random) { + protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, Random random) { float density = biome.getCeilDensity(); ceilPositions.forEach((pos) -> { BlockState ceilBlock = biome.getCeil(pos); @@ -127,7 +126,7 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { if (density > 0 && random.nextFloat() <= density) { Feature feature = biome.getCeilFeature(random); if (feature != null) { - feature.generate(world, null, random, pos.below(), null); + feature.place(world, null, random, pos.below(), null); } } }); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java index 5faf8e26..b1787b6c 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java @@ -11,11 +11,11 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.world.Heightmap; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.Feature; import ru.betterend.interfaces.IBiomeArray; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndTags; @@ -32,8 +32,8 @@ public abstract class EndCaveFeature extends DefaultFeature { protected static final BlockState WATER = Blocks.WATER.defaultBlockState(); @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!(GeneratorOptions.useNewGenerator() && GeneratorOptions.noRingVoid()) || pos.getX() * pos.getX() + pos.getZ() * pos.getZ() <= 22500) { return false; @@ -63,15 +63,16 @@ public abstract class EndCaveFeature extends DefaultFeature { if (world.getBlockState(mut).getMaterial().isReplaceable()) { mut.setY(bpos.getY() - 1); if (world.getBlockState(mut).isIn(EndTags.GEN_TERRAIN)) { - floorPositions.add(mut.toImmutable()); + floorPositions.add(mut.immutable()); } mut.setY(bpos.getY() + 1); if (world.getBlockState(mut).isIn(EndTags.GEN_TERRAIN)) { - ceilPositions.add(mut.toImmutable()); + ceilPositions.add(mut.immutable()); } } }); - BlockState surfaceBlock = biome.getBiome().getGenerationSettings().getSurfaceConfig().getTopMaterial(); + BlockState surfaceBlock = biome.getBiome().getGenerationSettings().getSurfaceBuilderConfig() + .getTopMaterial(); placeFloor(world, biome, floorPositions, random, surfaceBlock); placeCeil(world, biome, ceilPositions, random); } @@ -81,24 +82,23 @@ public abstract class EndCaveFeature extends DefaultFeature { return true; } - protected abstract Set generate(StructureWorldAccess world, BlockPos center, int radius, Random random); + protected abstract Set place(WorldGenLevel world, BlockPos center, int radius, Random random); - protected void placeFloor(StructureWorldAccess world, EndCaveBiome biome, Set floorPositions, - Random random, BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, + BlockState surfaceBlock) { float density = biome.getFloorDensity(); floorPositions.forEach((pos) -> { BlocksHelper.setWithoutUpdate(world, pos, surfaceBlock); if (density > 0 && random.nextFloat() <= density) { Feature feature = biome.getFloorFeature(random); if (feature != null) { - feature.generate(world, null, random, pos.up(), null); + feature.place(world, null, random, pos.up(), null); } } }); } - protected void placeCeil(StructureWorldAccess world, EndCaveBiome biome, Set ceilPositions, - Random random) { + protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, Random random) { float density = biome.getCeilDensity(); ceilPositions.forEach((pos) -> { BlockState ceilBlock = biome.getCeil(pos); @@ -108,24 +108,24 @@ public abstract class EndCaveFeature extends DefaultFeature { if (density > 0 && random.nextFloat() <= density) { Feature feature = biome.getCeilFeature(random); if (feature != null) { - feature.generate(world, null, random, pos.below(), null); + feature.place(world, null, random, pos.below(), null); } } }); } - protected void setBiomes(StructureWorldAccess world, EndCaveBiome biome, Set blocks) { + protected void setBiomes(WorldGenLevel world, EndCaveBiome biome, Set blocks) { blocks.forEach((pos) -> setBiome(world, pos, biome)); } - private void setBiome(StructureWorldAccess world, BlockPos pos, EndCaveBiome biome) { + private void setBiome(WorldGenLevel world, BlockPos pos, EndCaveBiome biome) { IBiomeArray array = (IBiomeArray) world.getChunk(pos).getBiomeArray(); if (array != null) { array.setBiome(biome.getActualBiome(), pos); } } - private BlockPos findPos(StructureWorldAccess world, BlockPos pos, int radius, Random random) { + private BlockPos findPos(WorldGenLevel world, BlockPos pos, int radius, Random random) { int top = world.getTopY(Heightmap.Type.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); MutableBlockPos bpos = new MutableBlockPos(); bpos.setX(pos.getX()); @@ -155,7 +155,7 @@ public abstract class EndCaveFeature extends DefaultFeature { return new BlockPos(pos.getX(), MHelper.randRange(bottom, top, random), pos.getZ()); } - private void fixBlocks(StructureWorldAccess world, Set caveBlocks) { + private void fixBlocks(WorldGenLevel world, Set caveBlocks) { BlockPos pos = caveBlocks.iterator().next(); MutableBlockPos start = new MutableBlockPos().set(pos); MutableBlockPos end = new MutableBlockPos().set(pos); @@ -184,7 +184,7 @@ public abstract class EndCaveFeature extends DefaultFeature { BlocksHelper.fixBlocks(world, start.add(-5, -5, -5), end.add(5, 5, 5)); } - protected boolean isWaterNear(StructureWorldAccess world, BlockPos pos) { + protected boolean isWaterNear(WorldGenLevel world, BlockPos pos) { for (Direction dir : BlocksHelper.DIRECTIONS) { if (!world.getFluidState(pos.relative(dir, 5)).isEmpty()) { return true; @@ -193,7 +193,7 @@ public abstract class EndCaveFeature extends DefaultFeature { return false; } - protected boolean biomeMissingCaves(StructureWorldAccess world, BlockPos pos) { + protected boolean biomeMissingCaves(WorldGenLevel world, BlockPos pos) { for (int x = -2; x < 3; x++) { for (int z = -2; z < 3; z++) { Biome biome = world.getBiome(pos.offset(x << 4, 0, z << 4)); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java index 284528cf..54c96c39 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; @@ -17,7 +17,7 @@ import ru.betterend.util.MHelper; public class RoundCaveFeature extends EndCaveFeature { @Override - protected Set generate(StructureWorldAccess world, BlockPos center, int radius, Random random) { + protected Set place(WorldGenLevel world, BlockPos center, int radius, Random random) { OpenSimplexNoise noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ())); int x1 = center.getX() - radius - 5; @@ -52,7 +52,7 @@ public class RoundCaveFeature extends EndCaveFeature { state = world.getBlockState(bpos); if (isReplaceable(state) && !isWaterNear(world, bpos)) { BlocksHelper.setWithoutUpdate(world, bpos, CAVE_AIR); - blocks.add(bpos.toImmutable()); + blocks.add(bpos.immutable()); while (state.getMaterial().equals(Material.LEAVES)) { BlocksHelper.setWithoutUpdate(world, bpos, CAVE_AIR); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java index 96789b66..d428fc45 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java @@ -8,10 +8,10 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import ru.betterend.registry.EndTags; import ru.betterend.util.BlocksHelper; import ru.betterend.util.SplineHelper; @@ -21,7 +21,7 @@ public class TunelCaveFeature extends EndCaveFeature { private static final Function REPLACE; @Override - protected Set generate(StructureWorldAccess world, BlockPos center, int radius, Random random) { + protected Set place(WorldGenLevel world, BlockPos center, int radius, Random random) { // OpenSimplexNoise noise = new OpenSimplexNoise(MHelper.getSeed(534, // center.getX(), center.getZ())); float rad = radius * 0.15F; @@ -31,9 +31,9 @@ public class TunelCaveFeature extends EndCaveFeature { spline = SplineHelper.smoothSpline(spline, 5); SplineHelper.offsetParts(spline, random, 5, radius * 0.4F, 5); for (Vector3f vec : spline) { - float x = Mth.clamp(vec.getX(), min, max); - float y = Mth.clamp(vec.getY(), -radius, radius); - float z = Mth.clamp(vec.getZ(), min, max); + float x = Mth.clamp(vec.x(), min, max); + float y = Mth.clamp(vec.y(), -radius, radius); + float z = Mth.clamp(vec.z(), min, max); vec.set(x, y, z); } SDF sdf = SplineHelper.buildSDF(spline, rad, rad, (vec) -> Blocks.AIR.defaultBlockState()); diff --git a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java index bc404708..1a890aa4 100644 --- a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java @@ -9,13 +9,13 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -42,8 +42,8 @@ public class DragonTreeFeature extends DefaultFeature { private static final List ROOT; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -76,8 +76,7 @@ public class DragonTreeFeature extends DefaultFeature { return true; } - private void makeCap(StructureWorldAccess world, BlockPos pos, float radius, Random random, - OpenSimplexNoise noise) { + private void makeCap(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { int count = (int) radius; int offset = (int) (BRANCH.get(BRANCH.size() - 1).getY() * radius); for (int i = 0; i < count; i++) { @@ -102,7 +101,7 @@ public class DragonTreeFeature extends DefaultFeature { leavesBall(world, pos.up(offset), radius * 1.15F + 2, random, noise); } - private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; @@ -118,8 +117,7 @@ public class DragonTreeFeature extends DefaultFeature { } } - private void leavesBall(StructureWorldAccess world, BlockPos pos, float radius, Random random, - OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.DRAGON_TREE_LEAVES.defaultBlockState().with(LeavesBlock.DISTANCE, 6)); SDF sub = new SDFScale().setScale(5).setSource(sphere); @@ -127,7 +125,7 @@ public class DragonTreeFeature extends DefaultFeature { sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(sub); sphere = new SDFScale3D().setScale(1, 0.5F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 1.5F; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 1.5F; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return random.nextFloat() * 3F - 1.5F; diff --git a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java index de9113dc..24eb7553 100644 --- a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java @@ -6,16 +6,16 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.basis.AttachedBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -32,8 +32,8 @@ public class GiganticAmaranitaFeature extends DefaultFeature { private static final Function POST; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -68,7 +68,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature { return true; } - private void makeHead(StructureWorldAccess world, BlockPos pos, int radius) { + private void makeHead(WorldGenLevel world, BlockPos pos, int radius) { MutableBlockPos mut = new MutableBlockPos(); if (radius < 2) { for (int i = -1; i < 2; i++) { diff --git a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java index 3a0c9fcc..28ab3a7f 100644 --- a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java @@ -6,14 +6,14 @@ import java.util.Random; import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.HelixTreeLeavesBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -33,8 +33,8 @@ public class HelixTreeFeature extends DefaultFeature { private static final Function POST; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; BlocksHelper.setWithoutUpdate(world, pos, AIR); @@ -148,7 +148,7 @@ public class HelixTreeFeature extends DefaultFeature { return true; } - private void fillLine(Vector3f start, Vector3f end, StructureWorldAccess world, BlockState state, BlockPos pos, + private void fillLine(Vector3f start, Vector3f end, WorldGenLevel world, BlockState state, BlockPos pos, int offset) { float dx = end.getX() - start.getX(); float dy = end.getY() - start.getY(); diff --git a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java index 3b16470a..94bedc0d 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -8,12 +8,12 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.JellyshroomCapBlock; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -33,8 +33,8 @@ public class JellyshroomFeature extends DefaultFeature { private static final List ROOT; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -79,7 +79,7 @@ public class JellyshroomFeature extends DefaultFeature { return true; } - private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random, BlockState wood) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood) { int count = (int) (radius * 3.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; diff --git a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java index 9ef75410..d71d222e 100644 --- a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java @@ -7,13 +7,13 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -34,8 +34,8 @@ public class LacugroveFeature extends DefaultFeature { private static final Function POST; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).isIn(EndTags.END_GROUND)) return false; @@ -107,12 +107,11 @@ public class LacugroveFeature extends DefaultFeature { return true; } - private void leavesBall(StructureWorldAccess world, BlockPos pos, float radius, Random random, - OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.LACUGROVE_LEAVES.defaultBlockState().with(LeavesBlock.DISTANCE, 6)); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 3; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return random.nextFloat() * 3F - 1.5F; diff --git a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java index c2eb554e..cbf386bb 100644 --- a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java @@ -9,13 +9,13 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; @@ -42,8 +42,8 @@ public class LucerniaFeature extends DefaultFeature { private static final List ROOT; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -70,8 +70,8 @@ public class LucerniaFeature extends DefaultFeature { return true; } - private void leavesBall(StructureWorldAccess world, BlockPos pos, float radius, Random random, - OpenSimplexNoise noise, boolean natural) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise, + boolean natural) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.LUCERNIA_LEAVES.defaultBlockState().with(LeavesBlock.DISTANCE, 6)); SDF sub = new SDFScale().setScale(5).setSource(sphere); @@ -79,7 +79,7 @@ public class LucerniaFeature extends DefaultFeature { sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(sub); sphere = new SDFScale3D().setScale(1, 0.75F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 2F; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 2F; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-1.5F, 1.5F, random); @@ -87,7 +87,7 @@ public class LucerniaFeature extends DefaultFeature { MutableBlockPos mut = new MutableBlockPos(); for (Direction d1 : BlocksHelper.HORIZONTAL) { - BlockPos p = mut.set(pos).move(Direction.UP).move(d1).toImmutable(); + BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable(); BlocksHelper.setWithoutUpdate(world, p, EndBlocks.LUCERNIA.bark.defaultBlockState()); for (Direction d2 : BlocksHelper.HORIZONTAL) { mut.set(p).move(Direction.UP).move(d2); @@ -175,7 +175,7 @@ public class LucerniaFeature extends DefaultFeature { }); } - private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; diff --git a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java index 499f4ee9..453ed3e9 100644 --- a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java @@ -6,12 +6,12 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.MossyGlowshroomCapBlock; import ru.betterend.blocks.basis.FurBlock; import ru.betterend.noise.OpenSimplexNoise; @@ -48,8 +48,8 @@ public class MossyGlowshroomFeature extends DefaultFeature { private static final SDFPrimitive ROOTS; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, - DefaultFeatureConfig featureConfig) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, + NoneFeatureConfiguration featureConfig) { BlockState down = world.getBlockState(blockPos.below()); if (!down.is(EndBlocks.END_MYCELIUM) && !down.is(EndBlocks.END_MOSS)) return false; diff --git a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java index d3e9ddf0..ac727c80 100644 --- a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java @@ -7,13 +7,13 @@ import java.util.function.Function; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndTags; @@ -35,8 +35,8 @@ public class PythadendronTreeFeature extends DefaultFeature { private static final Function POST; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (world.getBlockState(pos.below()).getBlock() != EndBlocks.CHORUS_NYLIUM) return false; BlocksHelper.setWithoutUpdate(world, pos, AIR); @@ -62,7 +62,7 @@ public class PythadendronTreeFeature extends DefaultFeature { } private void branch(float x, float y, float z, float size, float angle, Random random, int depth, - StructureWorldAccess world, BlockPos pos) { + WorldGenLevel world, BlockPos pos) { if (depth == 0) return; @@ -113,14 +113,14 @@ public class PythadendronTreeFeature extends DefaultFeature { } } - private void leavesBall(StructureWorldAccess world, BlockPos pos, Random random, OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, Random random, OpenSimplexNoise noise) { float radius = MHelper.randRange(4.5F, 6.5F, random); SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.PYTHADENDRON_LEAVES.defaultBlockState().with(LeavesBlock.DISTANCE, 6)); sphere = new SDFScale3D().setScale(1, 0.6F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 3; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 3; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return random.nextFloat() * 3F - 1.5F; diff --git a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java index 1ebf07b3..627989c6 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -9,13 +9,13 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.BlockProperties; import ru.betterend.blocks.BlockProperties.TripleShape; import ru.betterend.blocks.basis.FurBlock; @@ -41,8 +41,8 @@ public class TenaneaFeature extends DefaultFeature { private static final List SPLINE; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -66,8 +66,7 @@ public class TenaneaFeature extends DefaultFeature { return true; } - private void leavesBall(StructureWorldAccess world, BlockPos pos, float radius, Random random, - OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.TENANEA_LEAVES.defaultBlockState().with(LeavesBlock.DISTANCE, 6)); SDF sub = new SDFScale().setScale(5).setSource(sphere); @@ -75,7 +74,7 @@ public class TenaneaFeature extends DefaultFeature { sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(sub); sphere = new SDFScale3D().setScale(1, 0.75F, 1).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { - return (float) noise.eval(vec.getX() * 0.2, vec.getY() * 0.2, vec.getZ() * 0.2) * 2F; + return (float) noise.eval(vec.x() * 0.2, vec.y() * 0.2, vec.z() * 0.2) * 2F; }).setSource(sphere); sphere = new SDFDisplacement().setFunction((vec) -> { return MHelper.randRange(-1.5F, 1.5F, random); @@ -83,7 +82,7 @@ public class TenaneaFeature extends DefaultFeature { MutableBlockPos mut = new MutableBlockPos(); for (Direction d1 : BlocksHelper.HORIZONTAL) { - BlockPos p = mut.set(pos).move(Direction.UP).move(d1).toImmutable(); + BlockPos p = mut.set(pos).move(Direction.UP).move(d1).immutable(); BlocksHelper.setWithoutUpdate(world, p, EndBlocks.TENANEA.bark.defaultBlockState()); for (Direction d2 : BlocksHelper.HORIZONTAL) { mut.set(p).move(Direction.UP).move(d2); diff --git a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java index fe0351db..dc7ba0e8 100644 --- a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java @@ -8,14 +8,14 @@ import com.google.common.collect.Lists; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import ru.betterend.blocks.UmbrellaTreeClusterBlock; import ru.betterend.blocks.UmbrellaTreeMembraneBlock; import ru.betterend.registry.EndBlocks; @@ -40,8 +40,8 @@ public class UmbrellaTreeFeature extends DefaultFeature { private static final List ROOT; @Override - public boolean generate(StructureWorldAccess world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, - DefaultFeatureConfig config) { + public boolean place(WorldGenLevel world, ChunkGenerator chunkGenerator, Random random, BlockPos pos, + NoneFeatureConfiguration config) { if (!world.getBlockState(pos.below()).getBlock().isIn(EndTags.END_GROUND)) return false; @@ -86,9 +86,9 @@ public class UmbrellaTreeFeature extends DefaultFeature { sdf = (sdf == null) ? branch : new SDFUnion().setSourceA(sdf).setSourceB(branch); SDF mem = makeMembrane(world, radius, random, membrane, center); - float px = MHelper.floor(vec.getX()) + 0.5F; - float py = MHelper.floor(vec.getY()) + 0.5F; - float pz = MHelper.floor(vec.getZ()) + 0.5F; + float px = MHelper.floor(vec.x()) + 0.5F; + float py = MHelper.floor(vec.y()) + 0.5F; + float pz = MHelper.floor(vec.z()) + 0.5F; mem = new SDFTranslate().setTranslate(px, py, pz).setSource(mem); sdf = new SDFSmoothUnion().setRadius(2).setSourceA(sdf).setSourceB(mem); centers.add(new Center(pos.getX() + (double) (px * scale), pos.getY() + (double) (py * scale), @@ -146,7 +146,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { return true; } - private void makeRoots(StructureWorldAccess world, BlockPos pos, float radius, Random random, BlockState wood) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; @@ -162,8 +162,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { } } - private SDF makeMembrane(StructureWorldAccess world, float radius, Random random, BlockState membrane, - BlockState center) { + private SDF makeMembrane(WorldGenLevel world, float radius, Random random, BlockState membrane, BlockState center) { SDF sphere = new SDFSphere().setRadius(radius).setBlock(membrane); SDF sub = new SDFTranslate().setTranslate(0, -4, 0).setSource(sphere); sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(sub); @@ -183,8 +182,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { return sphere; } - private void makeFruits(StructureWorldAccess world, double px, double py, double pz, BlockState fruit, - float scale) { + private void makeFruits(WorldGenLevel world, double px, double py, double pz, BlockState fruit, float scale) { MutableBlockPos mut = new MutableBlockPos().set(px, py, pz); for (int i = 0; i < 8; i++) { mut.move(Direction.DOWN); diff --git a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java index b8ef0b75..ef6ce5a8 100644 --- a/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java +++ b/src/main/java/ru/betterend/world/generator/BetterEndBiomeSource.java @@ -9,8 +9,8 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.util.math.noise.SimplexNoiseSampler; import net.minecraft.core.Registry; import net.minecraft.util.registry.RegistryLookupCodec; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeKeys; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.biome.source.TheEndBiomeSource; import net.minecraft.world.gen.ChunkRandom; @@ -43,8 +43,8 @@ public class BetterEndBiomeSource extends BiomeSource { this.mapLand = new BiomeMap(seed, GeneratorOptions.getBiomeSizeLand(), EndBiomes.LAND_BIOMES); this.mapVoid = new BiomeMap(seed, GeneratorOptions.getBiomeSizeVoid(), EndBiomes.VOID_BIOMES); - this.centerBiome = biomeRegistry.getOrThrow(BiomeKeys.THE_END); - this.barrens = biomeRegistry.getOrThrow(BiomeKeys.END_BARRENS); + this.centerBiome = biomeRegistry.getOrThrow(Biomes.THE_END); + this.barrens = biomeRegistry.getOrThrow(Biomes.END_BARRENS); this.biomeRegistry = biomeRegistry; this.seed = seed; diff --git a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java index 00d518c7..151a6a58 100644 --- a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java +++ b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java @@ -8,7 +8,7 @@ import java.util.concurrent.locks.ReentrantLock; import com.google.common.collect.Lists; import net.minecraft.util.Mth; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.util.MHelper; diff --git a/src/main/java/ru/betterend/world/processors/TerrainStructureProcessor.java b/src/main/java/ru/betterend/world/processors/TerrainStructureProcessor.java index ca87776f..be56fcf7 100644 --- a/src/main/java/ru/betterend/world/processors/TerrainStructureProcessor.java +++ b/src/main/java/ru/betterend/world/processors/TerrainStructureProcessor.java @@ -16,8 +16,8 @@ public class TerrainStructureProcessor extends StructureProcessor { StructurePlacementData structurePlacementData) { BlockPos bpos = structureBlockInfo2.pos; if (structureBlockInfo2.state.is(Blocks.END_STONE) && worldView.isAir(bpos.up())) { - BlockState top = worldView.getBiome(structureBlockInfo2.pos).getGenerationSettings().getSurfaceConfig() - .getTopMaterial(); + BlockState top = worldView.getBiome(structureBlockInfo2.pos).getGenerationSettings() + .getSurfaceBuilderConfig().getTopMaterial(); return new StructureBlockInfo(bpos, top, structureBlockInfo2.tag); } return structureBlockInfo2; diff --git a/src/main/java/ru/betterend/world/structures/EndStructureFeature.java b/src/main/java/ru/betterend/world/structures/EndStructureFeature.java index bf545278..05377e2c 100644 --- a/src/main/java/ru/betterend/world/structures/EndStructureFeature.java +++ b/src/main/java/ru/betterend/world/structures/EndStructureFeature.java @@ -4,20 +4,20 @@ import java.util.Random; import net.fabricmc.fabric.api.structure.v1.FabricStructureBuilder; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.data.BuiltinRegistries; import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.ConfiguredStructureFeature; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.BetterEnd; public class EndStructureFeature { private static final Random RANDOM = new Random(354); - private final StructureFeature structure; + private final StructureFeature structure; private final ConfiguredStructureFeature featureConfigured; private final GenerationStep.Feature featureStep; - public EndStructureFeature(String name, StructureFeature structure, + public EndStructureFeature(String name, StructureFeature structure, GenerationStep.Feature step, int spacing, int separation) { ResourceLocation id = BetterEnd.makeID(name); @@ -25,12 +25,12 @@ public class EndStructureFeature { this.structure = FabricStructureBuilder.create(id, structure).step(step) .defaultConfig(spacing, separation, RANDOM.nextInt(8192)).register(); - this.featureConfigured = this.structure.configure(DefaultFeatureConfig.DEFAULT); + this.featureConfigured = this.structure.configure(NoneFeatureConfiguration.DEFAULT); BuiltinRegistries.add(BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE, id, this.featureConfigured); } - public StructureFeature getStructure() { + public StructureFeature getStructure() { return structure; } diff --git a/src/main/java/ru/betterend/world/structures/StructureWorld.java b/src/main/java/ru/betterend/world/structures/StructureWorld.java index 6c42d831..b6cf310c 100644 --- a/src/main/java/ru/betterend/world/structures/StructureWorld.java +++ b/src/main/java/ru/betterend/world/structures/StructureWorld.java @@ -12,7 +12,7 @@ import net.minecraft.nbt.NbtHelper; import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.chunk.Chunk; public class StructureWorld { @@ -79,7 +79,7 @@ public class StructureWorld { lastPart = part; } - public boolean placeChunk(StructureWorldAccess world, ChunkPos chunkPos) { + public boolean placeChunk(WorldGenLevel world, ChunkPos chunkPos) { Part part = parts.get(chunkPos); if (part != null) { Chunk chunk = world.getChunk(chunkPos.x, chunkPos.z); diff --git a/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java b/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java index 1ce2a06e..a40bd45c 100644 --- a/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java @@ -10,12 +10,12 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.gen.ChunkRandom; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.BetterEnd; import ru.betterend.util.MHelper; import ru.betterend.util.StructureHelper; @@ -28,7 +28,7 @@ public class EternalPortalStructure extends FeatureBaseStructure { @Override protected boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkRandom chunkRandom, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos, - DefaultFeatureConfig featureConfig) { + NoneFeatureConfiguration featureConfig) { long x = chunkPos.x; long z = chunkPos.z; if (x * x + z * z < 10000) { @@ -42,19 +42,19 @@ public class EternalPortalStructure extends FeatureBaseStructure { } @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java b/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java index 83fbb458..a670c02e 100644 --- a/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java @@ -7,23 +7,23 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Rotation; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.Heightmap; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.gen.ChunkRandom; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; -public abstract class FeatureBaseStructure extends StructureFeature { +public abstract class FeatureBaseStructure extends StructureFeature { protected static final BlockState AIR = Blocks.AIR.defaultBlockState(); public FeatureBaseStructure() { - super(DefaultFeatureConfig.CODEC); + super(NoneFeatureConfiguration.CODEC); } protected boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkRandom chunkRandom, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos, - DefaultFeatureConfig featureConfig) { + NoneFeatureConfiguration featureConfig) { return getGenerationHeight(chunkX, chunkZ, chunkGenerator) >= 20; } diff --git a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java index 2abb0015..eb530a69 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantIceStarStructure.java @@ -5,16 +5,16 @@ import java.util.List; import java.util.Random; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.structure.StructureManager; import net.minecraft.structure.StructureStart; import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; @@ -96,19 +96,19 @@ public class GiantIceStarStructure extends SDFStructureFeature { } @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return StarStructureStart::new; } - public static class StarStructureStart extends StructureStart { - public StarStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class StarStructureStart extends StructureStart { + public StarStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); BlockPos start = new BlockPos(x, MHelper.randRange(32, 128, random), z); diff --git a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java index 36148bea..c1082948 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java @@ -3,7 +3,7 @@ package ru.betterend.world.structures.features; import java.util.List; import java.util.Random; -import net.minecraft.client.util.math.Vector3f; +import com.mojang.math.Vector3f; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import ru.betterend.blocks.MossyGlowshroomCapBlock; diff --git a/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java b/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java index 21bf867a..5ec17e48 100644 --- a/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java @@ -6,28 +6,28 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.util.MHelper; import ru.betterend.world.structures.piece.LakePiece; public class MegaLakeSmallStructure extends FeatureBaseStructure { @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java b/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java index 1ff03a96..c5ff0335 100644 --- a/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java @@ -6,28 +6,28 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.util.MHelper; import ru.betterend.world.structures.piece.LakePiece; public class MegaLakeStructure extends FeatureBaseStructure { @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/features/MountainStructure.java b/src/main/java/ru/betterend/world/structures/features/MountainStructure.java index 136e647e..686d64b6 100644 --- a/src/main/java/ru/betterend/world/structures/features/MountainStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MountainStructure.java @@ -6,28 +6,28 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.util.MHelper; import ru.betterend.world.structures.piece.CrystalMountainPiece; public class MountainStructure extends FeatureBaseStructure { @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java b/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java index ac2e1ac4..4bb136ba 100644 --- a/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java @@ -8,10 +8,10 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.registry.EndBlocks; import ru.betterend.util.MHelper; import ru.betterend.world.structures.piece.PaintedMountainPiece; @@ -20,19 +20,19 @@ public class PaintedMountainStructure extends FeatureBaseStructure { private static final BlockState[] VARIANTS; @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java index 8baee4bc..bfbb613b 100644 --- a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java +++ b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java @@ -8,10 +8,10 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.StructureFeature; import ru.betterend.util.MHelper; import ru.betterend.util.sdf.SDF; import ru.betterend.world.structures.piece.VoxelPiece; @@ -21,19 +21,19 @@ public abstract class SDFStructureFeature extends FeatureBaseStructure { protected abstract SDF getSDF(BlockPos pos, Random random); @Override - public StructureFeature.StructureStartFactory getStructureStartFactory() { + public StructureFeature.StructureStartFactory getStructureStartFactory() { return SDFStructureStart::new; } - public static class SDFStructureStart extends StructureStart { - public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, - int references, long seed) { + public static class SDFStructureStart extends StructureStart { + public SDFStructureStart(StructureFeature feature, int chunkX, int chunkZ, + BlockBox box, int references, long seed) { super(feature, chunkX, chunkZ, box, references, seed); } @Override public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, - StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config) { + StructureManager manager, int chunkX, int chunkZ, Biome biome, NoneFeatureConfiguration config) { int x = (chunkX << 4) | MHelper.randRange(4, 12, random); int z = (chunkZ << 4) | MHelper.randRange(4, 12, random); int y = chunkGenerator.getHeight(x, z, Type.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java index 37e893fc..a8042879 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java @@ -10,9 +10,9 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndStructures; import ru.betterend.registry.EndTags; @@ -38,8 +38,8 @@ public class CavePiece extends BasePiece { } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int x1 = MHelper.max(this.boundingBox.minX, blockBox.minX); int z1 = MHelper.max(this.boundingBox.minZ, blockBox.minZ); int x2 = MHelper.min(this.boundingBox.maxX, blockBox.maxX); diff --git a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java index 7b56ad66..82d08f40 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java @@ -13,11 +13,11 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.util.Mth; import net.minecraft.world.Heightmap; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndStructures; @@ -29,7 +29,7 @@ public class CrystalMountainPiece extends MountainPiece { public CrystalMountainPiece(BlockPos center, float radius, float height, Random random, Biome biome) { super(EndStructures.MOUNTAIN_PIECE, center, radius, height, random, biome); - top = biome.getGenerationSettings().getSurfaceConfig().getTopMaterial(); + top = biome.getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); } public CrystalMountainPiece(StructureManager manager, CompoundTag tag) { @@ -39,12 +39,12 @@ public class CrystalMountainPiece extends MountainPiece { @Override protected void fromNbt(CompoundTag tag) { super.fromNbt(tag); - top = EndBiomes.getBiome(biomeID).getBiome().getGenerationSettings().getSurfaceConfig().getTopMaterial(); + top = EndBiomes.getBiome(biomeID).getBiome().getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getStartX(); int sz = chunkPos.getStartZ(); MutableBlockPos pos = new MutableBlockPos(); diff --git a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java index 386794ac..12939c6f 100644 --- a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java @@ -19,11 +19,11 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.registry.EndBlocks; @@ -83,8 +83,8 @@ public class LakePiece extends BasePiece { } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int minY = this.boundingBox.minY; int maxY = this.boundingBox.maxY; int sx = chunkPos.x << 4; @@ -130,7 +130,7 @@ public class LakePiece extends BasePiece { state = chunk.getBlockState(mut.up()); if (state.isAir()) { state = random.nextBoolean() ? ENDSTONE - : world.getBiome(worldPos).getGenerationSettings().getSurfaceConfig() + : world.getBiome(worldPos).getGenerationSettings().getSurfaceBuilderConfig() .getTopMaterial(); } else { state = state.getFluidState().isEmpty() ? ENDSTONE @@ -146,7 +146,7 @@ public class LakePiece extends BasePiece { return true; } - private void fixWater(StructureWorldAccess world, Chunk chunk, MutableBlockPos mut, Random random, int sx, int sz) { + private void fixWater(WorldGenLevel world, Chunk chunk, MutableBlockPos mut, Random random, int sx, int sz) { int minY = this.boundingBox.minY; int maxY = this.boundingBox.maxY; for (int x = 0; x < 16; x++) { @@ -164,8 +164,8 @@ public class LakePiece extends BasePiece { BlockState bState = chunk.getBlockState(mut); if (bState.isAir()) { bState = random.nextBoolean() ? ENDSTONE - : world.getBiome(mut.add(sx, 0, sz)).getGenerationSettings().getSurfaceConfig() - .getTopMaterial(); + : world.getBiome(mut.add(sx, 0, sz)).getGenerationSettings() + .getSurfaceBuilderConfig().getTopMaterial(); } else { bState = bState.getFluidState().isEmpty() ? ENDSTONE : EndBlocks.ENDSTONE_DUST.defaultBlockState(); @@ -184,7 +184,7 @@ public class LakePiece extends BasePiece { if (bState.isAir()) { bState = random.nextBoolean() ? ENDSTONE : world.getBiome(mut.add(sx, 0, sz)).getGenerationSettings() - .getSurfaceConfig().getTopMaterial(); + .getSurfaceBuilderConfig().getTopMaterial(); } else { bState = bState.getFluidState().isEmpty() ? ENDSTONE : EndBlocks.ENDSTONE_DUST.defaultBlockState(); @@ -212,7 +212,7 @@ public class LakePiece extends BasePiece { } } - private int getHeight(StructureWorldAccess world, BlockPos pos) { + private int getHeight(WorldGenLevel world, BlockPos pos) { int p = ((pos.getX() & 2047) << 11) | (pos.getZ() & 2047); int h = heightmap.getOrDefault(p, Byte.MIN_VALUE); if (h > Byte.MIN_VALUE) { @@ -224,7 +224,7 @@ public class LakePiece extends BasePiece { return 0; } - h = world.getTopY(Type.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); + h = world.getHeight(Types.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); h = Mth.abs(h - center.getY()); h = h < 8 ? 1 : 0; @@ -232,7 +232,7 @@ public class LakePiece extends BasePiece { return h; } - private float getHeightClamp(StructureWorldAccess world, int radius, int posX, int posZ) { + private float getHeightClamp(WorldGenLevel world, int radius, int posX, int posZ) { MutableBlockPos mut = new MutableBlockPos(); int r2 = radius * radius; float height = 0; diff --git a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java index fa4cf082..a066e38b 100644 --- a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java @@ -15,8 +15,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.Mth; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBiomes; import ru.betterend.util.MHelper; @@ -76,7 +76,7 @@ public abstract class MountainPiece extends BasePiece { noise2 = new OpenSimplexNoise(seed2); } - private int getHeight(StructureWorldAccess world, BlockPos pos) { + private int getHeight(WorldGenLevel world, BlockPos pos) { int p = ((pos.getX() & 2047) << 11) | (pos.getZ() & 2047); int h = heightmap.getOrDefault(p, Integer.MIN_VALUE); if (h > Integer.MIN_VALUE) { @@ -87,7 +87,7 @@ public abstract class MountainPiece extends BasePiece { heightmap.put(p, -10); return -10; } - h = world.getTopY(Type.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); + h = world.getHeight(Types.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); h = Mth.abs(h - center.getY()); if (h > 4) { h = 4 - h; @@ -108,7 +108,7 @@ public abstract class MountainPiece extends BasePiece { return h; } - protected float getHeightClamp(StructureWorldAccess world, int radius, int posX, int posZ) { + protected float getHeightClamp(WorldGenLevel world, int radius, int posX, int posZ) { MutableBlockPos mut = new MutableBlockPos(); float height = 0; float max = 0; diff --git a/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java b/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java index 4ba6ab13..29e87287 100644 --- a/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java @@ -13,9 +13,9 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.registry.EndStructures; import ru.betterend.util.MHelper; import ru.betterend.util.StructureHelper; @@ -69,8 +69,8 @@ public class NBTPiece extends BasePiece { } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { BlockBox bounds = new BlockBox(blockBox); bounds.maxY = this.boundingBox.maxY; bounds.minY = this.boundingBox.minY; diff --git a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java index ce0a802b..b6c3c9c8 100644 --- a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java @@ -13,11 +13,11 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.Heightmap; import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.registry.EndStructures; import ru.betterend.util.MHelper; @@ -55,8 +55,8 @@ public class PaintedMountainPiece extends MountainPiece { } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getStartX(); int sz = chunkPos.getStartZ(); MutableBlockPos pos = new MutableBlockPos(); diff --git a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java index fa3451ea..a2be51f9 100644 --- a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java @@ -8,9 +8,9 @@ import net.minecraft.structure.StructureManager; import net.minecraft.util.math.BlockBox; import net.minecraft.core.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.gen.StructureAccessor; -import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.level.chunk.ChunkGenerator; import ru.betterend.registry.EndStructures; import ru.betterend.world.structures.StructureWorld; @@ -40,8 +40,8 @@ public class VoxelPiece extends BasePiece { } @Override - public boolean generate(StructureWorldAccess world, StructureAccessor arg, ChunkGenerator chunkGenerator, - Random random, BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public boolean place(WorldGenLevel world, StructureAccessor arg, ChunkGenerator chunkGenerator, Random random, + BlockBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { this.world.placeChunk(world, chunkPos); return true; } diff --git a/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java b/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java index 94d25ebe..053d7798 100644 --- a/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java +++ b/src/main/java/ru/betterend/world/surface/DoubleBlockSurfaceBuilder.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.Blocks; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java index 746a4b38..bbe78a14 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceBuilder.java @@ -4,7 +4,7 @@ import java.util.Random; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.core.Registry; -import net.minecraft.world.biome.Biome; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;