- 17
- 1
- 0
Структура обрезается на краях чанков вот таким вот способом: 
код самой структуры:

код самой структуры:
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;
}
}