Проблема с генерацией моей структуры

Версия Minecraft
1.18.2
API
Forge
17
1
0
Структура обрезается на краях чанков вот таким вот способом: 2022-05-27_15.21.06.png
код самой структуры:
Java:
public class FallenMeteorite extends Feature<NoneFeatureConfiguration>{
    public static FallenMeteorite FEATURE = null;
    public static Holder<ConfiguredFeature<NoneFeatureConfiguration, ?>> CONFIGURED_FEATURE = null;
    public static Holder<PlacedFeature> PLACED_FEATURE = null;

    public static Feature<?> feature() {
        FEATURE = new FallenMeteorite();
        CONFIGURED_FEATURE = FeatureUtils.register("magic_expansion:fallen_meteorite", FEATURE, FeatureConfiguration.NONE);
        PLACED_FEATURE = PlacementUtils.register("magic_expansion:fallen_meteorite", CONFIGURED_FEATURE, List.of(BiomeFilter.biome()));
        return FEATURE;
    }

    public static Holder<PlacedFeature> placedFeature() {
        return PLACED_FEATURE;
    }

    private final Set<ResourceKey<Level>> generate_dimensions = Set.of(Level.OVERWORLD);

    public FallenMeteorite() {
        super(NoneFeatureConfiguration.CODEC);
    }

    @Override
    public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> context) {

        if (!generate_dimensions.contains(context.level().getLevel().dimension()))
            return false;

        if (context.random().nextInt(300) == 1) {
            context.random().nextInt(10);

            int x = context.origin().getX() + context.random().nextInt(16);
            int y = 120;
            int z = context.origin().getZ() + context.random().nextInt(16);
            int radius = 20;
            long centre = radius / 2, squareDistance;
            long x1, y1, z1;

            for(x1 = centre - radius; x1 < centre + radius; x1++)
                for(y1 = centre - radius; y1 < centre + radius; y1++)
                    for(z1 = centre - radius; z1 < centre + radius; z1++) {
                        squareDistance = (x1 -centre) * (x1 -centre) + (y1-centre) * (y1-centre) + (z1-centre) * (z1-centre);
                        if(squareDistance <= (radius) * (radius))
                            context.level().setBlock(new BlockPos(x + x1, y + y1, z + z1), BlocksInit.METEORITE_BLOCK.get().defaultBlockState(), 1190);
                    }
        }
        return true;
    }
}
 
Назад
Сверху