DarkShadow44

Untitled

Apr 22nd, 2021
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. package net.fabricmc.example;
  2.  
  3. import java.util.Random;
  4.  
  5. import net.fabricmc.api.ModInitializer;
  6. import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
  7. import net.minecraft.server.command.CommandManager;
  8. import net.minecraft.server.network.ServerPlayerEntity;
  9. import net.minecraft.server.world.ServerWorld;
  10. import net.minecraft.structure.StructurePiece;
  11. import net.minecraft.structure.StructureStart;
  12. import net.minecraft.util.math.BlockBox;
  13. import net.minecraft.util.math.BlockPos;
  14. import net.minecraft.util.math.ChunkPos;
  15. import net.minecraft.world.gen.StructureAccessor;
  16. import net.minecraft.world.gen.chunk.ChunkGenerator;
  17. import net.minecraft.world.gen.chunk.StructureConfig;
  18. import net.minecraft.world.gen.feature.DefaultFeatureConfig;
  19. import net.minecraft.world.gen.feature.StructureFeature;
  20.  
  21. public class TechnicalBlocks implements ModInitializer {
  22.  
  23. @Override
  24. public void onInitialize() {
  25. CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
  26. dispatcher.register(CommandManager.literal("spawnfeature").executes(context -> {
  27.  
  28. ServerPlayerEntity player = context.getSource().getPlayer();
  29. ServerWorld world = (ServerWorld) player.getEntityWorld();
  30. BlockPos pos = player.getBlockPos();
  31.  
  32. StructureAccessor accessor = world.getStructureAccessor();
  33. ChunkPos chunk = new ChunkPos(pos);
  34.  
  35. ChunkGenerator generator = world.getChunkManager().getChunkGenerator();
  36.  
  37. StructureFeature<DefaultFeatureConfig> feat = StructureFeature.DESERT_PYRAMID;
  38.  
  39. StructureConfig config = generator.getStructuresConfig().getForType(feat);
  40.  
  41. try {
  42.  
  43. BlockBox box = BlockBox.create(pos.getX(), pos.getY() - 5, pos.getZ(), pos.getX() + 30,
  44. pos.getY() + 5, pos.getZ() + 30);
  45.  
  46. StructureStart<?> structureStart = feat.getStructureStartFactory().create(feat, chunk.x, chunk.z,
  47. BlockBox.empty(), 1, 0);
  48. structureStart.init(world.getRegistryManager(), generator, world.getStructureManager(), chunk.x,
  49. chunk.z, world.getBiome(pos), null);
  50.  
  51. structureStart.generateStructure(world, accessor, generator, new Random(), box, new ChunkPos(pos));
  52.  
  53. for (StructurePiece child : structureStart.getChildren()) {
  54. child.generate(world, accessor, generator, new Random(), box, new ChunkPos(pos), pos);
  55. }
  56.  
  57. } catch (Exception e) {
  58. e.printStackTrace();
  59. }
  60. return 1;
  61. }));
  62. });
  63. }
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment