diff --git a/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java index 836970d3..a7d209e8 100644 --- a/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/AncientEmeraldIceBlock.java @@ -4,6 +4,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.server.level.ServerLevel; + import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -22,6 +23,9 @@ import ru.betterend.registry.EndParticles; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; +import java.util.Random; +import net.minecraft.util.RandomSource; public class AncientEmeraldIceBlock extends BaseBlock { public AncientEmeraldIceBlock() { @@ -30,7 +34,7 @@ public class AncientEmeraldIceBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { Direction dir = BlocksHelper.randomDirection(random); if (random.nextBoolean()) { @@ -56,7 +60,7 @@ public class AncientEmeraldIceBlock extends BaseBlock { } } - private void makeParticles(ServerLevel world, BlockPos pos, Random random) { + private void makeParticles(ServerLevel world, BlockPos pos, RandomSource random) { world.sendParticles( EndParticles.SNOWFLAKE, pos.getX() + 0.5, diff --git a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java index 6ab2fca3..5e30a6c7 100644 --- a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java @@ -109,10 +109,10 @@ public class AuroraCrystalBlock extends AbstractGlassBlock implements RenderLaye if (min == max) { return Lists.newArrayList(new ItemStack(EndItems.CRYSTAL_SHARDS, max)); } - count = MHelper.randRange(min, max, MHelper.RANDOM); + count = MHelper.randRange(min, max, MHelper.RANDOM_SOURCE); } else { - count = MHelper.randRange(MIN_DROP, MAX_DROP, MHelper.RANDOM); + count = MHelper.randRange(MIN_DROP, MAX_DROP, MHelper.RANDOM_SOURCE); } return Lists.newArrayList(new ItemStack(EndItems.CRYSTAL_SHARDS, count)); } diff --git a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java index 19185aaa..8daec7ea 100644 --- a/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BlueVineSeedBlock.java @@ -13,10 +13,14 @@ import ru.betterend.blocks.basis.FurBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class BlueVineSeedBlock extends EndPlantWithAgeBlock { + public BlueVineSeedBlock(){ + super(p -> p.offsetType(BlockBehaviour.OffsetType.NONE)); + } @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { int height = MHelper.randRange(2, 5, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height + 1) { @@ -74,9 +78,4 @@ public class BlueVineSeedBlock extends EndPlantWithAgeBlock { protected boolean isTerrain(BlockState state) { return state.is(EndBlocks.END_MOSS) || state.is(EndBlocks.END_MYCELIUM); } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } } diff --git a/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java b/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java index 682e10de..2df20c99 100644 --- a/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java +++ b/src/main/java/ru/betterend/blocks/BoluxMushroomBlock.java @@ -16,12 +16,13 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class BoluxMushroomBlock extends EndPlantBlock { private static final VoxelShape SHAPE = Block.box(1, 0, 1, 15, 9, 15); public BoluxMushroomBlock() { - super(10); + super(10, p->p.offsetType(BlockBehaviour.OffsetType.NONE)); } @Override @@ -33,11 +34,7 @@ public class BoluxMushroomBlock extends EndPlantBlock { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE; } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } + @Override public boolean isValidBonemealTarget(BlockGetter world, BlockPos pos, BlockState state, boolean isClient) { @@ -45,7 +42,7 @@ public class BoluxMushroomBlock extends EndPlantBlock { } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } diff --git a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java index c1f0ae83..5ab2a588 100644 --- a/src/main/java/ru/betterend/blocks/BrimstoneBlock.java +++ b/src/main/java/ru/betterend/blocks/BrimstoneBlock.java @@ -23,6 +23,7 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class BrimstoneBlock extends BaseBlock { public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE; @@ -65,7 +66,7 @@ public class BrimstoneBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { boolean deactivate = true; for (Direction dir : BlocksHelper.DIRECTIONS) { if (world.getFluidState(pos.relative(dir)).getType().equals(Fluids.WATER)) { diff --git a/src/main/java/ru/betterend/blocks/BubbleCoralBlock.java b/src/main/java/ru/betterend/blocks/BubbleCoralBlock.java index 0e2c34d2..56d62d40 100644 --- a/src/main/java/ru/betterend/blocks/BubbleCoralBlock.java +++ b/src/main/java/ru/betterend/blocks/BubbleCoralBlock.java @@ -18,6 +18,7 @@ import ru.bclib.interfaces.tools.AddMineableShears; import ru.betterend.blocks.basis.EndUnderwaterPlantBlock; import java.util.Random; +import net.minecraft.util.RandomSource; public class BubbleCoralBlock extends EndUnderwaterPlantBlock implements AddMineableShears { @@ -26,16 +27,12 @@ public class BubbleCoralBlock extends EndUnderwaterPlantBlock implements AddMine public BubbleCoralBlock() { super(FabricBlockSettings.of(Material.WATER_PLANT) .sound(SoundType.CORAL_BLOCK) - .noCollission()); - } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; + .noCollission() + .offsetType(BlockBehaviour.OffsetType.NONE)); } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { double x = pos.getX() + random.nextDouble(); double y = pos.getY() + random.nextDouble() * 0.5F + 0.5F; double z = pos.getZ() + random.nextDouble(); @@ -53,7 +50,7 @@ public class BubbleCoralBlock extends EndUnderwaterPlantBlock implements AddMine } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } } diff --git a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java index 7ef8f7eb..d0e3d996 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java @@ -13,6 +13,7 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class BulbVineSeedBlock extends EndPlantWithAgeBlock { @@ -23,7 +24,7 @@ public class BulbVineSeedBlock extends EndPlantWithAgeBlock { } @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { int h = BlocksHelper.downRay(world, pos, random.nextInt(24)) - 1; if (h > 2) { BlocksHelper.setWithoutUpdate( diff --git a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java index 07fbdddd..4ac027b8 100644 --- a/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java +++ b/src/main/java/ru/betterend/blocks/CavePumpkinVineBlock.java @@ -17,8 +17,12 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class CavePumpkinVineBlock extends EndPlantWithAgeBlock { + public CavePumpkinVineBlock(){ + super(p->p.offsetType(BlockBehaviour.OffsetType.NONE)); + } private static final VoxelShape SHAPE = Block.box(4, 0, 4, 12, 16, 12); @Override @@ -28,7 +32,7 @@ public class CavePumpkinVineBlock extends EndPlantWithAgeBlock { } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { int age = state.getValue(AGE); BlockState down = world.getBlockState(pos.below()); if (down.getMaterial() @@ -49,7 +53,7 @@ public class CavePumpkinVineBlock extends EndPlantWithAgeBlock { } @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { } @Override @@ -68,9 +72,4 @@ public class CavePumpkinVineBlock extends EndPlantWithAgeBlock { public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE; } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } } diff --git a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java index fadbd4bc..4975af91 100644 --- a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java @@ -28,6 +28,7 @@ import ru.bclib.interfaces.RenderLayerProvider; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class EmeraldIceBlock extends HalfTransparentBlock implements RenderLayerProvider, BlockModelProvider { public EmeraldIceBlock() { @@ -58,7 +59,7 @@ public class EmeraldIceBlock extends HalfTransparentBlock implements RenderLayer @Override @SuppressWarnings("deprecation") - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (world.getBrightness(LightLayer.BLOCK, pos) > 11 - state.getLightBlock(world, pos)) { this.melt(state, world, pos); } diff --git a/src/main/java/ru/betterend/blocks/EndLilyBlock.java b/src/main/java/ru/betterend/blocks/EndLilyBlock.java index 60f838e4..6b4579d1 100644 --- a/src/main/java/ru/betterend/blocks/EndLilyBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilyBlock.java @@ -35,6 +35,7 @@ import ru.betterend.registry.EndItems; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLilyBlock extends EndUnderwaterPlantBlock implements AddMineableShears { public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; @@ -95,8 +96,8 @@ public class EndLilyBlock extends EndUnderwaterPlantBlock implements AddMineable public List getDrops(BlockState state, LootContext.Builder builder) { if (state.getValue(SHAPE) == TripleShape.TOP) { return Lists.newArrayList( - new ItemStack(EndItems.END_LILY_LEAF, MHelper.randRange(1, 2, MHelper.RANDOM)), - new ItemStack(EndBlocks.END_LILY_SEED, MHelper.randRange(1, 2, MHelper.RANDOM)) + new ItemStack(EndItems.END_LILY_LEAF, MHelper.randRange(1, 2, MHelper.RANDOM_SOURCE)), + new ItemStack(EndBlocks.END_LILY_SEED, MHelper.randRange(1, 2, MHelper.RANDOM_SOURCE)) ); } return Collections.emptyList(); @@ -114,7 +115,7 @@ public class EndLilyBlock extends EndUnderwaterPlantBlock implements AddMineable } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } } diff --git a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java index e3ba67a5..5e133022 100644 --- a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java @@ -11,10 +11,11 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLilySeedBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(WorldGenLevel world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, RandomSource random, BlockPos pos) { if (canGrow(world, pos)) { BlocksHelper.setWithoutUpdate( world, diff --git a/src/main/java/ru/betterend/blocks/EndLotusFlowerBlock.java b/src/main/java/ru/betterend/blocks/EndLotusFlowerBlock.java index d9c9d828..b881186c 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusFlowerBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusFlowerBlock.java @@ -25,7 +25,7 @@ public class EndLotusFlowerBlock extends EndPlantBlock { private static final VoxelShape SHAPE_COLLISION = Block.box(0, 0, 0, 16, 2, 16); public EndLotusFlowerBlock() { - super(FabricBlockSettings.of(Material.PLANT).luminance(15).noOcclusion()); + super(FabricBlockSettings.of(Material.PLANT).luminance(15).noOcclusion().offsetType(BlockBehaviour.OffsetType.NONE)); } @Override @@ -33,11 +33,6 @@ public class EndLotusFlowerBlock extends EndPlantBlock { return state.is(EndBlocks.END_LOTUS_STEM); } - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } - @Override public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE_OUTLINE; @@ -51,7 +46,7 @@ public class EndLotusFlowerBlock extends EndPlantBlock { @Override public List getDrops(BlockState state, LootContext.Builder builder) { - int count = MHelper.randRange(1, 2, MHelper.RANDOM); + int count = MHelper.randRange(1, 2, MHelper.RANDOM_SOURCE); return Lists.newArrayList(new ItemStack(EndBlocks.END_LOTUS_SEED, count)); } diff --git a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java index e385e34d..558dc676 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java @@ -13,10 +13,11 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(WorldGenLevel world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, RandomSource random, BlockPos pos) { if (canGrow(world, pos)) { BlockState startLeaf = EndBlocks.END_LOTUS_STEM.defaultBlockState().setValue(EndLotusStemBlock.LEAF, true); BlockState roots = EndBlocks.END_LOTUS_STEM.defaultBlockState() diff --git a/src/main/java/ru/betterend/blocks/EndPortalBlock.java b/src/main/java/ru/betterend/blocks/EndPortalBlock.java index 5a4806c8..62240a44 100644 --- a/src/main/java/ru/betterend/blocks/EndPortalBlock.java +++ b/src/main/java/ru/betterend/blocks/EndPortalBlock.java @@ -39,6 +39,7 @@ import ru.betterend.rituals.EternalRitual; import java.util.Objects; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndPortalBlock extends NetherPortalBlock implements RenderLayerProvider, CustomColorProvider { public static final IntegerProperty PORTAL = EndBlockProperties.PORTAL; @@ -57,7 +58,7 @@ public class EndPortalBlock extends NetherPortalBlock implements RenderLayerProv @Override @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { if (random.nextInt(100) == 0) { world.playLocalSound( pos.getX() + 0.5D, @@ -86,7 +87,7 @@ public class EndPortalBlock extends NetherPortalBlock implements RenderLayerProv } @Override - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { } @Override diff --git a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java index 4cbc201a..cf8b5b48 100644 --- a/src/main/java/ru/betterend/blocks/EndStoneSmelter.java +++ b/src/main/java/ru/betterend/blocks/EndStoneSmelter.java @@ -42,6 +42,7 @@ import ru.betterend.registry.EndBlockEntities; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndStoneSmelter extends BaseBlockWithEntity { public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; @@ -138,7 +139,7 @@ public class EndStoneSmelter extends BaseBlockWithEntity { } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { if (state.getValue(LIT)) { double x = pos.getX() + 0.5D; double y = pos.getY(); diff --git a/src/main/java/ru/betterend/blocks/FilaluxBlock.java b/src/main/java/ru/betterend/blocks/FilaluxBlock.java index 55d35214..e977f40e 100644 --- a/src/main/java/ru/betterend/blocks/FilaluxBlock.java +++ b/src/main/java/ru/betterend/blocks/FilaluxBlock.java @@ -5,11 +5,6 @@ import ru.bclib.blocks.BaseVineBlock; public class FilaluxBlock extends BaseVineBlock { public FilaluxBlock() { - super(15, true); - } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; + super(15, true, p->p.offsetType(BlockBehaviour.OffsetType.NONE)); } } diff --git a/src/main/java/ru/betterend/blocks/FlamaeaBlock.java b/src/main/java/ru/betterend/blocks/FlamaeaBlock.java index 136e1e8d..b023bcb4 100644 --- a/src/main/java/ru/betterend/blocks/FlamaeaBlock.java +++ b/src/main/java/ru/betterend/blocks/FlamaeaBlock.java @@ -7,7 +7,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.WaterLilyBlockItem; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.PlaceOnWaterBlockItem; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -29,7 +30,8 @@ public class FlamaeaBlock extends EndPlantBlock implements CustomItemProvider, A public FlamaeaBlock() { super(FabricBlockSettings.of(Material.PLANT) - .sound(SoundType.WET_GRASS)); + .sound(SoundType.WET_GRASS) + .offsetType( BlockBehaviour.OffsetType.NONE)); } @Override @@ -41,12 +43,7 @@ public class FlamaeaBlock extends EndPlantBlock implements CustomItemProvider, A public VoxelShape getShape(BlockState state, BlockGetter view, BlockPos pos, CollisionContext ePos) { return SHAPE; } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } - + @Override public List getDrops(BlockState state, LootContext.Builder builder) { return Lists.newArrayList(new ItemStack(this)); @@ -59,6 +56,6 @@ public class FlamaeaBlock extends EndPlantBlock implements CustomItemProvider, A @Override public BlockItem getCustomItem(ResourceLocation resourceLocation, FabricItemSettings fabricItemSettings) { - return new WaterLilyBlockItem(this, fabricItemSettings); + return new PlaceOnWaterBlockItem(this, fabricItemSettings); } } diff --git a/src/main/java/ru/betterend/blocks/FlammalixBlock.java b/src/main/java/ru/betterend/blocks/FlammalixBlock.java index 92359bc7..400a3048 100644 --- a/src/main/java/ru/betterend/blocks/FlammalixBlock.java +++ b/src/main/java/ru/betterend/blocks/FlammalixBlock.java @@ -18,7 +18,7 @@ public class FlammalixBlock extends EndPlantBlock { private static final VoxelShape SHAPE = Block.box(2, 0, 2, 14, 14, 14); public FlammalixBlock() { - super(false, 12); + super(false, 12, p->p.offsetType(OffsetType.NONE)); } @Override @@ -34,11 +34,6 @@ public class FlammalixBlock extends EndPlantBlock { return SHAPE; } - @Override - public OffsetType getOffsetType() { - return OffsetType.NONE; - } - @Override @Environment(EnvType.CLIENT) public BlockModel getItemModel(ResourceLocation resourceLocation) { diff --git a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java index 12b0fd4a..56aa5e36 100644 --- a/src/main/java/ru/betterend/blocks/FlowerPotBlock.java +++ b/src/main/java/ru/betterend/blocks/FlowerPotBlock.java @@ -301,8 +301,8 @@ public class FlowerPotBlock extends BaseBlockNotFull implements RenderLayerProvi modelPath.getNamespace(), "models/block/" + modelPath.getPath() + "_potted.json" ); - - if (Minecraft.getInstance().getResourceManager().hasResource(objSource)) { + + if (Minecraft.getInstance().getResourceManager().getResource(objSource).isPresent()) { objSource = new ResourceLocation(modelPath.getNamespace(), "block/" + modelPath.getPath() + "_potted"); model.part(objSource) .setTransformation(offset) diff --git a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java index c8c27074..1eebf853 100644 --- a/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/GlowingPillarSeedBlock.java @@ -19,6 +19,7 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class GlowingPillarSeedBlock extends EndPlantWithAgeBlock implements AddMineableShears { @@ -27,11 +28,12 @@ public class GlowingPillarSeedBlock extends EndPlantWithAgeBlock implements AddM .sound(SoundType.GRASS) .lightLevel(state -> state.getValue(AGE) * 3 + 3) .randomTicks() - .noCollission()); + .noCollission() + .offsetType(OffsetType.NONE)); } @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { int height = MHelper.randRange(1, 2, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height) { @@ -78,9 +80,4 @@ public class GlowingPillarSeedBlock extends EndPlantWithAgeBlock implements AddM protected boolean isTerrain(BlockState state) { return state.is(EndBlocks.AMBER_MOSS); } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } } diff --git a/src/main/java/ru/betterend/blocks/HydraluxBlock.java b/src/main/java/ru/betterend/blocks/HydraluxBlock.java index 7d5d17b2..e8c14681 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxBlock.java @@ -27,6 +27,7 @@ import ru.betterend.registry.EndItems; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class HydraluxBlock extends UnderwaterPlantBlock implements AddMineableShears { @@ -70,7 +71,7 @@ public class HydraluxBlock extends UnderwaterPlantBlock implements AddMineableS } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } @@ -84,12 +85,12 @@ public class HydraluxBlock extends UnderwaterPlantBlock implements AddMineableS public List getDrops(BlockState state, LootContext.Builder builder) { HydraluxShape shape = state.getValue(SHAPE); if (shape == HydraluxShape.FLOWER_BIG_BOTTOM || shape == HydraluxShape.FLOWER_SMALL_BOTTOM) { - return Lists.newArrayList(new ItemStack(EndItems.HYDRALUX_PETAL, MHelper.randRange(1, 4, MHelper.RANDOM))); + return Lists.newArrayList(new ItemStack(EndItems.HYDRALUX_PETAL, MHelper.randRange(1, 4, MHelper.RANDOM_SOURCE))); } else if (shape == HydraluxShape.ROOTS) { return Lists.newArrayList(new ItemStack( EndBlocks.HYDRALUX_SAPLING, - MHelper.randRange(1, 2, MHelper.RANDOM) + MHelper.randRange(1, 2, MHelper.RANDOM_SOURCE) )); } return Collections.emptyList(); diff --git a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java index 6e51b979..ee32bd52 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxSaplingBlock.java @@ -12,11 +12,12 @@ import ru.betterend.blocks.EndBlockProperties.HydraluxShape; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class HydraluxSaplingBlock extends UnderwaterPlantWithAgeBlock { @Override - public void grow(WorldGenLevel world, Random random, BlockPos pos) { + public void grow(WorldGenLevel world, RandomSource 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 d0cc50df..762c23a4 100644 --- a/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java +++ b/src/main/java/ru/betterend/blocks/HydrothermalVentBlock.java @@ -42,6 +42,7 @@ import ru.betterend.blocks.entities.BlockEntityHydrothermalVent; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; @SuppressWarnings("deprecation") public class HydrothermalVentBlock extends BaseBlockNotFull implements EntityBlock, LiquidBlockContainer, SimpleWaterloggedBlock, AddMineablePickaxe { @@ -113,7 +114,7 @@ public class HydrothermalVentBlock extends BaseBlockNotFull implements EntityBlo } @Override - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { BlockPos up = pos.above(); if (world.getBlockState(up).is(Blocks.WATER)) { BlocksHelper.setWithoutUpdate(world, up, EndBlocks.VENT_BUBBLE_COLUMN); @@ -130,7 +131,7 @@ public class HydrothermalVentBlock extends BaseBlockNotFull implements EntityBlo } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { super.animateTick(state, world, pos, random); if (!state.getValue(ACTIVATED) && random.nextBoolean()) { double x = pos.getX() + random.nextDouble(); diff --git a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java index c75251ac..4714bff3 100644 --- a/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LanceleafSeedBlock.java @@ -14,10 +14,14 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class LanceleafSeedBlock extends EndPlantWithAgeBlock { + public LanceleafSeedBlock() { + super(p->p.offsetType(OffsetType.NONE)); + } @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { int height = MHelper.randRange(4, 6, random); int h = BlocksHelper.upRay(world, pos, height + 2); if (h < height + 1) { @@ -55,9 +59,4 @@ public class LanceleafSeedBlock extends EndPlantWithAgeBlock { protected boolean isTerrain(BlockState state) { return state.is(EndBlocks.AMBER_MOSS); } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } } diff --git a/src/main/java/ru/betterend/blocks/LargeAmaranitaBlock.java b/src/main/java/ru/betterend/blocks/LargeAmaranitaBlock.java index c77c3a74..49007cd4 100644 --- a/src/main/java/ru/betterend/blocks/LargeAmaranitaBlock.java +++ b/src/main/java/ru/betterend/blocks/LargeAmaranitaBlock.java @@ -21,6 +21,7 @@ import ru.betterend.blocks.basis.EndPlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class LargeAmaranitaBlock extends EndPlantBlock implements AddMineableShears { public static final EnumProperty SHAPE = BlockProperties.TRIPLE_SHAPE; @@ -31,7 +32,8 @@ public class LargeAmaranitaBlock extends EndPlantBlock implements AddMineableShe super(FabricBlockSettings.of(Material.PLANT) .sound(SoundType.GRASS) - .lightLevel((state) -> (state.getValue(SHAPE) == TripleShape.TOP) ? 15 : 0)); + .lightLevel((state) -> (state.getValue(SHAPE) == TripleShape.TOP) ? 15 : 0) + .offsetType(OffsetType.NONE)); } @Override @@ -63,18 +65,13 @@ public class LargeAmaranitaBlock extends EndPlantBlock implements AddMineableShe } } - @Override - public OffsetType getOffsetType() { - return OffsetType.NONE; - } - @Override public boolean isValidBonemealTarget(BlockGetter world, BlockPos pos, BlockState state, boolean isClient) { return false; } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } } diff --git a/src/main/java/ru/betterend/blocks/LumecornBlock.java b/src/main/java/ru/betterend/blocks/LumecornBlock.java index f6139ec4..7419c25e 100644 --- a/src/main/java/ru/betterend/blocks/LumecornBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornBlock.java @@ -88,7 +88,7 @@ public class LumecornBlock extends BaseBlockNotFull implements RenderLayerProvid if (shape == LumecornShape.BOTTOM_BIG || shape == LumecornShape.BOTTOM_SMALL || shape == LumecornShape.MIDDLE) { return Collections.singletonList(new ItemStack( EndBlocks.LUMECORN_SEED, - MHelper.randRange(1, 2, MHelper.RANDOM) + MHelper.randRange(1, 2, MHelper.RANDOM_SOURCE) )); } return MHelper.RANDOM.nextBoolean() ? Collections.singletonList(new ItemStack(EndItems.LUMECORN_ROD)) : Collections diff --git a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java index 31363dee..6c9440b8 100644 --- a/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornSeedBlock.java @@ -13,11 +13,16 @@ import ru.betterend.registry.EndFeatures; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class LumecornSeedBlock extends EndPlantWithAgeBlock { + public LumecornSeedBlock(){ + super(p->p.offsetType(OffsetType.NONE)); + } + @Override - public void growAdult(WorldGenLevel world, Random random, BlockPos pos) { + public void growAdult(WorldGenLevel world, RandomSource random, BlockPos pos) { ((Feature) (EndFeatures.LUMECORN.getFeature())).place(new FeaturePlaceContext<>( Optional.empty(), world, @@ -31,9 +36,4 @@ public class LumecornSeedBlock extends EndPlantWithAgeBlock { protected boolean isTerrain(BlockState state) { return state.is(EndBlocks.END_MOSS); } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; - } } diff --git a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java index e2c12f45..464d8797 100644 --- a/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java +++ b/src/main/java/ru/betterend/blocks/MengerSpongeWetBlock.java @@ -27,6 +27,7 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; @SuppressWarnings("deprecation") public class MengerSpongeWetBlock extends BaseBlockNotFull implements RenderLayerProvider { @@ -52,7 +53,7 @@ public class MengerSpongeWetBlock extends BaseBlockNotFull implements RenderLaye @Override @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { Direction direction = Direction.getRandom(random); if (direction != Direction.UP) { BlockPos blockPos = pos.relative(direction); diff --git a/src/main/java/ru/betterend/blocks/MossyDragonBoneBlock.java b/src/main/java/ru/betterend/blocks/MossyDragonBoneBlock.java index 81877dc7..c3863cda 100644 --- a/src/main/java/ru/betterend/blocks/MossyDragonBoneBlock.java +++ b/src/main/java/ru/betterend/blocks/MossyDragonBoneBlock.java @@ -20,6 +20,7 @@ import ru.betterend.registry.EndBlocks; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; @SuppressWarnings("deprecation") public class MossyDragonBoneBlock extends BaseRotatedPillarBlock { @@ -37,7 +38,7 @@ public class MossyDragonBoneBlock extends BaseRotatedPillarBlock { } @Override - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (random.nextInt(16) == 0 && !canSurvive(state, world, pos)) { world.setBlockAndUpdate(pos, Blocks.BONE_BLOCK.defaultBlockState().setValue(AXIS, state.getValue(AXIS))); } diff --git a/src/main/java/ru/betterend/blocks/MossyObsidian.java b/src/main/java/ru/betterend/blocks/MossyObsidian.java index ce33774e..8e4f3092 100644 --- a/src/main/java/ru/betterend/blocks/MossyObsidian.java +++ b/src/main/java/ru/betterend/blocks/MossyObsidian.java @@ -19,6 +19,7 @@ import ru.bclib.blocks.BaseBlock; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class MossyObsidian extends BaseBlock { public MossyObsidian() { @@ -36,7 +37,7 @@ public class MossyObsidian extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (random.nextInt(16) == 0 && !canSurvive(state, world, pos)) { world.setBlockAndUpdate(pos, Blocks.OBSIDIAN.defaultBlockState()); } diff --git a/src/main/java/ru/betterend/blocks/MurkweedBlock.java b/src/main/java/ru/betterend/blocks/MurkweedBlock.java index a2789094..15f663c8 100644 --- a/src/main/java/ru/betterend/blocks/MurkweedBlock.java +++ b/src/main/java/ru/betterend/blocks/MurkweedBlock.java @@ -16,11 +16,12 @@ import ru.betterend.blocks.basis.EndPlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class MurkweedBlock extends EndPlantBlock { @Override @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { double x = pos.getX() + random.nextDouble(); double y = pos.getY() + random.nextDouble() * 0.5 + 0.5; double z = pos.getZ() + random.nextDouble(); diff --git a/src/main/java/ru/betterend/blocks/NeedlegrassBlock.java b/src/main/java/ru/betterend/blocks/NeedlegrassBlock.java index dfb1135d..7cc40161 100644 --- a/src/main/java/ru/betterend/blocks/NeedlegrassBlock.java +++ b/src/main/java/ru/betterend/blocks/NeedlegrassBlock.java @@ -41,7 +41,7 @@ public class NeedlegrassBlock extends EndPlantBlock { return Lists.newArrayList(new ItemStack(this)); } else { - return Lists.newArrayList(new ItemStack(Items.STICK, MHelper.randRange(0, 2, MHelper.RANDOM))); + return Lists.newArrayList(new ItemStack(Items.STICK, MHelper.randRange(0, 2, MHelper.RANDOM_SOURCE))); } } diff --git a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java index e238dc67..ff12f671 100644 --- a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java @@ -49,6 +49,7 @@ import ru.betterend.registry.EndBlocks; import java.util.EnumMap; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; @SuppressWarnings("deprecation") public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWaterloggedBlock, RenderLayerProvider, PottablePlant { @@ -134,7 +135,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate } @Override - public void tick(BlockState blockState, ServerLevel serverLevel, BlockPos blockPos, Random random) { + public void tick(BlockState blockState, ServerLevel serverLevel, BlockPos blockPos, RandomSource random) { if (!blockState.canSurvive(serverLevel, blockPos)) { serverLevel.destroyBlock(blockPos, true, null, 1); } @@ -174,7 +175,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate } @Override - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!this.canSurvive(state, world, pos) || random.nextInt(8) > 0) { return; } @@ -214,11 +215,11 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate mutateStem(placement, world, pos, MAX_LENGTH); } - public void growPlant(WorldGenLevel world, BlockPos pos, Random random) { + public void growPlant(WorldGenLevel world, BlockPos pos, RandomSource random) { growPlant(world, pos, random, MHelper.randRange(MAX_LENGTH >> 1, MAX_LENGTH, random)); } - public void growPlant(WorldGenLevel world, BlockPos pos, Random random, int iterations) { + public void growPlant(WorldGenLevel world, BlockPos pos, RandomSource random, int iterations) { BlockState state = defaultBlockState(); BlockState downState = world.getBlockState(pos.below()); if (downState.is(Blocks.END_STONE) || downState.is(EndBlocks.ENDSTONE_DUST)) { @@ -244,7 +245,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate } } - private boolean growIteration(WorldGenLevel world, MutableBlockPos pos, Random random, List ends, int length) { + private boolean growIteration(WorldGenLevel world, MutableBlockPos pos, RandomSource random, List ends, int length) { BlockState state = world.getBlockState(pos); if (!state.is(this)) { return false; @@ -284,7 +285,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate return true; } - private Direction getSideDirection(WorldGenLevel world, BlockPos pos, BlockState iterState, Direction dir, Random random) { + private Direction getSideDirection(WorldGenLevel world, BlockPos pos, BlockState iterState, Direction dir, RandomSource random) { MutableBlockPos iterPos = pos.mutable(); Direction startDir = dir; Direction lastDir = null; diff --git a/src/main/java/ru/betterend/blocks/PondAnemoneBlock.java b/src/main/java/ru/betterend/blocks/PondAnemoneBlock.java index 4de122c5..6ac8785e 100644 --- a/src/main/java/ru/betterend/blocks/PondAnemoneBlock.java +++ b/src/main/java/ru/betterend/blocks/PondAnemoneBlock.java @@ -18,6 +18,7 @@ import ru.bclib.interfaces.tools.AddMineableShears; import ru.betterend.blocks.basis.EndUnderwaterPlantBlock; import java.util.Random; +import net.minecraft.util.RandomSource; public class PondAnemoneBlock extends EndUnderwaterPlantBlock implements AddMineableShears { private static final VoxelShape SHAPE = Block.box(2, 0, 2, 14, 14, 14); @@ -27,16 +28,12 @@ public class PondAnemoneBlock extends EndUnderwaterPlantBlock implements AddMine .luminance(13) .sound(SoundType.CORAL_BLOCK) - .noCollission()); - } - - @Override - public BlockBehaviour.OffsetType getOffsetType() { - return BlockBehaviour.OffsetType.NONE; + .noCollission() + .offsetType(OffsetType.NONE)); } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { double x = pos.getX() + random.nextDouble(); double y = pos.getY() + random.nextDouble() * 0.5F + 0.5F; double z = pos.getZ() + random.nextDouble(); @@ -54,7 +51,7 @@ public class PondAnemoneBlock extends EndUnderwaterPlantBlock implements AddMine } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return false; } } diff --git a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java index b087533f..d96c3bf5 100644 --- a/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java +++ b/src/main/java/ru/betterend/blocks/RespawnObeliskBlock.java @@ -6,7 +6,8 @@ import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.item.ItemColor; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.network.chat.TranslatableComponent; + +import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; @@ -167,8 +168,8 @@ public class RespawnObeliskBlock extends BaseBlock implements CustomColorProvide if (!world.isClientSide && !(itemStack.getItem() instanceof BlockItem) && !player.isCreative()) { ServerPlayer serverPlayerEntity = (ServerPlayer) player; serverPlayerEntity.displayClientMessage( - new TranslatableComponent("message.betterend.fail_spawn"), - true + Component.translatable("message.betterend.fail_spawn"), + true ); } return InteractionResult.FAIL; @@ -176,7 +177,7 @@ public class RespawnObeliskBlock extends BaseBlock implements CustomColorProvide else if (!world.isClientSide) { ServerPlayer serverPlayerEntity = (ServerPlayer) player; serverPlayerEntity.setRespawnPosition(world.dimension(), pos, 0.0F, false, false); - serverPlayerEntity.displayClientMessage(new TranslatableComponent("message.betterend.set_spawn"), true); + serverPlayerEntity.displayClientMessage(Component.translatable("message.betterend.set_spawn"), true); double px = pos.getX() + 0.5; double py = pos.getY() + 0.5; double pz = pos.getZ() + 0.5; diff --git a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java index a88df432..ec45e7cd 100644 --- a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java +++ b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java @@ -16,6 +16,7 @@ import ru.betterend.registry.EndParticles; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class ShadowGrassBlock extends EndTerrainBlock implements TagProvider { public ShadowGrassBlock() { @@ -23,7 +24,7 @@ public class ShadowGrassBlock extends EndTerrainBlock implements TagProvider { } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { super.animateTick(state, world, pos, random); if (random.nextInt(32) == 0) { world.addParticle( diff --git a/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java b/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java index 0f3c0b6a..da3db0f5 100644 --- a/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java +++ b/src/main/java/ru/betterend/blocks/SilkMothHiveBlock.java @@ -35,6 +35,7 @@ import ru.betterend.registry.EndEntities; import ru.betterend.registry.EndItems; import java.util.Random; +import net.minecraft.util.RandomSource; public class SilkMothHiveBlock extends BaseBlock { public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; @@ -75,7 +76,7 @@ public class SilkMothHiveBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { Direction dir = state.getValue(FACING); BlockPos spawn = pos.relative(dir); if (!world.getBlockState(spawn).isAir()) { diff --git a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java index 4b3ca23e..6620c94f 100644 --- a/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java +++ b/src/main/java/ru/betterend/blocks/SilkMothNestBlock.java @@ -47,6 +47,7 @@ import ru.betterend.registry.EndItems; import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class SilkMothNestBlock extends BaseBlock implements RenderLayerProvider { public static final BooleanProperty ACTIVE = EndBlockProperties.ACTIVE; @@ -133,7 +134,7 @@ public class SilkMothNestBlock extends BaseBlock implements RenderLayerProvider @Override @SuppressWarnings("deprecation") - public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!state.getValue(ACTIVE)) { return; } diff --git a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java index 290b35c1..8748051f 100644 --- a/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallAmaranitaBlock.java @@ -20,6 +20,7 @@ import ru.betterend.registry.EndFeatures; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class SmallAmaranitaBlock extends EndPlantBlock { private static final VoxelShape SHAPE = Block.box(4, 0, 4, 12, 10, 12); @@ -30,7 +31,7 @@ public class SmallAmaranitaBlock extends EndPlantBlock { } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { BlockPos bigPos = growBig(world, pos); if (bigPos != null) { if (((Feature)EndFeatures.GIGANTIC_AMARANITA.getFeature()) @@ -75,7 +76,7 @@ public class SmallAmaranitaBlock extends EndPlantBlock { } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return random.nextInt(8) == 0; } } diff --git a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java index aef5dd95..6fd8e66c 100644 --- a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java @@ -41,6 +41,7 @@ import java.util.EnumMap; import java.util.List; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class SmallJellyshroomBlock extends BaseAttachedBlock implements RenderLayerProvider, BonemealableBlock, PottablePlant { private static final EnumMap BOUNDING_SHAPES = Maps.newEnumMap(Direction.class); @@ -97,12 +98,12 @@ public class SmallJellyshroomBlock extends BaseAttachedBlock implements RenderLa } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return random.nextInt(16) == 0; } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { BlocksHelper.setWithUpdate(world, pos, Blocks.AIR); ((Feature)EndFeatures.JELLYSHROOM.getFeature()).place(new FeaturePlaceContext<>(Optional.empty(), world, null, random, pos, null)); } diff --git a/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java b/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java index 34aa9e97..f49e5ed3 100644 --- a/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/SulphurCrystalBlock.java @@ -69,7 +69,7 @@ public class SulphurCrystalBlock extends BaseAttachedBlock implements AddMineabl public List getDrops(BlockState state, LootContext.Builder builder) { return state.getValue(AGE) < 2 ? Collections.emptyList() : Lists.newArrayList(new ItemStack( EndItems.CRYSTALLINE_SULPHUR, - MHelper.randRange(1, 3, MHelper.RANDOM) + MHelper.randRange(1, 3, MHelper.RANDOM_SOURCE) )); } diff --git a/src/main/java/ru/betterend/blocks/TenaneaFlowersBlock.java b/src/main/java/ru/betterend/blocks/TenaneaFlowersBlock.java index c5337047..060a1742 100644 --- a/src/main/java/ru/betterend/blocks/TenaneaFlowersBlock.java +++ b/src/main/java/ru/betterend/blocks/TenaneaFlowersBlock.java @@ -17,6 +17,7 @@ import ru.bclib.util.MHelper; import ru.betterend.registry.EndParticles; import java.util.Random; +import net.minecraft.util.RandomSource; public class TenaneaFlowersBlock extends BaseVineBlock implements CustomColorProvider { public static final Vec3i[] COLORS; @@ -62,7 +63,7 @@ public class TenaneaFlowersBlock extends BaseVineBlock implements CustomColorPro } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { super.animateTick(state, world, pos, random); if (random.nextInt(32) == 0) { double x = (double) pos.getX() + random.nextGaussian() + 0.5; diff --git a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossBlock.java b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossBlock.java index 8a5061d6..864c563a 100644 --- a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossBlock.java +++ b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossBlock.java @@ -13,6 +13,7 @@ import ru.betterend.blocks.basis.EndPlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class TwistedUmbrellaMossBlock extends EndPlantBlock { public TwistedUmbrellaMossBlock() { @@ -35,12 +36,12 @@ public class TwistedUmbrellaMossBlock extends EndPlantBlock { } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return world.isEmptyBlock(pos.above()); } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { int rot = world.random.nextInt(4); BlockState bs = EndBlocks.TWISTED_UMBRELLA_MOSS_TALL.defaultBlockState() .setValue(BaseDoublePlantBlock.ROTATION, rot); diff --git a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java index c63d7d5b..47ce316e 100644 --- a/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java +++ b/src/main/java/ru/betterend/blocks/TwistedUmbrellaMossTallBlock.java @@ -9,6 +9,7 @@ import ru.bclib.blocks.BaseDoublePlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class TwistedUmbrellaMossTallBlock extends BaseDoublePlantBlock { public TwistedUmbrellaMossTallBlock() { @@ -16,7 +17,7 @@ public class TwistedUmbrellaMossTallBlock extends BaseDoublePlantBlock { } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { ItemEntity item = new ItemEntity( world, pos.getX() + 0.5, diff --git a/src/main/java/ru/betterend/blocks/UmbrellaMossBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaMossBlock.java index c8ebca8a..7e28e05f 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaMossBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaMossBlock.java @@ -13,6 +13,7 @@ import ru.betterend.blocks.basis.EndPlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class UmbrellaMossBlock extends EndPlantBlock { public UmbrellaMossBlock() { @@ -35,12 +36,12 @@ public class UmbrellaMossBlock extends EndPlantBlock { } @Override - public boolean isBonemealSuccess(Level world, Random random, BlockPos pos, BlockState state) { + public boolean isBonemealSuccess(Level world, RandomSource random, BlockPos pos, BlockState state) { return world.isEmptyBlock(pos.above()); } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { int rot = world.random.nextInt(4); BlockState bs = EndBlocks.UMBRELLA_MOSS_TALL.defaultBlockState().setValue(BaseDoublePlantBlock.ROTATION, rot); BlocksHelper.setWithoutUpdate(world, pos, bs); diff --git a/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java index 36dfa686..f749e10a 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaMossTallBlock.java @@ -9,6 +9,7 @@ import ru.bclib.blocks.BaseDoublePlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class UmbrellaMossTallBlock extends BaseDoublePlantBlock { public UmbrellaMossTallBlock() { @@ -16,7 +17,7 @@ public class UmbrellaMossTallBlock extends BaseDoublePlantBlock { } @Override - public void performBonemeal(ServerLevel world, Random random, BlockPos pos, BlockState state) { + public void performBonemeal(ServerLevel world, RandomSource random, BlockPos pos, BlockState state) { ItemEntity item = new ItemEntity( world, pos.getX() + 0.5, diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java index 084ac2b9..10b4b8aa 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeClusterEmptyBlock.java @@ -14,6 +14,7 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class UmbrellaTreeClusterEmptyBlock extends BaseBlock { public static final BooleanProperty NATURAL = EndBlockProperties.NATURAL; @@ -34,7 +35,7 @@ public class UmbrellaTreeClusterEmptyBlock extends BaseBlock { @Override @SuppressWarnings("deprecation") - public void tick(BlockState state, ServerLevel world, BlockPos pos, Random random) { + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (state.getValue(NATURAL) && random.nextInt(16) == 0) { BlocksHelper.setWithUpdate( world, diff --git a/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java b/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java index 3ea9dc38..22766c55 100644 --- a/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java +++ b/src/main/java/ru/betterend/blocks/VentBubbleColumnBlock.java @@ -35,6 +35,7 @@ import ru.betterend.registry.EndBlocks; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class VentBubbleColumnBlock extends Block implements BucketPickup, LiquidBlockContainer { public VentBubbleColumnBlock() { @@ -83,7 +84,7 @@ public class VentBubbleColumnBlock extends Block implements BucketPickup, Liquid } @Environment(EnvType.CLIENT) - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { if (random.nextInt(4) == 0) { double px = pos.getX() + random.nextDouble(); double py = pos.getY() + random.nextDouble(); diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java index 2c30a4ae..c935cc34 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java @@ -6,21 +6,32 @@ import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BasePlantBlock; import ru.betterend.interfaces.PottablePlant; +import java.util.function.Function; + public class EndPlantBlock extends BasePlantBlock implements PottablePlant { public EndPlantBlock() { - this(false); + this(false, p->p); } - + public EndPlantBlock(int light) { - this(false, light); + this(light, p->p); } - + public EndPlantBlock(int light, Function propMod) { + this(false, light, propMod); + } + public EndPlantBlock(boolean replaceable) { super(replaceable); } - - public EndPlantBlock(boolean replaceable, int light) { - super(replaceable, light); + public EndPlantBlock(boolean replaceable, Function propMod) { + super(replaceable, propMod); + } + + public EndPlantBlock(boolean replaceable, int light){ + this(replaceable, light, p->p); + } + public EndPlantBlock(boolean replaceable, int light, Function propMod) { + super(replaceable, light, propMod); } public EndPlantBlock(Properties settings) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java index 47e52267..3019f1b5 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java @@ -4,10 +4,16 @@ import net.minecraft.world.level.block.state.BlockState; import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BasePlantWithAgeBlock; +import java.util.function.Function; + public abstract class EndPlantWithAgeBlock extends BasePlantWithAgeBlock { public EndPlantWithAgeBlock() { } + + public EndPlantWithAgeBlock(Function propMod) { + super(propMod); + } public EndPlantWithAgeBlock(Properties settings) { super(settings); diff --git a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java index ecdfd821..0e5675eb 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java @@ -4,13 +4,15 @@ import net.minecraft.world.level.block.state.BlockState; import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.UnderwaterPlantBlock; +import java.util.function.Function; + public class EndUnderwaterPlantBlock extends UnderwaterPlantBlock { public EndUnderwaterPlantBlock() { } - public EndUnderwaterPlantBlock(int light) { - super(light); + public EndUnderwaterPlantBlock(int light, Function propMod) { + super(light, propMod); } public EndUnderwaterPlantBlock(Properties settings) { diff --git a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java index 5325a67f..2392d869 100644 --- a/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java +++ b/src/main/java/ru/betterend/blocks/entities/EndStoneSmelterBlockEntity.java @@ -10,7 +10,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; + import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.ContainerHelper; @@ -225,7 +225,7 @@ public class EndStoneSmelterBlockEntity extends BaseContainerBlockEntity impleme @Override protected Component getDefaultName() { - return new TranslatableComponent(String.format("block.%s.%s", BetterEnd.MOD_ID, EndStoneSmelter.ID)); + return Component.translatable(String.format("block.%s.%s", BetterEnd.MOD_ID, EndStoneSmelter.ID)); } @Override diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 3eefeaf4..b912a380 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -4,9 +4,10 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry; import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; + import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import ru.bclib.BCLib; @@ -68,12 +69,13 @@ public class BetterEndClient implements ClientModInitializer { if (player != null) { hasSet = CrystaliteArmor.hasFullSet(player); } - TranslatableComponent setDesc = new TranslatableComponent("tooltip.armor.crystalite_set"); + MutableComponent setDesc = Component.translatable("tooltip.armor.crystalite_set"); + setDesc.setStyle(Style.EMPTY.applyFormats( hasSet ? ChatFormatting.BLUE : ChatFormatting.DARK_GRAY, ChatFormatting.ITALIC )); - lines.add(TextComponent.EMPTY); + lines.add(Component.empty()); lines.add(setDesc); } }); diff --git a/src/main/java/ru/betterend/client/models/Patterns.java b/src/main/java/ru/betterend/client/models/Patterns.java index 9c66adda..e8643783 100644 --- a/src/main/java/ru/betterend/client/models/Patterns.java +++ b/src/main/java/ru/betterend/client/models/Patterns.java @@ -120,7 +120,7 @@ public class Patterns { public static Optional createJson(ResourceLocation patternId, String parent, String block) { ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); - try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { + try (InputStream input = resourceManager.getResource(patternId).get().open()) { return Optional.ofNullable(createJson(new InputStreamReader(input, StandardCharsets.UTF_8), parent, block)); } catch (Exception ex) { @@ -136,7 +136,7 @@ public class Patterns { public static Optional createJson(ResourceLocation patternId, Map textures) { ResourceManager resourceManager = Minecraft.getInstance().getResourceManager(); - try (InputStream input = resourceManager.getResource(patternId).getInputStream()) { + try (InputStream input = resourceManager.getResource(patternId).get().open()) { String json = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)).lines() .collect(Collectors.joining()); for (Entry texture : textures.entrySet()) { diff --git a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java index a1f7f084..33748f52 100644 --- a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java +++ b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java @@ -21,6 +21,8 @@ import ru.bclib.util.MHelper; import ru.betterend.BetterEnd; import java.util.Random; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.levelgen.LegacyRandomSource; public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRenderer { private static final ResourceLocation NEBULA_1 = BetterEnd.makeID("textures/sky/nebula_2.png"); @@ -47,7 +49,7 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende private void initialise() { if (!initialised) { initStars(); - Random random = new Random(131); + RandomSource random = new LegacyRandomSource(131); axis1 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); axis2 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); axis3 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); @@ -182,8 +184,8 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende buffer = new VertexBuffer(); makeStars(bufferBuilder, minSize, maxSize, count, seed); - bufferBuilder.end(); - buffer.upload(bufferBuilder); + BufferBuilder.RenderedBuffer renderedBuffer = bufferBuilder.end(); + buffer.upload(renderedBuffer); return buffer; } @@ -195,8 +197,8 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende buffer = new VertexBuffer(); makeUVStars(bufferBuilder, minSize, maxSize, count, seed); - bufferBuilder.end(); - buffer.upload(bufferBuilder); + BufferBuilder.RenderedBuffer renderedBuffer = bufferBuilder.end(); + buffer.upload(renderedBuffer); return buffer; } @@ -208,8 +210,8 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende buffer = new VertexBuffer(); makeFarFog(bufferBuilder, minSize, maxSize, count, seed); - bufferBuilder.end(); - buffer.upload(bufferBuilder); + BufferBuilder.RenderedBuffer renderedBuffer = bufferBuilder.end(); + buffer.upload(renderedBuffer); return buffer; } @@ -221,8 +223,8 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende buffer = new VertexBuffer(); makeCylinder(bufferBuilder, 16, 50, 100); - bufferBuilder.end(); - buffer.upload(bufferBuilder); + BufferBuilder.RenderedBuffer renderedBuffer = bufferBuilder.end(); + buffer.upload(renderedBuffer); return buffer; } @@ -234,14 +236,14 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende buffer = new VertexBuffer(); makeCylinder(bufferBuilder, 16, 50, 70); - bufferBuilder.end(); - buffer.upload(bufferBuilder); + BufferBuilder.RenderedBuffer renderedBuffer = bufferBuilder.end(); + buffer.upload(renderedBuffer); return buffer; } private void makeStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { - Random random = new Random(seed); + RandomSource random = new LegacyRandomSource(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int i = 0; i < count; ++i) { @@ -287,7 +289,7 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende } private void makeUVStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { - Random random = new Random(seed); + RandomSource random = new LegacyRandomSource(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); for (int i = 0; i < count; ++i) { @@ -336,7 +338,7 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende } private void makeFarFog(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { - Random random = new Random(seed); + RandomSource random = new LegacyRandomSource(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); for (int i = 0; i < count; ++i) { diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index 98e69f68..155edf2e 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -44,6 +44,7 @@ import ru.betterend.util.GlobalState; import java.util.EnumSet; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndSlimeEntity extends Slime { private static final EntityDataAccessor VARIANT = SynchedEntityData.defineId( @@ -212,7 +213,7 @@ public class EndSlimeEntity extends Slime { return this.entityData.get(VARIANT) == 0; } - public static boolean canSpawn(EntityType entityType, LevelAccessor world, MobSpawnType spawnType, BlockPos pos, Random random) { + public static boolean canSpawn(EntityType entityType, LevelAccessor world, MobSpawnType spawnType, BlockPos pos, RandomSource random) { if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return false; } 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 155f7c9b..d559ce4a 100644 --- a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java @@ -17,11 +17,12 @@ import ru.betterend.integration.Integrations; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class BigEtherTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) 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 0bbee4e7..d58628ac 100644 --- a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java @@ -29,13 +29,14 @@ import ru.betterend.integration.Integrations; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class NightshadeRedwoodTreeFeature extends DefaultFeature { private static final List BRANCH; @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) 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 66a35454..c8595e49 100644 --- a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java @@ -26,6 +26,7 @@ import ru.betterend.noise.OpenSimplexNoise; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class OldBulbisTreeFeature extends DefaultFeature { @@ -36,7 +37,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; @@ -98,7 +99,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { return true; } - private void bigSphere(WorldGenLevel world, BlockPos pos, float radius, BlockState cap, BlockState glow, BlockState wood, Function replacement, Random random) { + private void bigSphere(WorldGenLevel world, BlockPos pos, float radius, BlockState cap, BlockState glow, BlockState wood, Function replacement, RandomSource random) { OpenSimplexNoise noise = new OpenSimplexNoise(random.nextLong()); SDF sphere = new SDFSphere().setRadius(radius).setBlock(cap); @@ -145,7 +146,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { sphere.fillArea(world, pos, new AABB(pos.above((int) offsetY)).inflate(radius * 1.3F)); } - private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood, Function replacement) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, BlockState wood, Function replacement) { 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/integration/rei/REIAlloyingCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java index 49b83808..6fb5112f 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingCategory.java @@ -35,7 +35,7 @@ public class REIAlloyingCategory implements DisplayCategory @Override public @NotNull Component getTitle() { - return new TranslatableComponent(EndBlocks.END_STONE_SMELTER.getDescriptionId()); + return Component.translatable(EndBlocks.END_STONE_SMELTER.getDescriptionId()); } @Override @@ -55,7 +55,7 @@ public class REIAlloyingCategory implements DisplayCategory .animationDurationMS(10000)); widgets.add(Widgets.createLabel( new Point(bounds.x + bounds.width - 5, bounds.y + 5), - new TranslatableComponent("category.rei.cooking.time&xp", + Component.translatable("category.rei.cooking.time&xp", df.format(display.getXp()), df.format(smeltTime / 20D) ) diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingDisplay.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingDisplay.java index 9871f20e..0c714110 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingDisplay.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingDisplay.java @@ -99,7 +99,7 @@ public class REIAlloyingDisplay extends BasicDisplay implements SimpleGridMenuDi .map(EntryStacks::of) .map(e -> e.setting( EntryStack.Settings.TOOLTIP_APPEND_EXTRA, - stack -> Collections.singletonList(new TranslatableComponent( + stack -> Collections.singletonList(Component.translatable( "category.rei.smelting.fuel").withStyle(ChatFormatting.YELLOW)) )) .collect(Collectors.toList()); diff --git a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java index 43a0d63b..4ba94b9e 100644 --- a/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIAlloyingFuelCategory.java @@ -33,7 +33,7 @@ public class REIAlloyingFuelCategory implements DisplayCategory { @Override public @NotNull Component getTitle() { - return new TranslatableComponent(Blocks.ANVIL.getDescriptionId()); + return Component.translatable(Blocks.ANVIL.getDescriptionId()); } @Override @@ -73,7 +73,7 @@ public class REIAnvilCategory implements DisplayCategory { widgets.add(Widgets.createArrow(new Point(x + 24, y + 4))); widgets.add(Widgets.createLabel( new Point(bounds.x + bounds.width - 7, bounds.y + bounds.height - 15), - new TranslatableComponent("category.rei.damage.amount&dmg", display.getDamage()) + Component.translatable("category.rei.damage.amount&dmg", display.getDamage()) ).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); widgets.add(Widgets.createSlot(new Point(x - 20, y + 4)).entries(materials).markInput()); widgets.add(Widgets.createSlot(new Point(x + 1, y + 4)).entries(inputEntries.get(0)).markInput()); diff --git a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java index 57e94378..fc3e7b3e 100644 --- a/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java +++ b/src/main/java/ru/betterend/integration/rei/REIInfusionCategory.java @@ -35,7 +35,7 @@ public class REIInfusionCategory implements DisplayCategory @Override public @NotNull Component getTitle() { - return new TranslatableComponent(EndBlocks.INFUSION_PEDESTAL.getDescriptionId()); + return Component.translatable(EndBlocks.INFUSION_PEDESTAL.getDescriptionId()); } @Override @@ -98,7 +98,7 @@ public class REIInfusionCategory implements DisplayCategory .markOutput()); widgets.add(Widgets.createLabel( new Point(bounds.getMaxX() - 5, bounds.y + 6), - new TranslatableComponent("category.rei.infusion.time&val", display.getInfusionTime()) + Component.translatable("category.rei.infusion.time&val", display.getInfusionTime()) ).noShadow().rightAligned().color(0xFF404040, 0xFFBBBBBB)); return widgets; } diff --git a/src/main/java/ru/betterend/item/CrystaliteArmor.java b/src/main/java/ru/betterend/item/CrystaliteArmor.java index 3aeeaf4c..83b64c54 100644 --- a/src/main/java/ru/betterend/item/CrystaliteArmor.java +++ b/src/main/java/ru/betterend/item/CrystaliteArmor.java @@ -1,8 +1,10 @@ package ru.betterend.item; import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.Style; -import net.minecraft.network.chat.TranslatableComponent; + import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; @@ -13,8 +15,8 @@ import ru.betterend.item.material.EndArmorMaterial; public class CrystaliteArmor extends BaseArmorItem { - public final static TranslatableComponent CHEST_DESC; - public final static TranslatableComponent BOOTS_DESC; + public final static MutableComponent CHEST_DESC; + public final static MutableComponent BOOTS_DESC; public CrystaliteArmor(EquipmentSlot equipmentSlot, Properties settings) { super(EndArmorMaterial.CRYSTALITE, equipmentSlot, settings); @@ -37,9 +39,9 @@ public class CrystaliteArmor extends BaseArmorItem { static { Style descStyle = Style.EMPTY.applyFormats(ChatFormatting.DARK_AQUA, ChatFormatting.ITALIC); - CHEST_DESC = new TranslatableComponent("tooltip.armor.crystalite_chest"); + CHEST_DESC = Component.translatable("tooltip.armor.crystalite_chest"); CHEST_DESC.setStyle(descStyle); - BOOTS_DESC = new TranslatableComponent("tooltip.armor.crystalite_boots"); + BOOTS_DESC = Component.translatable("tooltip.armor.crystalite_boots"); BOOTS_DESC.setStyle(descStyle); } } diff --git a/src/main/java/ru/betterend/item/CrystaliteBoots.java b/src/main/java/ru/betterend/item/CrystaliteBoots.java index 66e63151..15a39a7d 100644 --- a/src/main/java/ru/betterend/item/CrystaliteBoots.java +++ b/src/main/java/ru/betterend/item/CrystaliteBoots.java @@ -3,7 +3,7 @@ package ru.betterend.item; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; @@ -16,6 +16,7 @@ import ru.betterend.effects.EndStatusEffects; import ru.betterend.interfaces.MobEffectApplier; import ru.betterend.registry.EndItems; +import java.awt.*; import java.util.List; public class CrystaliteBoots extends CrystaliteArmor implements MobEffectApplier { @@ -35,7 +36,7 @@ public class CrystaliteBoots extends CrystaliteArmor implements MobEffectApplier @Environment(EnvType.CLIENT) public void appendHoverText(ItemStack stack, @Nullable Level level, List lines, TooltipFlag tooltip) { super.appendHoverText(stack, level, lines, tooltip); - lines.add(1, TextComponent.EMPTY); + lines.add(1, Component.empty()); lines.add(2, BOOTS_DESC); } } diff --git a/src/main/java/ru/betterend/item/CrystaliteChestplate.java b/src/main/java/ru/betterend/item/CrystaliteChestplate.java index 5f3035b0..2f0295f7 100644 --- a/src/main/java/ru/betterend/item/CrystaliteChestplate.java +++ b/src/main/java/ru/betterend/item/CrystaliteChestplate.java @@ -3,7 +3,7 @@ package ru.betterend.item; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; @@ -33,7 +33,7 @@ public class CrystaliteChestplate extends CrystaliteArmor implements MobEffectAp @Environment(EnvType.CLIENT) public void appendHoverText(ItemStack stack, @Nullable Level level, List lines, TooltipFlag tooltip) { super.appendHoverText(stack, level, lines, tooltip); - lines.add(1, TextComponent.EMPTY); + lines.add(1, Component.empty()); lines.add(2, CHEST_DESC); } } diff --git a/src/main/java/ru/betterend/mixin/client/LocalPlayerMixin.java b/src/main/java/ru/betterend/mixin/client/LocalPlayerMixin.java index 231ebcc1..3ea9d1db 100644 --- a/src/main/java/ru/betterend/mixin/client/LocalPlayerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/LocalPlayerMixin.java @@ -7,6 +7,7 @@ import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.protocol.game.ServerboundPlayerCommandPacket; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.player.ProfilePublicKey; import net.minecraft.world.item.ElytraItem; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Final; @@ -18,17 +19,20 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.betterend.interfaces.FallFlyingItem; +import org.jetbrains.annotations.Nullable; + @Mixin(LocalPlayer.class) public abstract class LocalPlayerMixin extends AbstractClientPlayer { - - public LocalPlayerMixin(ClientLevel clientLevel, GameProfile gameProfile) { - super(clientLevel, gameProfile); - } - @Final @Shadow public ClientPacketListener connection; - + + public LocalPlayerMixin(ClientLevel clientLevel, + GameProfile gameProfile, + @Nullable ProfilePublicKey profilePublicKey) { + super(clientLevel, gameProfile, profilePublicKey); + } + @Inject(method = "aiStep", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;getItemBySlot(Lnet/minecraft/world/entity/EquipmentSlot;)Lnet/minecraft/world/item/ItemStack;", shift = Shift.AFTER)) public void be_aiStep(CallbackInfo info) { ItemStack itemStack = getItemBySlot(EquipmentSlot.CHEST); diff --git a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java index 102ed6fe..3a0afd42 100644 --- a/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/MusicTrackerMixin.java @@ -17,6 +17,7 @@ import ru.betterend.client.ClientOptions; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(MusicManager.class) public abstract class MusicTrackerMixin { @@ -26,7 +27,7 @@ public abstract class MusicTrackerMixin { @Final @Shadow - private Random random; + private RandomSource random; @Shadow private SoundInstance currentMusic; diff --git a/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java b/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java index 760d6ef1..674b2f95 100644 --- a/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java +++ b/src/main/java/ru/betterend/mixin/common/BlockBehaviourMixin.java @@ -38,7 +38,7 @@ public abstract class BlockBehaviourMixin { info.setReturnValue(Lists.newArrayList(new ItemStack(Items.GLOWSTONE_DUST, max))); } } - count = MHelper.randRange(min, max, MHelper.RANDOM); + count = MHelper.randRange(min, max, MHelper.RANDOM_SOURCE); info.setReturnValue(Lists.newArrayList(new ItemStack(Items.GLOWSTONE_DUST, count))); } } diff --git a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java index 95da65ed..99588e53 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java @@ -26,6 +26,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.world.generator.GeneratorOptions; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(value = ChorusFlowerBlock.class, priority = 100) public abstract class ChorusFlowerBlockMixin extends Block { @@ -49,7 +50,7 @@ public abstract class ChorusFlowerBlockMixin extends Block { } @Inject(method = "randomTick", at = @At("HEAD"), cancellable = true) - private void be_randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random, CallbackInfo info) { + private void be_randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random, CallbackInfo info) { if (world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { BlockPos up = pos.above(); if (world.isEmptyBlock(up) && up.getY() < 256) { diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java index 568d344a..e6f2d7f4 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantFeatureMixin.java @@ -18,12 +18,13 @@ import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(ChorusPlantFeature.class) public class ChorusPlantFeatureMixin { @Inject(method = "place", at = @At("HEAD"), cancellable = true) private void be_place(FeaturePlaceContext featureConfig, CallbackInfoReturnable info) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos blockPos = featureConfig.origin(); final WorldGenLevel structureWorldAccess = featureConfig.level(); if (structureWorldAccess.isEmptyBlock(blockPos) && structureWorldAccess.getBlockState(blockPos.below()).is(EndBlocks.CHORUS_NYLIUM)) { diff --git a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java index d2f5e986..631045d4 100644 --- a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java @@ -20,6 +20,7 @@ import ru.bclib.api.tag.CommonBlockTags; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(EnchantmentMenu.class) public abstract class EnchantmentMenuMixin extends AbstractContainerMenu { @@ -33,7 +34,7 @@ public abstract class EnchantmentMenuMixin extends AbstractContainerMenu { @Final @Shadow - private Random random; + private RandomSource random; @Final @Shadow diff --git a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java index e7581297..6eed50af 100644 --- a/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndCityFeatureMixin.java @@ -1,14 +1,18 @@ package ru.betterend.mixin.common; +import net.minecraft.core.BlockPos; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.LevelHeightAccessor; +import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.WorldgenRandom; import net.minecraft.world.level.levelgen.XoroshiroRandomSource; -import net.minecraft.world.level.levelgen.feature.EndCityFeature; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.levelgen.structure.pieces.PieceGenerator; import net.minecraft.world.level.levelgen.structure.pieces.PieceGeneratorSupplier; +import net.minecraft.world.level.levelgen.structure.structures.EndCityStructure; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -18,33 +22,22 @@ import ru.betterend.world.generator.GeneratorOptions; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; -@Mixin(EndCityFeature.class) +@Mixin(EndCityStructure.class) public class EndCityFeatureMixin { - @Inject(method = "pieceGeneratorSupplier", at = @At("HEAD"), cancellable = true) - private static void be_isFeatureChunk(PieceGeneratorSupplier.Context context, CallbackInfoReturnable>> info) { + @Inject(method = "findGenerationPoint", at = @At("HEAD"), cancellable = true) + private void be_findGenerationPoint(Structure.GenerationContext context, + CallbackInfoReturnable> info) { final ChunkPos pos = context.chunkPos(); - final ChunkGenerator chunkGenerator = context.chunkGenerator(); - final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); - Random chunkRandom = new WorldgenRandom(new XoroshiroRandomSource(pos.x, pos.z)); + WorldgenRandom chunkRandom = new WorldgenRandom(new XoroshiroRandomSource(pos.x, pos.z)); if (GeneratorOptions.useNewGenerator()) { int chance = GeneratorOptions.getEndCityFailChance(); - if (chance == 0 || chunkRandom.nextInt(chance) == 0) { - if (!(getYPositionForFeature(pos, chunkGenerator, levelHeightAccessor) >= 60)){ - info.cancel(); - info.setReturnValue(Optional.empty()); - } - } - else { + if (chance > 0 && chunkRandom.nextInt(chance) != 0) { info.setReturnValue(Optional.empty()); info.cancel(); } } } - - @Shadow - private static int getYPositionForFeature(ChunkPos pos, ChunkGenerator chunkGenerator, LevelHeightAccessor levelHeightAccessor) { - return 0; - } } diff --git a/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java index 5dbf4f2b..8372b1b7 100644 --- a/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EndPodiumFeatureMixin.java @@ -25,6 +25,7 @@ import ru.betterend.world.generator.GeneratorOptions; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(EndPodiumFeature.class) public class EndPodiumFeatureMixin { @@ -41,7 +42,7 @@ public class EndPodiumFeatureMixin { info.cancel(); } else if (GeneratorOptions.replacePortal()) { - Random random = featurePlaceContext.random(); + RandomSource random = featurePlaceContext.random(); WorldGenLevel world = featurePlaceContext.level(); BlockPos blockPos = be_updatePortalPos(world); StructureTemplate structure = StructureHelper.readStructure(BetterEnd.makeID(active ? "portal/end_portal_active" : "portal/end_portal_inactive")); diff --git a/src/main/java/ru/betterend/mixin/common/MonsterMixin.java b/src/main/java/ru/betterend/mixin/common/MonsterMixin.java index 403f11e0..c3e9cdcc 100644 --- a/src/main/java/ru/betterend/mixin/common/MonsterMixin.java +++ b/src/main/java/ru/betterend/mixin/common/MonsterMixin.java @@ -14,11 +14,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(Monster.class) public class MonsterMixin { @Inject(method = "checkMonsterSpawnRules", at = @At(value = "RETURN"), cancellable = true) - private static void be_checkMonsterSpawnRules(EntityType type, ServerLevelAccessor serverWorldAccess, MobSpawnType spawnReason, BlockPos pos, Random random, CallbackInfoReturnable info) { + private static void be_checkMonsterSpawnRules(EntityType type, ServerLevelAccessor serverWorldAccess, MobSpawnType spawnReason, BlockPos pos, RandomSource random, CallbackInfoReturnable info) { boolean canSpawn = info.getReturnValue(); if (canSpawn && spawnReason == MobSpawnType.NATURAL && type == EntityType.ENDERMAN) { AABB box = new AABB(pos).inflate(16); diff --git a/src/main/java/ru/betterend/mixin/common/NoiseChunkMixin.java b/src/main/java/ru/betterend/mixin/common/NoiseChunkMixin.java index 215178c4..74117fd8 100644 --- a/src/main/java/ru/betterend/mixin/common/NoiseChunkMixin.java +++ b/src/main/java/ru/betterend/mixin/common/NoiseChunkMixin.java @@ -57,9 +57,12 @@ public class NoiseChunkMixin implements BETargetChecker { for (int cellXZ = 0; cellXZ < cellSizeXZ; ++cellXZ) { int z = (firstCellZ + cellXZ) * sizeXZ; for (NoiseChunk.NoiseInterpolator noiseInterpolator : this.interpolators) { - NoiseInterpolatorAccessor interpolator = (NoiseInterpolatorAccessor) noiseInterpolator; - final double[] ds = (primarySlice ? interpolator.be_getSlice0() : interpolator.be_getSlice1())[cellXZ]; - TerrainGenerator.fillTerrainDensity(ds, x, z, sizeXZ, sizeY); + if (noiseInterpolator instanceof NoiseInterpolatorAccessor interpolator) { + final double[] ds = (primarySlice + ? interpolator.be_getSlice0() + : interpolator.be_getSlice1())[cellXZ]; + TerrainGenerator.fillTerrainDensity(ds, x, z, sizeXZ, sizeY); + } } } } diff --git a/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java b/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java index f294a242..eccd7c02 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java @@ -13,8 +13,10 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; +import net.minecraft.world.level.storage.LevelStorageSource; import net.minecraft.world.level.storage.LevelStorageSource.LevelStorageAccess; import net.minecraft.world.level.storage.ServerLevelData; import net.minecraft.world.level.storage.WritableLevelData; @@ -37,12 +39,19 @@ import java.util.function.Supplier; @Mixin(ServerLevel.class) public abstract class ServerLevelMixin extends Level { + protected ServerLevelMixin(WritableLevelData writableLevelData, + ResourceKey resourceKey, + Holder holder, + Supplier supplier, + boolean bl, + boolean bl2, + long l, + int i) { + super(writableLevelData, resourceKey, holder, supplier, bl, bl2, l, i); + } //private static String be_lastWorld = null; - protected ServerLevelMixin(WritableLevelData writableLevelData, ResourceKey resourceKey, Holder dimensionType, Supplier supplier, boolean bl, boolean bl2, long l) { - super(writableLevelData, resourceKey, dimensionType, supplier, bl, bl2, l); - } - + // @Inject(method = "*", at = @At("TAIL")) // private void be_onServerWorldInit(MinecraftServer server, Executor workerExecutor, LevelStorageSource.LevelStorageAccess session, ServerLevelData properties, ResourceKey registryKey, DimensionType dimensionType, ChunkProgressListener worldGenerationProgressListener, ChunkGenerator chunkGenerator, boolean debugWorld, long l, List list, boolean bl, CallbackInfo info) { // if (be_lastWorld != null && be_lastWorld.equals(session.getLevelId())) { @@ -55,15 +64,27 @@ public abstract class ServerLevelMixin extends Level { // } @Inject(method = "*", at = @At("TAIL")) - private void be_onServerWorldInit(MinecraftServer minecraftServer, Executor executor, LevelStorageAccess levelStorageAccess, ServerLevelData serverLevelData, ResourceKey resourceKey, Holder holder, ChunkProgressListener chunkProgressListener, ChunkGenerator chunkGenerator, boolean bl, long seed, List list, boolean bl2, CallbackInfo ci) { + private void be_onServerWorldInit(MinecraftServer minecraftServer, + Executor executor, + LevelStorageAccess levelStorageAccess, + ServerLevelData serverLevelData, + ResourceKey resourceKey, + LevelStem levelStem, + ChunkProgressListener chunkProgressListener, + boolean bl, + long seed, + List list, + boolean bl2, + CallbackInfo ci) { ServerLevel level = ServerLevel.class.cast(this); if (level.dimension() == Level.END) { + final ChunkGenerator chunkGenerator = levelStem.generator(); if (chunkGenerator instanceof NoiseBasedChunkGenerator) { Holder sHolder = NoiseBasedChunkGeneratorAccessor.class.cast(chunkGenerator).be_getSettings(); BETargetChecker.class.cast(sHolder.value()).be_setTarget(true); } - TerrainGenerator.initNoise(seed, chunkGenerator.getBiomeSource(), chunkGenerator.climateSampler()); + TerrainGenerator.initNoise(seed, chunkGenerator.getBiomeSource(), level.getChunkSource().randomState().sampler()); } } diff --git a/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java b/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java index a328edce..bda4175c 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerPlayerMixin.java @@ -17,6 +17,7 @@ import net.minecraft.server.players.PlayerList; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.ProfilePublicKey; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.BiomeManager; import net.minecraft.world.level.portal.PortalInfo; @@ -32,6 +33,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.interfaces.TeleportingEntity; import ru.betterend.world.generator.GeneratorOptions; +import org.jetbrains.annotations.Nullable; + @Mixin(ServerPlayer.class) public abstract class ServerPlayerMixin extends Player implements TeleportingEntity { @Shadow @@ -53,11 +56,16 @@ public abstract class ServerPlayerMixin extends Player implements TeleportingEnt private BlockPos exitPos; private int be_teleportDelay = 0; - - public ServerPlayerMixin(Level world, BlockPos pos, float yaw, GameProfile profile) { - super(world, pos, yaw, profile); + + public ServerPlayerMixin(Level level, + BlockPos blockPos, + float f, + GameProfile gameProfile, + @Nullable ProfilePublicKey profilePublicKey) { + super(level, blockPos, f, gameProfile, profilePublicKey); } - + + @Inject(method = "createEndPlatform", at = @At("HEAD"), cancellable = true) private void be_createEndSpawnPlatform(ServerLevel world, BlockPos centerPos, CallbackInfo info) { if (!GeneratorOptions.generateObsidianPlatform()) { diff --git a/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java b/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java index b42926c9..a0a73b12 100644 --- a/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java +++ b/src/main/java/ru/betterend/mixin/common/SpikeFeatureMixin.java @@ -29,6 +29,7 @@ import ru.betterend.BetterEnd; import ru.betterend.world.generator.GeneratorOptions; import java.util.Random; +import net.minecraft.util.RandomSource; @Mixin(SpikeFeature.class) public class SpikeFeatureMixin { @@ -40,7 +41,7 @@ public class SpikeFeatureMixin { } @Inject(method = "placeSpike", at = @At("HEAD"), cancellable = true) - private void be_placeSpike(ServerLevelAccessor world, Random random, SpikeConfiguration config, SpikeFeature.EndSpike spike, CallbackInfo info) { + private void be_placeSpike(ServerLevelAccessor world, RandomSource random, SpikeConfiguration config, SpikeFeature.EndSpike spike, CallbackInfo info) { int x = spike.getCenterX(); int z = spike.getCenterZ(); int radius = spike.getRadius(); diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index 07ad5d4d..7849105b 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -27,7 +27,7 @@ import ru.bclib.world.biomes.BCLBiome; import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.DefaultFeature; import ru.bclib.world.features.ListFeature.StructureInfo; -import ru.bclib.world.features.NBTStructureFeature.TerrainMerge; +import ru.bclib.world.features.NBTFeature.TerrainMerge; import ru.betterend.BetterEnd; import ru.betterend.complexmaterials.StoneMaterial; import ru.betterend.config.Configs; @@ -331,7 +331,8 @@ public class EndFeatures { } boolean hasCaves = bclbiome.getCustomData("has_caves", true) && !(bclbiome instanceof EndCaveBiome); - if (hasCaves && !BiomeAPI.END_VOID_BIOME_PICKER.containsImmutable(id)) { + //TODO: 1.19 Test Cave generation + if (hasCaves && !BiomeAPI.wasRegisteredAsEndVoidBiome(id) /*!BiomeAPI.END_VOID_BIOME_PICKER.containsImmutable(id)*/) { if (Configs.BIOME_CONFIG.getBoolean(id, "hasCaves", true)) { BiomeAPI.addBiomeFeature(biome, ROUND_CAVE); BiomeAPI.addBiomeFeature(biome, TUNEL_CAVE); diff --git a/src/main/java/ru/betterend/registry/EndStructures.java b/src/main/java/ru/betterend/registry/EndStructures.java index 6cb5d09d..c66aa3c7 100644 --- a/src/main/java/ru/betterend/registry/EndStructures.java +++ b/src/main/java/ru/betterend/registry/EndStructures.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceType; import ru.bclib.api.tag.TagAPI; -import ru.bclib.world.structures.BCLStructureFeature; +import ru.bclib.world.structures.BCLStructure; import ru.betterend.BetterEnd; import ru.betterend.world.structures.features.EternalPortalStructure; import ru.betterend.world.structures.features.GiantIceStarStructure; @@ -31,51 +31,51 @@ public class EndStructures { public static final StructurePieceType PAINTED_MOUNTAIN_PIECE = register("painted_mountain_piece", PaintedMountainPiece::new); public static final StructurePieceType NBT_PIECE = register("nbt_piece", NBTPiece::new); - public static final BCLStructureFeature GIANT_MOSSY_GLOWSHROOM = new BCLStructureFeature( + public static final BCLStructure GIANT_MOSSY_GLOWSHROOM = new BCLStructure( BetterEnd.makeID("giant_mossy_glowshroom"), - new GiantMossyGlowshroomStructure(), + GiantMossyGlowshroomStructure::new, Decoration.SURFACE_STRUCTURES, 16, 8 ); - public static final BCLStructureFeature MEGALAKE = new BCLStructureFeature( + public static final BCLStructure MEGALAKE = new BCLStructure( BetterEnd.makeID("megalake"), - new MegaLakeStructure(), + MegaLakeStructure::new, Decoration.RAW_GENERATION, 4, 1 ); - public static final BCLStructureFeature MEGALAKE_SMALL = new BCLStructureFeature( + public static final BCLStructure MEGALAKE_SMALL = new BCLStructure( BetterEnd.makeID("megalake_small"), - new MegaLakeSmallStructure(), + MegaLakeSmallStructure::new, Decoration.RAW_GENERATION, 4, 1 ); - public static final BCLStructureFeature MOUNTAIN = new BCLStructureFeature( + public static final BCLStructure MOUNTAIN = new BCLStructure( BetterEnd.makeID("mountain"), - new MountainStructure(), + MountainStructure::new, Decoration.RAW_GENERATION, 3, 2 ); - public static final BCLStructureFeature PAINTED_MOUNTAIN = new BCLStructureFeature( + public static final BCLStructure PAINTED_MOUNTAIN = new BCLStructure( BetterEnd.makeID("painted_mountain"), - new PaintedMountainStructure(), + PaintedMountainStructure::new, Decoration.RAW_GENERATION, 3, 2 ); - public static final BCLStructureFeature ETERNAL_PORTAL = new BCLStructureFeature( + public static final BCLStructure ETERNAL_PORTAL = new BCLStructure( BetterEnd.makeID("eternal_portal"), - new EternalPortalStructure(), + EternalPortalStructure::new, Decoration.SURFACE_STRUCTURES, 16, 6 ); - public static final BCLStructureFeature GIANT_ICE_STAR = new BCLStructureFeature( + public static final BCLStructure GIANT_ICE_STAR = new BCLStructure( BetterEnd.makeID("giant_ice_star"), - new GiantIceStarStructure(), + GiantIceStarStructure::new, Decoration.SURFACE_STRUCTURES, 16, 8 diff --git a/src/main/java/ru/betterend/rituals/EternalRitual.java b/src/main/java/ru/betterend/rituals/EternalRitual.java index 57e80444..2aced2fb 100644 --- a/src/main/java/ru/betterend/rituals/EternalRitual.java +++ b/src/main/java/ru/betterend/rituals/EternalRitual.java @@ -25,6 +25,7 @@ import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.levelgen.LegacyRandomSource; import net.minecraft.world.level.material.Material; import org.jetbrains.annotations.Nullable; import ru.bclib.blocks.BlockProperties; @@ -40,6 +41,7 @@ import java.awt.Point; import java.util.List; import java.util.Objects; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; import java.util.function.Predicate; @@ -444,7 +446,7 @@ public class EternalRitual { net.minecraft.data.worldgen.features.EndFeatures.END_ISLAND.value().place( targetWorld, targetWorld.getChunkSource().getGenerator(), - new Random(basePos.asLong()), + new LegacyRandomSource(basePos.asLong()), basePos.below() ); } @@ -456,7 +458,7 @@ public class EternalRitual { .value() .place(targetWorld, targetWorld.getChunkSource().getGenerator(), - new Random(basePos.asLong()), + new LegacyRandomSource(basePos.asLong()), basePos.below() ); generatePortal(targetWorld, basePos, portalAxis, portalId); diff --git a/src/main/java/ru/betterend/util/LangUtil.java b/src/main/java/ru/betterend/util/LangUtil.java index bc051bf8..615f9690 100644 --- a/src/main/java/ru/betterend/util/LangUtil.java +++ b/src/main/java/ru/betterend/util/LangUtil.java @@ -1,7 +1,9 @@ package ru.betterend.util; import net.minecraft.client.resources.language.I18n; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; + public class LangUtil { public final static String CONFIG_ELEMENT = "configuration"; @@ -20,7 +22,7 @@ public class LangUtil { return getString(element, key); } - public TranslatableComponent getText(String key) { + public MutableComponent getText(String key) { return getText(element, key); } @@ -32,7 +34,7 @@ public class LangUtil { return translate(String.format("%s.%s", element, key)); } - public static TranslatableComponent getText(String element, String key) { - return new TranslatableComponent(getString(element, key)); + public static MutableComponent getText(String element, String key) { + return Component.translatable(getString(element, key)); } } diff --git a/src/main/java/ru/betterend/util/StructureErode.java b/src/main/java/ru/betterend/util/StructureErode.java index 2e5ec4c2..4bc5991a 100644 --- a/src/main/java/ru/betterend/util/StructureErode.java +++ b/src/main/java/ru/betterend/util/StructureErode.java @@ -5,6 +5,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; @@ -16,12 +17,13 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; public class StructureErode { private static final Direction[] DIR = BlocksHelper.makeHorizontal(); - public static void erode(WorldGenLevel world, BoundingBox bounds, int iterations, Random random) { + public static void erode(WorldGenLevel world, BoundingBox bounds, int iterations, RandomSource random) { MutableBlockPos mut = new MutableBlockPos(); boolean canDestruct = true; for (int i = 0; i < iterations; i++) { @@ -132,7 +134,7 @@ public class StructureErode { } } - public static void erodeIntense(WorldGenLevel world, BoundingBox bounds, Random random) { + public static void erodeIntense(WorldGenLevel world, BoundingBox bounds, RandomSource random) { MutableBlockPos mut = new MutableBlockPos(); MutableBlockPos mut2 = new MutableBlockPos(); int minY = bounds.minY() - 10; @@ -256,7 +258,7 @@ public class StructureErode { return false; } - public static void cover(WorldGenLevel world, BoundingBox bounds, Random random, BlockState defaultBlock) { + public static void cover(WorldGenLevel world, BoundingBox bounds, RandomSource random, BlockState defaultBlock) { MutableBlockPos mut = new MutableBlockPos(); for (int x = bounds.minX(); x <= bounds.maxX(); x++) { mut.setX(x); diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 95487621..f1d21547 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -103,7 +103,6 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static EndBiome create(Config biomeConfig){ BCLBiomeBuilder builder = BCLBiomeBuilder .start(biomeConfig.ID) - .category(Biome.BiomeCategory.THEEND) .music(SoundEvents.MUSIC_END) .waterColor(4159204) .waterFogColor(329011) 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 db8807cd..c00924b3 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java @@ -3,7 +3,6 @@ package ru.betterend.world.biome.cave; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.Biome.BiomeCategory; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.feature.Feature; @@ -20,6 +19,7 @@ import ru.betterend.world.biome.EndBiome; import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndCaveBiome extends EndBiome { public static abstract class Config extends EndBiome.Config { @@ -35,8 +35,7 @@ public class EndCaveBiome extends EndBiome { new CaveChunkPopulatorFeature(() -> (EndCaveBiome) BiomeAPI.getBiome(ID)) ); - builder.category(BiomeCategory.NONE) - .feature(feature) + builder.feature(feature) .music(EndSounds.MUSIC_CAVES) .loop(EndSounds.AMBIENT_CAVES); } @@ -67,11 +66,11 @@ public class EndCaveBiome extends EndBiome { ceilFeatures.add(feature, weight); } - public Feature getFloorFeature(Random random) { + public Feature getFloorFeature(RandomSource random) { return floorFeatures.isEmpty() ? null : floorFeatures.get(random); } - public Feature getCeilFeature(Random random) { + public Feature getCeilFeature(RandomSource random) { return ceilFeatures.isEmpty() ? null : ceilFeatures.get(random); } diff --git a/src/main/java/ru/betterend/world/features/BlueVineFeature.java b/src/main/java/ru/betterend/world/features/BlueVineFeature.java index 0578fca0..68d6de1c 100644 --- a/src/main/java/ru/betterend/world/features/BlueVineFeature.java +++ b/src/main/java/ru/betterend/world/features/BlueVineFeature.java @@ -8,6 +8,7 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class BlueVineFeature extends ScatterFeature { private boolean small; @@ -18,7 +19,7 @@ public class BlueVineFeature extends ScatterFeature { @Override @SuppressWarnings("deprecation") - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { float d = MHelper.length( center.getX() - blockPos.getX(), center.getZ() - blockPos.getZ() @@ -28,7 +29,7 @@ public class BlueVineFeature extends ScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { if (small) { BlocksHelper.setWithoutUpdate( world, diff --git a/src/main/java/ru/betterend/world/features/BuildingListFeature.java b/src/main/java/ru/betterend/world/features/BuildingListFeature.java index 88c13e26..9f2bfb66 100644 --- a/src/main/java/ru/betterend/world/features/BuildingListFeature.java +++ b/src/main/java/ru/betterend/world/features/BuildingListFeature.java @@ -19,6 +19,7 @@ import ru.betterend.util.LootTableUtil; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class BuildingListFeature extends ListFeature { public BuildingListFeature(List list, BlockState defaultBlock) { @@ -37,7 +38,7 @@ public class BuildingListFeature extends ListFeature { public StructureTemplate.StructureBlockInfo processBlock(LevelReader levelReader, BlockPos blockPos, BlockPos blockPos2, StructureBlockInfo structureBlockInfo, StructureBlockInfo structureBlockInfo2, StructurePlaceSettings structurePlaceSettings) { BlockState blockState = structureBlockInfo2.state; if (blockState.getBlock() instanceof ChestBlock) { - Random random = structurePlaceSettings.getRandom(structureBlockInfo2.pos); + RandomSource random = structurePlaceSettings.getRandom(structureBlockInfo2.pos); BlockPos chestPos = structureBlockInfo2.pos; ChestBlock chestBlock = ChestBlock.class.cast(blockState.getBlock()); BlockEntity entity = chestBlock.newBlockEntity(chestPos, blockState); diff --git a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java index 424a4348..40afc49f 100644 --- a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java @@ -11,11 +11,12 @@ import ru.betterend.blocks.EndBlockProperties; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class CavePumpkinFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.above()).is(CommonBlockTags.GEN_END_STONES) || !world.isEmptyBlock(pos) || !world.isEmptyBlock( diff --git a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java index dbf45baa..8900e619 100644 --- a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java +++ b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java @@ -2,6 +2,7 @@ package ru.betterend.world.features; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; @@ -21,14 +22,15 @@ import net.minecraft.world.level.material.Material; import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.MHelper; import ru.bclib.util.StructureHelper; -import ru.bclib.world.features.NBTStructureFeature; +import ru.bclib.world.features.NBTFeature; import ru.betterend.util.BlockFixer; import ru.betterend.util.StructureErode; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; -public class CrashedShipFeature extends NBTStructureFeature { +public class CrashedShipFeature extends NBTFeature { private static final StructureProcessor REPLACER; private static final String STRUCTURE_PATH = "/data/minecraft/structures/end_city/ship.nbt"; private StructureTemplate structure; @@ -38,7 +40,7 @@ public class CrashedShipFeature extends NBTStructureFeature { } @Override - protected StructureTemplate getStructure(WorldGenLevel world, BlockPos pos, Random random) { + protected StructureTemplate getStructure(WorldGenLevel world, BlockPos pos, RandomSource random) { if (structure == null) { structure = world.getLevel().getStructureManager().getOrCreate(new ResourceLocation("end_city/ship")); if (structure == null) { @@ -49,7 +51,7 @@ public class CrashedShipFeature extends NBTStructureFeature { } @Override - protected boolean canSpawn(WorldGenLevel world, BlockPos pos, Random random) { + protected boolean canSpawn(WorldGenLevel world, BlockPos pos, RandomSource random) { long x = pos.getX() >> 4; long z = pos.getX() >> 4; if (x * x + z * z < 3600) { @@ -59,30 +61,30 @@ public class CrashedShipFeature extends NBTStructureFeature { } @Override - protected Rotation getRotation(WorldGenLevel world, BlockPos pos, Random random) { + protected Rotation getRotation(WorldGenLevel world, BlockPos pos, RandomSource random) { return Rotation.getRandom(random); } @Override - protected Mirror getMirror(WorldGenLevel world, BlockPos pos, Random random) { + protected Mirror getMirror(WorldGenLevel world, BlockPos pos, RandomSource random) { return Mirror.values()[random.nextInt(3)]; } @Override - protected int getYOffset(StructureTemplate structure, WorldGenLevel world, BlockPos pos, Random random) { + protected int getYOffset(StructureTemplate structure, WorldGenLevel world, BlockPos pos, RandomSource random) { int min = structure.getSize().getY() >> 3; int max = structure.getSize().getY() >> 2; return -MHelper.randRange(min, max, random); } @Override - protected TerrainMerge getTerrainMerge(WorldGenLevel world, BlockPos pos, Random random) { + protected TerrainMerge getTerrainMerge(WorldGenLevel world, BlockPos pos, RandomSource random) { return TerrainMerge.NONE; } @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); center = new BlockPos(((center.getX() >> 4) << 4) | 8, 128, ((center.getZ() >> 4) << 4) | 8); diff --git a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java index 2a8ccb5c..92d784bf 100644 --- a/src/main/java/ru/betterend/world/features/DoublePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/DoublePlantFeature.java @@ -9,6 +9,7 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public class DoublePlantFeature extends ScatterFeature { private final Block smallPlant; @@ -22,7 +23,7 @@ public class DoublePlantFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { float d = MHelper.length( center.getX() - blockPos.getX(), center.getZ() - blockPos.getZ() @@ -32,7 +33,7 @@ public class DoublePlantFeature extends ScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { if (plant instanceof BaseDoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().setValue(BaseDoublePlantBlock.ROTATION, rot); diff --git a/src/main/java/ru/betterend/world/features/EndLilyFeature.java b/src/main/java/ru/betterend/world/features/EndLilyFeature.java index 490c3ca4..9ca11d6a 100644 --- a/src/main/java/ru/betterend/world/features/EndLilyFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLilyFeature.java @@ -6,6 +6,7 @@ import ru.betterend.blocks.EndLilySeedBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLilyFeature extends UnderwaterPlantScatter { public EndLilyFeature(int radius) { @@ -13,7 +14,7 @@ public class EndLilyFeature extends UnderwaterPlantScatter { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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 489fb561..89cf23fe 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusFeature.java @@ -6,6 +6,7 @@ import ru.betterend.blocks.EndLotusSeedBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLotusFeature extends UnderwaterPlantScatter { public EndLotusFeature(int radius) { @@ -13,7 +14,7 @@ public class EndLotusFeature extends UnderwaterPlantScatter { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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 eab0eb99..75c18daa 100644 --- a/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java +++ b/src/main/java/ru/betterend/world/features/EndLotusLeafFeature.java @@ -12,6 +12,7 @@ import ru.betterend.blocks.EndLotusLeafBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLotusLeafFeature extends ScatterFeature { public EndLotusLeafFeature(int radius) { @@ -19,7 +20,7 @@ public class EndLotusLeafFeature extends ScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { if (canGenerate(world, blockPos)) { generateLeaf(world, blockPos); } @@ -74,7 +75,7 @@ public class EndLotusLeafFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return world.isEmptyBlock(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 4ead10d7..23891764 100644 --- a/src/main/java/ru/betterend/world/features/FilaluxFeature.java +++ b/src/main/java/ru/betterend/world/features/FilaluxFeature.java @@ -12,6 +12,7 @@ import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class FilaluxFeature extends SkyScatterFeature { public FilaluxFeature() { @@ -19,7 +20,7 @@ public class FilaluxFeature extends SkyScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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 754b1bbd..cca7f4cc 100644 --- a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java @@ -12,6 +12,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class FullHeightScatterFeature extends DefaultFeature { private final int radius; @@ -20,14 +21,14 @@ public abstract class FullHeightScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); + public abstract boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(WorldGenLevel world, Random random, BlockPos blockPos); + public abstract void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos); @Override public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int maxY = world.getHeight(Heightmap.Types.WORLD_SURFACE_WG, center.getX(), center.getZ()); diff --git a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java index 2bd24160..7570c0fa 100644 --- a/src/main/java/ru/betterend/world/features/GlowPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/GlowPillarFeature.java @@ -6,6 +6,7 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class GlowPillarFeature extends ScatterFeature { public GlowPillarFeature() { @@ -13,12 +14,12 @@ public class GlowPillarFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return EndBlocks.GLOWING_PILLAR_SEED.canSurvive(AIR, world, blockPos); } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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 12c6fbdb..c9b47619 100644 --- a/src/main/java/ru/betterend/world/features/HydraluxFeature.java +++ b/src/main/java/ru/betterend/world/features/HydraluxFeature.java @@ -6,6 +6,7 @@ import ru.betterend.blocks.HydraluxSaplingBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class HydraluxFeature extends UnderwaterPlantScatter { public HydraluxFeature(int radius) { @@ -13,7 +14,7 @@ public class HydraluxFeature extends UnderwaterPlantScatter { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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 e0aa1df2..07e65599 100644 --- a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java @@ -12,6 +12,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class InvertedScatterFeature extends DefaultFeature { private final int radius; @@ -20,14 +21,14 @@ public abstract class InvertedScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); + public abstract boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(WorldGenLevel world, Random random, BlockPos blockPos); + public abstract void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos); @Override public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int maxY = world.getHeight(Heightmap.Types.WORLD_SURFACE, center.getX(), center.getZ()); diff --git a/src/main/java/ru/betterend/world/features/LanceleafFeature.java b/src/main/java/ru/betterend/world/features/LanceleafFeature.java index 7eb3966c..d5afefc5 100644 --- a/src/main/java/ru/betterend/world/features/LanceleafFeature.java +++ b/src/main/java/ru/betterend/world/features/LanceleafFeature.java @@ -6,6 +6,7 @@ import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class LanceleafFeature extends ScatterFeature { public LanceleafFeature() { @@ -13,12 +14,12 @@ public class LanceleafFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return EndBlocks.LANCELEAF_SEED.canSurvive(AIR, world, blockPos); } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { EndPlantWithAgeBlock seed = ((EndPlantWithAgeBlock) EndBlocks.LANCELEAF_SEED); seed.growAdult(world, random, blockPos); } diff --git a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java index 6dc0e6d3..c29b8bfc 100644 --- a/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java +++ b/src/main/java/ru/betterend/world/features/MengerSpongeFeature.java @@ -8,6 +8,7 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class MengerSpongeFeature extends UnderwaterPlantScatter { @@ -18,7 +19,7 @@ public class MengerSpongeFeature extends UnderwaterPlantScatter { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource 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/NeonCactusFeature.java b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java index 3b3164a3..f3f629d0 100644 --- a/src/main/java/ru/betterend/world/features/NeonCactusFeature.java +++ b/src/main/java/ru/betterend/world/features/NeonCactusFeature.java @@ -10,11 +10,12 @@ import ru.betterend.blocks.NeonCactusPlantBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class NeonCactusFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); BlockState ground = world.getBlockState(pos.below()); diff --git a/src/main/java/ru/betterend/world/features/ScatterFeature.java b/src/main/java/ru/betterend/world/features/ScatterFeature.java index 74dc0ccb..a273d3a5 100644 --- a/src/main/java/ru/betterend/world/features/ScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/ScatterFeature.java @@ -12,6 +12,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class ScatterFeature extends DefaultFeature { private final int radius; @@ -20,9 +21,9 @@ public abstract class ScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius); + public abstract boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius); - public abstract void generate(WorldGenLevel world, Random random, BlockPos blockPos); + public abstract void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos); protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { return getPosOnSurfaceWG(world, pos); @@ -58,7 +59,7 @@ public abstract class ScatterFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); center = getCenterGround(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 bc1a18f8..36b044f6 100644 --- a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java +++ b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java @@ -17,6 +17,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public class SilkMothNestFeature extends DefaultFeature { private boolean canGenerate(WorldGenLevel world, BlockPos pos) { @@ -35,7 +36,7 @@ public class SilkMothNestFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int maxY = world.getHeight(Heightmap.Types.WORLD_SURFACE, center.getX(), center.getZ()); diff --git a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java index 452b9afe..daa144cd 100644 --- a/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SingleInvertedScatterFeature.java @@ -10,6 +10,7 @@ import ru.bclib.blocks.BaseAttachedBlock; import ru.bclib.util.BlocksHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public class SingleInvertedScatterFeature extends InvertedScatterFeature { private final Block block; @@ -20,7 +21,7 @@ public class SingleInvertedScatterFeature extends InvertedScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { if (!world.isEmptyBlock(blockPos)) { return false; } @@ -32,7 +33,7 @@ public class SingleInvertedScatterFeature extends InvertedScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { BlockState state = block.defaultBlockState(); if (block instanceof BaseAttachedBlock) { state = state.setValue(BlockStateProperties.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 c7379c73..5824ed05 100644 --- a/src/main/java/ru/betterend/world/features/SinglePlantFeature.java +++ b/src/main/java/ru/betterend/world/features/SinglePlantFeature.java @@ -10,6 +10,7 @@ import ru.bclib.util.BlocksHelper; import ru.betterend.blocks.basis.EndPlantWithAgeBlock; import java.util.Random; +import net.minecraft.util.RandomSource; public class SinglePlantFeature extends ScatterFeature { private final Block plant; @@ -45,12 +46,12 @@ public class SinglePlantFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return plant.canSurvive(plant.defaultBlockState(), world, blockPos); } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { if (plant instanceof BaseDoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().setValue(BaseDoublePlantBlock.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 4f17b028..3c243f6e 100644 --- a/src/main/java/ru/betterend/world/features/SkyScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/SkyScatterFeature.java @@ -8,6 +8,7 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class SkyScatterFeature extends ScatterFeature { public SkyScatterFeature(int radius) { @@ -20,7 +21,7 @@ public abstract class SkyScatterFeature extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { if (!world.isEmptyBlock(blockPos)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java index bbc6fc6e..fc002201 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantFeature.java @@ -8,6 +8,7 @@ import ru.bclib.blocks.BaseDoublePlantBlock; import ru.bclib.util.BlocksHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public class UnderwaterPlantFeature extends UnderwaterPlantScatter { private final Block plant; @@ -18,12 +19,12 @@ public class UnderwaterPlantFeature extends UnderwaterPlantScatter { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return super.canSpawn(world, blockPos) && plant.canSurvive(plant.defaultBlockState(), world, blockPos); } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { if (plant instanceof BaseDoublePlantBlock) { int rot = random.nextInt(4); BlockState state = plant.defaultBlockState().setValue(BaseDoublePlantBlock.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 35c3ae9e..432bce87 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java @@ -7,6 +7,7 @@ import net.minecraft.world.level.block.Blocks; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class UnderwaterPlantScatter extends ScatterFeature { public UnderwaterPlantScatter(int radius) { @@ -23,7 +24,7 @@ public abstract class UnderwaterPlantScatter extends ScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { return world.getBlockState(blockPos).is(Blocks.WATER); } diff --git a/src/main/java/ru/betterend/world/features/VineFeature.java b/src/main/java/ru/betterend/world/features/VineFeature.java index 366fbee6..94646ef3 100644 --- a/src/main/java/ru/betterend/world/features/VineFeature.java +++ b/src/main/java/ru/betterend/world/features/VineFeature.java @@ -10,6 +10,7 @@ import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.util.BlocksHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public class VineFeature extends InvertedScatterFeature { private final Block vineBlock; @@ -24,13 +25,13 @@ public class VineFeature extends InvertedScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos center, BlockPos blockPos, float radius) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos center, BlockPos blockPos, float radius) { BlockState state = world.getBlockState(blockPos); return state.getMaterial().isReplaceable() && canPlaceBlock(state, world, blockPos); } @Override - public void generate(WorldGenLevel world, Random random, BlockPos blockPos) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos blockPos) { int h = BlocksHelper.downRay(world, blockPos, random.nextInt(maxLength)) - 1; if (h > 2) { BlockState top = getTopState(); diff --git a/src/main/java/ru/betterend/world/features/WallPlantFeature.java b/src/main/java/ru/betterend/world/features/WallPlantFeature.java index 00e346d1..880c7c91 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantFeature.java @@ -11,6 +11,7 @@ import ru.bclib.blocks.BaseWallPlantBlock; import ru.bclib.util.BlocksHelper; import java.util.Random; +import net.minecraft.util.RandomSource; public class WallPlantFeature extends WallScatterFeature { private final Block block; @@ -21,7 +22,7 @@ public class WallPlantFeature extends WallScatterFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos pos, Direction dir) { if (block instanceof BaseWallPlantBlock) { BlockState state = block.defaultBlockState().setValue(BaseWallPlantBlock.FACING, dir); return block.canSurvive(state, world, pos); @@ -34,7 +35,7 @@ public class WallPlantFeature extends WallScatterFeature { } @Override - public void generate(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { + public void generate(WorldGenLevel world, RandomSource random, BlockPos pos, Direction dir) { BlockState state = block.defaultBlockState(); if (block instanceof BaseWallPlantBlock) { state = state.setValue(BaseWallPlantBlock.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 ddbe8993..19fb3bea 100644 --- a/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java +++ b/src/main/java/ru/betterend/world/features/WallPlantOnLogFeature.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import java.util.Random; +import net.minecraft.util.RandomSource; public class WallPlantOnLogFeature extends WallPlantFeature { public WallPlantOnLogFeature(Block block, int radius) { @@ -15,7 +16,7 @@ public class WallPlantOnLogFeature extends WallPlantFeature { } @Override - public boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir) { + public boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos pos, Direction dir) { BlockPos blockPos = pos.relative(dir.getOpposite()); BlockState blockState = world.getBlockState(blockPos); return blockState.is(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 ea32e39b..97f6f73a 100644 --- a/src/main/java/ru/betterend/world/features/WallScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/WallScatterFeature.java @@ -12,6 +12,7 @@ import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class WallScatterFeature extends DefaultFeature { private static final Direction[] DIR = BlocksHelper.makeHorizontal(); @@ -21,13 +22,13 @@ public abstract class WallScatterFeature extends DefaultFeature { this.radius = radius; } - public abstract boolean canGenerate(WorldGenLevel world, Random random, BlockPos pos, Direction dir); + public abstract boolean canGenerate(WorldGenLevel world, RandomSource random, BlockPos pos, Direction dir); - public abstract void generate(WorldGenLevel world, Random random, BlockPos pos, Direction dir); + public abstract void generate(WorldGenLevel world, RandomSource random, BlockPos pos, Direction dir); @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int maxY = world.getHeight(Heightmap.Types.WORLD_SURFACE, center.getX(), center.getZ()); @@ -60,7 +61,7 @@ public abstract class WallScatterFeature extends DefaultFeature { return true; } - private void shuffle(Random random) { + private void shuffle(RandomSource random) { for (int i = 0; i < 4; i++) { int j = random.nextInt(4); Direction d = DIR[i]; 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 344d9b5d..c39b4ad8 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java @@ -22,6 +22,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class BushFeature extends DefaultFeature { @@ -36,7 +37,7 @@ public class BushFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES) && !world.getBlockState(pos.above()) 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 0708463a..8630fa4b 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java @@ -23,6 +23,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class BushWithOuterFeature extends DefaultFeature { @@ -40,7 +41,7 @@ public class BushWithOuterFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES) && !world.getBlockState(pos.above()) 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 f8698751..ff59b7fd 100644 --- a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java @@ -16,11 +16,12 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class LargeAmaranitaFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) 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 a02a96e7..bc01148e 100644 --- a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java +++ b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java @@ -16,11 +16,12 @@ import ru.betterend.blocks.LumecornBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class Lumecorn extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) 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 e12de794..ccbcc19e 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -28,6 +28,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class TenaneaBushFeature extends DefaultFeature { @@ -39,7 +40,7 @@ public class TenaneaBushFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; diff --git a/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java b/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java index dc7b15c5..47930fe9 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java @@ -20,6 +20,7 @@ import ru.betterend.noise.OpenSimplexNoise; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class ArchFeature extends DefaultFeature { @@ -35,7 +36,7 @@ public class ArchFeature extends DefaultFeature { public boolean place(FeaturePlaceContext featurePlaceContext) { final WorldGenLevel world = featurePlaceContext.level(); BlockPos origin = featurePlaceContext.origin(); - Random random = featurePlaceContext.random(); + RandomSource random = featurePlaceContext.random(); BlockPos pos = getPosOnSurfaceWG( world, 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 bbef945f..a5fcf4b8 100644 --- a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java @@ -16,11 +16,12 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class BigAuroraCrystalFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int maxY = pos.getY() + BlocksHelper.upRay(world, pos, 16); diff --git a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java index 4088bf47..94205525 100644 --- a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java @@ -20,6 +20,7 @@ import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; public class DesertLakeFeature extends DefaultFeature { private static final BlockState END_STONE = Blocks.END_STONE.defaultBlockState(); @@ -29,7 +30,7 @@ public class DesertLakeFeature extends DefaultFeature { public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); double radius = MHelper.randRange(8.0, 15.0, random); 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 86b52b03..60a3cdc4 100644 --- a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java @@ -20,6 +20,7 @@ import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; public class EndLakeFeature extends DefaultFeature { private static final BlockState END_STONE = Blocks.END_STONE.defaultBlockState(); @@ -31,7 +32,7 @@ public class EndLakeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { final MutableBlockPos POS = GlobalState.stateForThread().POS; - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); double radius = MHelper.randRange(10.0, 20.0, random); 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 73190f08..7845af76 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java @@ -20,11 +20,12 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class FallenPillarFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); pos = getPosOnSurface( 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 632b5101..b6fbe382 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FloatingSpireFeature.java @@ -21,11 +21,12 @@ import ru.betterend.world.biome.EndBiome; import java.util.List; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; public class FloatingSpireFeature extends SpireFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); final ChunkGenerator chunkGenerator = featureConfig.chunkGenerator(); 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 36bb5819..5eda1a8c 100644 --- a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java @@ -39,6 +39,7 @@ import ru.betterend.util.BlockFixer; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class GeyserFeature extends DefaultFeature { @@ -49,7 +50,7 @@ public class GeyserFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final WorldGenLevel world = featureConfig.level(); final BlockPos pos = getPosOnSurfaceWG(world, featureConfig.origin()); final ChunkGenerator chunkGenerator = featureConfig.chunkGenerator(); 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 fa5b1618..018e7c6a 100644 --- a/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/IceStarFeature.java @@ -18,6 +18,7 @@ import ru.betterend.registry.EndBlocks; import java.util.ArrayList; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class IceStarFeature extends DefaultFeature { private final float minSize; @@ -34,7 +35,7 @@ public class IceStarFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); float size = MHelper.randRange(minSize, maxSize, random); 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 890385f8..1be9cd43 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java @@ -18,11 +18,12 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class ObsidianBoulderFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); pos = getPosOnSurface( @@ -45,7 +46,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { return true; } - private void makeBoulder(WorldGenLevel world, BlockPos pos, Random random) { + private void makeBoulder(WorldGenLevel world, BlockPos pos, RandomSource random) { if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return; } 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 f56b89c8..51bf8aca 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java @@ -22,11 +22,12 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class ObsidianPillarBasementFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); pos = getPosOnSurface( 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 9a253f40..73f060a6 100644 --- a/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/OreLayerFeature.java @@ -15,6 +15,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import java.util.Random; +import net.minecraft.util.RandomSource; public class OreLayerFeature extends DefaultFeature { private static final SDFSphere SPHERE; @@ -36,7 +37,7 @@ public class OreLayerFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); float radius = this.radius * 0.5F; 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 d98dd712..d78fd62f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java @@ -12,6 +12,7 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; import java.util.Random; +import net.minecraft.util.RandomSource; public class SingleBlockFeature extends DefaultFeature { private final Block block; @@ -22,7 +23,7 @@ public class SingleBlockFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.GEN_END_STONES)) { 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 a93b1367..54d6de82 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java @@ -14,11 +14,12 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class SmaragdantCrystalFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(CommonBlockTags.GEN_END_STONES)) { 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 7ffbc296..87594eed 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -28,6 +28,7 @@ import ru.betterend.world.biome.EndBiome; import java.util.List; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class SpireFeature extends DefaultFeature { @@ -35,7 +36,7 @@ public class SpireFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); final ChunkGenerator chunkGenerator = featureConfig.chunkGenerator(); @@ -90,7 +91,7 @@ public class SpireFeature extends DefaultFeature { return true; } - protected SDF addSegment(SDF sdf, float radius, Random random) { + protected SDF addSegment(SDF sdf, float radius, RandomSource random) { SDF sphere = new SDFSphere().setRadius(radius).setBlock(Blocks.END_STONE); SDF offseted = new SDFTranslate().setTranslate(0, radius + random.nextFloat() * 0.25F * radius, 0) .setSource(sdf); 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 a4e8a510..c7e9367e 100644 --- a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java @@ -15,6 +15,7 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; import java.util.Random; +import net.minecraft.util.RandomSource; public class StalactiteFeature extends DefaultFeature { private final boolean ceiling; @@ -29,7 +30,7 @@ public class StalactiteFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!isGround(world.getBlockState(ceiling ? pos.above() : pos.below()).getBlock())) { 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 6f331805..aff59889 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphurHillFeature.java @@ -16,11 +16,12 @@ import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class SulphurHillFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); pos = getPosOnSurfaceWG(world, pos); @@ -42,7 +43,7 @@ public class SulphurHillFeature extends DefaultFeature { return true; } - private void makeCircle(WorldGenLevel world, BlockPos pos, OpenSimplexNoise noise, Random random) { + private void makeCircle(WorldGenLevel world, BlockPos pos, OpenSimplexNoise noise, RandomSource 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 93141653..08abdc46 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java @@ -23,6 +23,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlockFixer; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; public class SulphuricCaveFeature extends DefaultFeature { @@ -32,7 +33,7 @@ public class SulphuricCaveFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); int radius = MHelper.randRange(10, 30, random); @@ -189,7 +190,7 @@ public class SulphuricCaveFeature extends DefaultFeature { .equals(Material.WATER_PLANT) || state.getMaterial().equals(Material.LEAVES); } - private void placeBrimstone(WorldGenLevel world, BlockPos pos, Random random) { + private void placeBrimstone(WorldGenLevel world, BlockPos pos, RandomSource random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); if (state.getValue(EndBlockProperties.ACTIVE)) { @@ -206,7 +207,7 @@ public class SulphuricCaveFeature extends DefaultFeature { return EndBlocks.BRIMSTONE.defaultBlockState(); } - private void makeShards(WorldGenLevel world, BlockPos pos, Random random) { + private void makeShards(WorldGenLevel world, BlockPos pos, RandomSource 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 47dde6d6..cfd79072 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -21,6 +21,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; public class SulphuricLakeFeature extends DefaultFeature { @@ -36,7 +37,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return false; } - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final MutableBlockPos POS = GlobalState.stateForThread().POS; double radius = MHelper.randRange(10.0, 20.0, random); int dist2 = MHelper.floor(radius * 1.5); @@ -179,7 +180,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return true; } - private void placeBrimstone(WorldGenLevel world, BlockPos pos, Random random) { + private void placeBrimstone(WorldGenLevel world, BlockPos pos, RandomSource random) { BlockState state = getBrimstone(world, pos); BlocksHelper.setWithoutUpdate(world, pos, state); if (state.getValue(EndBlockProperties.ACTIVE)) { @@ -196,7 +197,7 @@ public class SulphuricLakeFeature extends DefaultFeature { return EndBlocks.BRIMSTONE.defaultBlockState(); } - private void makeShards(WorldGenLevel world, BlockPos pos, Random random) { + private void makeShards(WorldGenLevel world, BlockPos pos, RandomSource 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 1e6dffa4..9e9e72fe 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java @@ -14,11 +14,12 @@ import ru.betterend.blocks.HydrothermalVentBlock; import ru.betterend.registry.EndBlocks; import java.util.Random; +import net.minecraft.util.RandomSource; public class SurfaceVentFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); pos = getPosOnSurface( diff --git a/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java b/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java index 3b6c6599..72fc60b9 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java @@ -21,6 +21,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import java.util.Random; +import net.minecraft.util.RandomSource; public class ThinArchFeature extends DefaultFeature { private Block block; @@ -33,7 +34,7 @@ public class ThinArchFeature extends DefaultFeature { public boolean place(FeaturePlaceContext featurePlaceContext) { final WorldGenLevel world = featurePlaceContext.level(); BlockPos origin = featurePlaceContext.origin(); - Random random = featurePlaceContext.random(); + RandomSource random = featurePlaceContext.random(); BlockPos pos = getPosOnSurfaceWG(world, new BlockPos((origin.getX() & 0xFFFFFFF0) | 7, 0, (origin.getZ() & 0xFFFFFFF0) | 7)); if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { 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 8aa761da..9ff9719e 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 @@ -18,6 +18,7 @@ import ru.betterend.world.biome.cave.EndCaveBiome; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; import java.util.function.Supplier; @@ -30,7 +31,7 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); Set floorPositions = Sets.newHashSet(); @@ -105,7 +106,7 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { } } - protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, RandomSource random, BlockState surfaceBlock) { float density = biome.getFloorDensity(); floorPositions.forEach((pos) -> { BlocksHelper.setWithoutUpdate(world, pos, surfaceBlock); @@ -118,7 +119,7 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { }); } - protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, Random random) { + protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, RandomSource random) { float density = biome.getCeilDensity(); ceilPositions.forEach((pos) -> { BlockState ceilBlock = biome.getCeil(pos); 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 c1654f6d..2bcad4fe 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 @@ -29,6 +29,7 @@ import ru.betterend.world.biome.cave.EndCaveBiome; import java.util.List; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; public abstract class EndCaveFeature extends DefaultFeature { @@ -39,7 +40,7 @@ public abstract class EndCaveFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (pos.getX() * pos.getX() + pos.getZ() * pos.getZ() <= 2500) { @@ -88,9 +89,9 @@ public abstract class EndCaveFeature extends DefaultFeature { return true; } - protected abstract Set generate(WorldGenLevel world, BlockPos center, int radius, Random random); + protected abstract Set generate(WorldGenLevel world, BlockPos center, int radius, RandomSource random); - protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, RandomSource random, BlockState surfaceBlock) { float density = biome.getFloorDensity(); floorPositions.forEach((pos) -> { if (!surfaceBlock.is(Blocks.END_STONE)) { @@ -105,7 +106,7 @@ public abstract class EndCaveFeature extends DefaultFeature { }); } - protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, Random random) { + protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, RandomSource random) { float density = biome.getCeilDensity(); ceilPositions.forEach((pos) -> { BlockState ceilBlock = biome.getCeil(pos); @@ -121,7 +122,7 @@ public abstract class EndCaveFeature extends DefaultFeature { }); } - protected void placeWalls(WorldGenLevel world, EndCaveBiome biome, Set positions, Random random) { + protected void placeWalls(WorldGenLevel world, EndCaveBiome biome, Set positions, RandomSource random) { Set placed = Sets.newHashSet(); positions.forEach(pos -> { if (random.nextInt(4) == 0 && hasOpenSide(pos, positions)) { @@ -157,7 +158,7 @@ public abstract class EndCaveFeature extends DefaultFeature { BiomeAPI.setBiome(world, pos, biome.getActualBiome()); } - private BlockPos findPos(WorldGenLevel world, BlockPos pos, int radius, Random random) { + private BlockPos findPos(WorldGenLevel world, BlockPos pos, int radius, RandomSource random) { int top = world.getHeight(Heightmap.Types.WORLD_SURFACE_WG, pos.getX(), pos.getZ()); MutableBlockPos bpos = new MutableBlockPos(); bpos.setX(pos.getX()); 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 98aea791..d193cf80 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 @@ -12,12 +12,13 @@ import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; import java.util.stream.IntStream; public class RoundCaveFeature extends EndCaveFeature { @Override - protected Set generate(WorldGenLevel world, BlockPos center, int radius, Random random) { + protected Set generate(WorldGenLevel world, BlockPos center, int radius, RandomSource random) { OpenSimplexNoise noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ())); int x1 = center.getX() - radius - 5; 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 196e48a8..855c4ff5 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 @@ -13,6 +13,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.levelgen.Heightmap.Types; +import net.minecraft.world.level.levelgen.LegacyRandomSource; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; @@ -28,11 +29,12 @@ import ru.betterend.world.biome.cave.EndCaveBiome; import java.util.Map; import java.util.Optional; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.Set; import java.util.stream.IntStream; public class TunelCaveFeature extends EndCaveFeature { - private Set generate(WorldGenLevel world, BlockPos center, Random random) { + private Set generate(WorldGenLevel world, BlockPos center, RandomSource random) { int cx = center.getX() >> 4; int cz = center.getZ() >> 4; if ((long) cx * (long) cx + (long) cz + (long) cz < 256) { @@ -44,7 +46,7 @@ public class TunelCaveFeature extends EndCaveFeature { int x2 = x1 + 16; int z2 = z1 + 16; - Random rand = new Random(world.getSeed()); + RandomSource rand = new LegacyRandomSource(world.getSeed()); OpenSimplexNoise noiseH = new OpenSimplexNoise(rand.nextInt()); OpenSimplexNoise noiseV = new OpenSimplexNoise(rand.nextInt()); OpenSimplexNoise noiseD = new OpenSimplexNoise(rand.nextInt()); @@ -113,7 +115,7 @@ public class TunelCaveFeature extends EndCaveFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (pos.getX() * pos.getX() + pos.getZ() * pos.getZ() <= 2500) { @@ -183,12 +185,12 @@ public class TunelCaveFeature extends EndCaveFeature { } @Override - protected Set generate(WorldGenLevel world, BlockPos center, int radius, Random random) { + protected Set generate(WorldGenLevel world, BlockPos center, int radius, RandomSource random) { return null; } @Override - protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, Random random, BlockState surfaceBlock) { + protected void placeFloor(WorldGenLevel world, EndCaveBiome biome, Set floorPositions, RandomSource random, BlockState surfaceBlock) { float density = biome.getFloorDensity() * 0.2F; floorPositions.forEach((pos) -> { if (!surfaceBlock.is(Blocks.END_STONE)) { @@ -204,7 +206,7 @@ public class TunelCaveFeature extends EndCaveFeature { } @Override - protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, Random random) { + protected void placeCeil(WorldGenLevel world, EndCaveBiome biome, Set ceilPositions, RandomSource random) { float density = biome.getCeilDensity() * 0.2F; ceilPositions.forEach((pos) -> { BlockState ceilBlock = biome.getCeil(pos); 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 baf18b68..405c2a1d 100644 --- a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java @@ -30,6 +30,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class DragonTreeFeature extends DefaultFeature { @@ -43,7 +44,7 @@ public class DragonTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; @@ -77,7 +78,7 @@ public class DragonTreeFeature extends DefaultFeature { return true; } - private void makeCap(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { + private void makeCap(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, OpenSimplexNoise noise) { int count = (int) radius; int offset = (int) (BRANCH.get(BRANCH.size() - 1).y() * radius); for (int i = 0; i < count; i++) { @@ -102,7 +103,7 @@ public class DragonTreeFeature extends DefaultFeature { leavesBall(world, pos.above(offset), radius * 1.15F + 2, random, noise); } - private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, RandomSource random) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; @@ -118,7 +119,7 @@ public class DragonTreeFeature extends DefaultFeature { } } - private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.DRAGON_TREE_LEAVES.defaultBlockState() .setValue(LeavesBlock.DISTANCE, 6)); 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 71a31ca2..3bf4e43f 100644 --- a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java @@ -24,6 +24,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class GiganticAmaranitaFeature extends DefaultFeature { @@ -33,7 +34,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; 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 50829f04..9640d0e9 100644 --- a/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/HelixTreeFeature.java @@ -27,6 +27,7 @@ import ru.betterend.registry.EndBlocks; import java.util.ArrayList; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class HelixTreeFeature extends DefaultFeature { @@ -34,7 +35,7 @@ public class HelixTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; 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 e8efe5d0..df5ef0f7 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -26,6 +26,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class JellyshroomFeature extends DefaultFeature { @@ -34,7 +35,7 @@ public class JellyshroomFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; @@ -80,7 +81,7 @@ public class JellyshroomFeature extends DefaultFeature { return true; } - private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, BlockState wood) { int count = (int) (radius * 3.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; @@ -96,7 +97,7 @@ public class JellyshroomFeature extends DefaultFeature { } } - private SDF makeCap(float radius, Random random, BlockState cap) { + private SDF makeCap(float radius, RandomSource random, BlockState cap) { SDF sphere = new SDFSphere().setRadius(radius).setBlock(cap); SDF sub = new SDFTranslate().setTranslate(0, -4, 0).setSource(sphere); sphere = new SDFSubtraction().setSourceA(sphere).setSourceB(sub); 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 5703ab84..475804ad 100644 --- a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java @@ -27,6 +27,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class LacugroveFeature extends DefaultFeature { @@ -36,7 +37,7 @@ public class LacugroveFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; @@ -113,7 +114,7 @@ public class LacugroveFeature extends DefaultFeature { return true; } - private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.LACUGROVE_LEAVES.defaultBlockState() .setValue(LeavesBlock.DISTANCE, 6)); 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 373f6bb0..a83d9f39 100644 --- a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java @@ -32,6 +32,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class LucerniaFeature extends DefaultFeature { @@ -43,7 +44,7 @@ public class LucerniaFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); final NoneFeatureConfiguration config = featureConfig.config(); @@ -71,7 +72,7 @@ public class LucerniaFeature extends DefaultFeature { return true; } - private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise, boolean natural) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, OpenSimplexNoise noise, boolean natural) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.LUCERNIA_LEAVES.defaultBlockState() .setValue(LeavesBlock.DISTANCE, 6)); @@ -177,7 +178,7 @@ public class LucerniaFeature extends DefaultFeature { }); } - private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, RandomSource 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 99b65c3a..24630ce9 100644 --- a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java @@ -32,6 +32,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class MossyGlowshroomFeature extends DefaultFeature { @@ -48,7 +49,7 @@ public class MossyGlowshroomFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); BlockState down = world.getBlockState(blockPos.below()); 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 17aaac08..1e4ced9a 100644 --- a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java @@ -26,6 +26,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class PythadendronTreeFeature extends DefaultFeature { @@ -35,7 +36,7 @@ public class PythadendronTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (world.getBlockState(pos.below()).getBlock() != EndBlocks.CHORUS_NYLIUM) { @@ -72,7 +73,7 @@ public class PythadendronTreeFeature extends DefaultFeature { return true; } - private void branch(float x, float y, float z, float size, float angle, Random random, int depth, WorldGenLevel world, BlockPos pos) { + private void branch(float x, float y, float z, float size, float angle, RandomSource random, int depth, WorldGenLevel world, BlockPos pos) { if (depth == 0) return; float dx = (float) Math.cos(angle) * size * 0.15F; @@ -132,7 +133,7 @@ public class PythadendronTreeFeature extends DefaultFeature { } } - private void leavesBall(WorldGenLevel world, BlockPos pos, Random random, OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, RandomSource random, OpenSimplexNoise noise) { float radius = MHelper.randRange(4.5F, 6.5F, random); SDF sphere = new SDFSphere().setRadius(radius) 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 e8c4492e..d862f7b5 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -31,6 +31,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class TenaneaFeature extends DefaultFeature { @@ -41,7 +42,7 @@ public class TenaneaFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); if (!world.getBlockState(pos.below()).is(BlockTags.NYLIUM)) return false; @@ -66,7 +67,7 @@ public class TenaneaFeature extends DefaultFeature { return true; } - private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, Random random, OpenSimplexNoise noise) { + private void leavesBall(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, OpenSimplexNoise noise) { SDF sphere = new SDFSphere().setRadius(radius) .setBlock(EndBlocks.TENANEA_LEAVES.defaultBlockState() .setValue(LeavesBlock.DISTANCE, 6)); 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 af0ef623..3dc87359 100644 --- a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java @@ -32,6 +32,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Function; public class UmbrellaTreeFeature extends DefaultFeature { @@ -41,7 +42,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); + final RandomSource random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); final NoneFeatureConfiguration config = featureConfig.config(); @@ -149,7 +150,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { return true; } - private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, Random random, BlockState wood) { + private void makeRoots(WorldGenLevel world, BlockPos pos, float radius, RandomSource random, BlockState wood) { int count = (int) (radius * 1.5F); for (int i = 0; i < count; i++) { float angle = (float) i / (float) count * MHelper.PI2; @@ -165,7 +166,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { } } - private SDF makeMembrane(WorldGenLevel world, float radius, Random random, BlockState membrane, BlockState center) { + private SDF makeMembrane(WorldGenLevel world, float radius, RandomSource 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); diff --git a/src/main/java/ru/betterend/world/generator/IslandLayer.java b/src/main/java/ru/betterend/world/generator/IslandLayer.java index 94e7fcb1..8917b275 100644 --- a/src/main/java/ru/betterend/world/generator/IslandLayer.java +++ b/src/main/java/ru/betterend/world/generator/IslandLayer.java @@ -2,6 +2,9 @@ package ru.betterend.world.generator; import com.google.common.collect.Maps; import net.minecraft.core.BlockPos; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.levelgen.LegacyRandomSource; + import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFRadialNoiseMap; import ru.bclib.sdf.operator.SDFScale; @@ -15,9 +18,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Random; +import net.minecraft.util.RandomSource; public class IslandLayer { - private static final Random RANDOM = new Random(); + private static final RandomSource RANDOM = new LegacyRandomSource(MHelper.RANDOM.nextLong()); private final SDFRadialNoiseMap noise; private final SDF island; diff --git a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java index afe82b9c..f2205694 100644 --- a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java +++ b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java @@ -14,6 +14,9 @@ import java.awt.Point; import java.util.List; import java.util.Map; import java.util.Random; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.levelgen.LegacyRandomSource; + import java.util.concurrent.locks.ReentrantLock; public class TerrainGenerator { @@ -34,7 +37,7 @@ public class TerrainGenerator { private static Sampler sampler; public static void initNoise(long seed, BiomeSource biomeSource, Sampler sampler) { - Random random = new Random(seed); + RandomSource random = new LegacyRandomSource(seed); largeIslands = new IslandLayer(random.nextInt(), GeneratorOptions.bigOptions); mediumIslands = new IslandLayer(random.nextInt(), GeneratorOptions.mediumOptions); smallIslands = new IslandLayer(random.nextInt(), GeneratorOptions.smallOptions); 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 54cf4d2e..52a702ee 100644 --- a/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java @@ -13,11 +13,12 @@ import net.minecraft.world.level.levelgen.structure.pieces.PieceGeneratorSupplie import net.minecraft.world.level.levelgen.structure.pieces.StructurePiecesBuilder; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import ru.bclib.util.StructureHelper; -import ru.bclib.world.structures.BCLStructureFeature; +import ru.bclib.world.structures.BCLStructure; import ru.betterend.BetterEnd; import ru.betterend.world.structures.piece.NBTPiece; import java.util.Random; +import net.minecraft.util.RandomSource; public class EternalPortalStructure extends FeatureBaseStructure { private static final ResourceLocation STRUCTURE_ID = BetterEnd.makeID("portal/eternal_portal"); @@ -31,7 +32,7 @@ public class EternalPortalStructure extends FeatureBaseStructure { } protected static boolean checkLocation(PieceGeneratorSupplier.Context context) { - if (!BCLStructureFeature.isValidBiome(context)) return false; + if (!BCLStructure.isValidBiome(context)) return false; final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); @@ -54,7 +55,7 @@ public class EternalPortalStructure extends FeatureBaseStructure { } protected static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 e40adc52..69e3d417 100644 --- a/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/FeatureBaseStructure.java @@ -7,14 +7,17 @@ import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.Heightmap; -import net.minecraft.world.level.levelgen.feature.StructureFeature; +import net.minecraft.world.level.levelgen.LegacyRandomSource; +import net.minecraft.world.level.levelgen.RandomState; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.levelgen.structure.pieces.PieceGeneratorSupplier; -import ru.bclib.world.structures.BCLStructureFeature; +import ru.bclib.world.structures.BCLStructure; import java.util.Random; +import net.minecraft.util.RandomSource; -public abstract class FeatureBaseStructure extends StructureFeature { +public abstract class FeatureBaseStructure extends Structure { protected static final BlockState AIR = Blocks.AIR.defaultBlockState(); public FeatureBaseStructure(PieceGeneratorSupplier pieceGeneratorSupplier) { @@ -22,12 +25,13 @@ public abstract class FeatureBaseStructure extends StructureFeature context) { - return getGenerationHeight(context.chunkPos(), context.chunkGenerator(), context.heightAccessor()) >= 20 && BCLStructureFeature.isValidBiome(context); + return getGenerationHeight(context.chunkPos(), context.chunkGenerator(), context.heightAccessor(), context.randomState()) >= 20 && BCLStructure.isValidBiome(context); } - private static int getGenerationHeight(ChunkPos chunkPos, ChunkGenerator chunkGenerator, LevelHeightAccessor levelHeightAccessor) { - Random random = new Random((long) (chunkPos.x + chunkPos.z * 10387313)); + private static int getGenerationHeight(ChunkPos chunkPos, ChunkGenerator chunkGenerator, LevelHeightAccessor levelHeightAccessor, RandomState rState) { + LegacyRandomSource random = new LegacyRandomSource((long) (chunkPos.x + chunkPos.z * 10387313)); Rotation blockRotation = Rotation.getRandom(random); + int i = 5; int j = 5; if (blockRotation == Rotation.CLOCKWISE_90) { @@ -43,14 +47,14 @@ public abstract class FeatureBaseStructure extends StructureFeature points = getFibonacciPoints(count); @@ -105,7 +106,7 @@ public class GiantIceStarStructure extends SDFStructureFeature { } public static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 691558b1..aa71e592 100644 --- a/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/GiantMossyGlowshroomStructure.java @@ -30,6 +30,7 @@ import ru.betterend.registry.EndBlocks; import java.util.List; import java.util.Random; +import net.minecraft.util.RandomSource; public class GiantMossyGlowshroomStructure extends SDFStructureFeature { public GiantMossyGlowshroomStructure() { @@ -40,7 +41,7 @@ public class GiantMossyGlowshroomStructure extends SDFStructureFeature { SDFStructureFeature.generatePieces(structurePiecesBuilder, context, GiantMossyGlowshroomStructure::getSDF); } - protected static SDF getSDF(BlockPos center, Random random) { + protected static SDF getSDF(BlockPos center, RandomSource random) { SDFCappedCone cone1 = new SDFCappedCone().setHeight(2.5F).setRadius1(1.5F).setRadius2(2.5F); SDFCappedCone cone2 = new SDFCappedCone().setHeight(3F).setRadius1(2.5F).setRadius2(13F); SDF posedCone2 = new SDFTranslate().setTranslate(0, 5, 0).setSource(cone2); 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 002cd504..7d5c9f73 100644 --- a/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MegaLakeSmallStructure.java @@ -15,6 +15,7 @@ import ru.bclib.util.MHelper; import ru.betterend.world.structures.piece.LakePiece; import java.util.Random; +import net.minecraft.util.RandomSource; public class MegaLakeSmallStructure extends FeatureBaseStructure { public MegaLakeSmallStructure() { @@ -25,7 +26,7 @@ public class MegaLakeSmallStructure extends FeatureBaseStructure { } protected static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 b8085376..1832c3d8 100644 --- a/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MegaLakeStructure.java @@ -15,6 +15,7 @@ import ru.bclib.util.MHelper; import ru.betterend.world.structures.piece.LakePiece; import java.util.Random; +import net.minecraft.util.RandomSource; public class MegaLakeStructure extends FeatureBaseStructure { @@ -27,7 +28,7 @@ public class MegaLakeStructure extends FeatureBaseStructure { } protected static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 0cfec310..e28f7de2 100644 --- a/src/main/java/ru/betterend/world/structures/features/MountainStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/MountainStructure.java @@ -15,6 +15,7 @@ import ru.bclib.util.MHelper; import ru.betterend.world.structures.piece.CrystalMountainPiece; import java.util.Random; +import net.minecraft.util.RandomSource; public class MountainStructure extends FeatureBaseStructure { @@ -26,7 +27,7 @@ public class MountainStructure extends FeatureBaseStructure { } protected static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 f9d97ac3..a3139e3b 100644 --- a/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/PaintedMountainStructure.java @@ -18,6 +18,7 @@ import ru.betterend.registry.EndBlocks; import ru.betterend.world.structures.piece.PaintedMountainPiece; import java.util.Random; +import net.minecraft.util.RandomSource; public class PaintedMountainStructure extends FeatureBaseStructure { private static final BlockState[] VARIANTS; @@ -30,7 +31,7 @@ public class PaintedMountainStructure extends FeatureBaseStructure { } protected static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 81af3526..81f0ce71 100644 --- a/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java +++ b/src/main/java/ru/betterend/world/structures/features/SDFStructureFeature.java @@ -14,6 +14,7 @@ import ru.bclib.util.MHelper; import ru.betterend.world.structures.piece.VoxelPiece; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.BiFunction; public abstract class SDFStructureFeature extends FeatureBaseStructure { @@ -25,7 +26,7 @@ public abstract class SDFStructureFeature extends FeatureBaseStructure { } public static void generatePieces(StructurePiecesBuilder structurePiecesBuilder, PieceGenerator.Context context, BiFunction sdf) { - final Random random = context.random(); + final RandomSource random = context.random(); final ChunkPos chunkPos = context.chunkPos(); final ChunkGenerator chunkGenerator = context.chunkGenerator(); final LevelHeightAccessor levelHeightAccessor = context.heightAccessor(); 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 bee561c0..fb5483dd 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java @@ -5,7 +5,7 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.chunk.ChunkGenerator; @@ -19,6 +19,7 @@ import ru.betterend.registry.EndStructures; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public class CavePiece extends BasePiece { private OpenSimplexNoise noise; @@ -40,7 +41,7 @@ public class CavePiece extends BasePiece { @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox 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 ad2070b6..c0886772 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java @@ -6,7 +6,7 @@ import net.minecraft.core.Holder; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Mth; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Blocks; @@ -26,11 +26,12 @@ import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; public class CrystalMountainPiece extends MountainPiece { private BlockState top; - public CrystalMountainPiece(BlockPos center, float radius, float height, Random random, Holder biome) { + public CrystalMountainPiece(BlockPos center, float radius, float height, RandomSource random, Holder biome) { super(EndStructures.MOUNTAIN_PIECE, center, radius, height, random, biome); top = EndBiome.findTopMaterial(biome.value()); //biome.getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); } @@ -46,7 +47,7 @@ public class CrystalMountainPiece extends MountainPiece { } @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getMinBlockX(); int sz = chunkPos.getMinBlockZ(); final MutableBlockPos pos = GlobalState.stateForThread().POS; @@ -143,7 +144,7 @@ public class CrystalMountainPiece extends MountainPiece { } } - private void crystal(ChunkAccess chunk, BlockPos pos, int radius, int height, float fill, Random random) { + private void crystal(ChunkAccess chunk, BlockPos pos, int radius, int height, float fill, RandomSource random) { MutableBlockPos mut = new MutableBlockPos(); int max = MHelper.floor(fill * radius + radius + 0.5F); height += pos.getY(); 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 c248c9b1..109211ac 100644 --- a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java @@ -11,7 +11,7 @@ import net.minecraft.nbt.NbtUtils; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Blocks; @@ -33,6 +33,7 @@ import ru.betterend.world.biome.EndBiome; import java.util.Map; import java.util.Random; +import net.minecraft.util.RandomSource; public class LakePiece extends BasePiece { private static final BlockState ENDSTONE = Blocks.END_STONE.defaultBlockState(); @@ -47,7 +48,7 @@ public class LakePiece extends BasePiece { private ResourceLocation biomeID; - public LakePiece(BlockPos center, float radius, float depth, Random random, Holder biome) { + public LakePiece(BlockPos center, float radius, float depth, RandomSource random, Holder biome) { super(EndStructures.LAKE_PIECE, random.nextInt(), null); this.center = center; this.radius = radius; @@ -85,7 +86,7 @@ public class LakePiece extends BasePiece { } @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int minY = this.boundingBox.minY(); int maxY = this.boundingBox.maxY(); int sx = SectionPos.sectionToBlockCoord(chunkPos.x); @@ -147,7 +148,7 @@ public class LakePiece extends BasePiece { fixWater(world, chunk, mut, random, sx, sz); } - private void fixWater(WorldGenLevel world, ChunkAccess chunk, MutableBlockPos mut, Random random, int sx, int sz) { + private void fixWater(WorldGenLevel world, ChunkAccess chunk, MutableBlockPos mut, RandomSource random, int sx, int sz) { int minY = this.boundingBox.minY(); int maxY = this.boundingBox.maxY(); for (int x = 0; x < 16; x++) { 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 afcd9e54..725353a7 100644 --- a/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/MountainPiece.java @@ -19,6 +19,7 @@ import ru.betterend.noise.OpenSimplexNoise; import java.util.Map; import java.util.Random; +import net.minecraft.util.RandomSource; public abstract class MountainPiece extends BasePiece { protected Map heightmap = Maps.newHashMap(); @@ -32,7 +33,7 @@ public abstract class MountainPiece extends BasePiece { protected int seed1; protected int seed2; - public MountainPiece(StructurePieceType type, BlockPos center, float radius, float height, Random random, Holder biome) { + public MountainPiece(StructurePieceType type, BlockPos center, float radius, float height, RandomSource random, Holder biome) { super(type, random.nextInt(), null); this.center = center; this.radius = radius; 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 9242bb5d..eb82ef96 100644 --- a/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/NBTPiece.java @@ -6,7 +6,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Mirror; import net.minecraft.world.level.block.Rotation; @@ -22,6 +22,7 @@ import ru.betterend.util.StructureErode; import ru.betterend.world.biome.EndBiome; import java.util.Random; +import net.minecraft.util.RandomSource; public class NBTPiece extends BasePiece { private ResourceLocation structureID; @@ -32,7 +33,7 @@ public class NBTPiece extends BasePiece { private int erosion; private boolean cover; - public NBTPiece(ResourceLocation structureID, StructureTemplate structure, BlockPos pos, int erosion, boolean cover, Random random) { + public NBTPiece(ResourceLocation structureID, StructureTemplate structure, BlockPos pos, int erosion, boolean cover, RandomSource random) { super(EndStructures.NBT_PIECE, random.nextInt(), null); this.structureID = structureID; this.structure = structure; @@ -72,7 +73,7 @@ public class NBTPiece extends BasePiece { } @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { BoundingBox bounds = BoundingBox.fromCorners(new Vec3i( blockBox.minX(), 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 9a467ea9..e922175c 100644 --- a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java @@ -7,7 +7,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.state.BlockState; @@ -22,11 +22,12 @@ import ru.betterend.registry.EndStructures; import ru.betterend.util.GlobalState; import java.util.Random; +import net.minecraft.util.RandomSource; public class PaintedMountainPiece extends MountainPiece { private BlockState[] slises; - public PaintedMountainPiece(BlockPos center, float radius, float height, Random random, Holder biome, BlockState[] slises) { + public PaintedMountainPiece(BlockPos center, float radius, float height, RandomSource random, Holder biome, BlockState[] slises) { super(EndStructures.PAINTED_MOUNTAIN_PIECE, center, radius, height, random, biome); this.slises = slises; } @@ -56,7 +57,7 @@ public class PaintedMountainPiece extends MountainPiece { } @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getMinBlockX(); int sz = chunkPos.getMinBlockZ(); final MutableBlockPos pos = GlobalState.stateForThread().POS; 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 ae7853c0..2eb3169a 100644 --- a/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/VoxelPiece.java @@ -3,7 +3,7 @@ package ru.betterend.world.structures.piece; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.StructureFeatureManager; +import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.structure.BoundingBox; @@ -12,6 +12,7 @@ import ru.bclib.world.structures.StructureWorld; import ru.betterend.registry.EndStructures; import java.util.Random; +import net.minecraft.util.RandomSource; import java.util.function.Consumer; public class VoxelPiece extends BasePiece { @@ -40,7 +41,7 @@ public class VoxelPiece extends BasePiece { } @Override - public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { + public void postProcess(WorldGenLevel world, StructureManager arg, ChunkGenerator chunkGenerator, RandomSource random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { this.world.placeChunk(world, chunkPos); } } diff --git a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java index 179b30cc..c03d266b 100644 --- a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java @@ -21,7 +21,7 @@ public class SplitNoiseCondition implements NumericProvider { public int getNumber(SurfaceRulesContextAccessor context) { final int x = context.getBlockX(); final int z = context.getBlockZ(); - float noise = (float) NOISE.eval(x * 0.1, z * 0.1) + MHelper.randRange(-0.4F, 0.4F, MHelper.RANDOM); + float noise = (float) NOISE.eval(x * 0.1, z * 0.1) + MHelper.randRange(-0.4F, 0.4F, MHelper.RANDOM_SOURCE); return noise > 0 ? 1 : 0; } diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java index 70159892..c42d30ae 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java @@ -21,7 +21,7 @@ public class SulphuricSurfaceNoiseCondition implements NumericProvider { public int getNumber(SurfaceRulesContextAccessor context) { final int x = context.getBlockX(); final int z = context.getBlockZ(); - final double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange(-0.1, 0.1, MHelper.RANDOM); + final double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange(-0.1, 0.1, MHelper.RANDOM_SOURCE); if (value < -0.6) return 0; if (value < -0.3) return 1; if (value < 0.5) return 2; diff --git a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java index 4cc3f8d7..18e55cfb 100644 --- a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java @@ -25,7 +25,7 @@ public class UmbraSurfaceNoiseCondition implements NumericProvider { } public static int getDepth(int x, int z) { - final double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange(-0.1, 0.1, MHelper.RANDOM); + final double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange(-0.1, 0.1, MHelper.RANDOM_SOURCE); if (value > 0.4) return 0; if (value > 0.15) return 1; if (value > -0.15) return 2;