DarkShadow44

structure feature gen

Apr 22nd, 2021
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 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.util.math.ChunkSectionPos;
  16. import net.minecraft.world.StructureWorldAccess;
  17. import net.minecraft.world.gen.StructureAccessor;
  18. import net.minecraft.world.gen.chunk.ChunkGenerator;
  19. import net.minecraft.world.gen.chunk.StructureConfig;
  20. import net.minecraft.world.gen.feature.DefaultFeatureConfig;
  21. import net.minecraft.world.gen.feature.StructureFeature;
  22.  
  23. public class TechnicalBlocks implements ModInitializer {
  24.  
  25. @Override
  26. public void onInitialize() {
  27. CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
  28. dispatcher.register(CommandManager.literal("spawnfeature").executes(context -> {
  29.  
  30. ServerPlayerEntity player = context.getSource().getPlayer();
  31. ServerWorld world = (ServerWorld) player.getEntityWorld();
  32. BlockPos pos = player.getBlockPos();
  33. ChunkPos chunk = new ChunkPos(pos);
  34.  
  35. StructureAccessor accessor = world.getStructureAccessor();
  36. ChunkGenerator generator = world.getChunkManager().getChunkGenerator();
  37.  
  38. StructureFeature<DefaultFeatureConfig> feat = StructureFeature.DESERT_PYRAMID;
  39.  
  40. BlockBox box = BlockBox.create(pos.add(-100, -100, -100), pos.add(100, 100, 100));
  41.  
  42. StructureStart<?> structureStart = feat.getStructureStartFactory().create(feat, chunk, 1, 0);
  43. structureStart.init(world.getRegistryManager(), generator, world.getStructureManager(), chunk,
  44. world.getBiome(pos), null, null);
  45.  
  46. structureStart.generateStructure(world, accessor, generator, new Random(), box, chunk);
  47.  
  48. return 1;
  49. }));
  50. });
  51. }
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment