提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 10.12.0.xxx~"を前提MODとしています。 |
鉱石の生成
鉱石(ブロック)を自然生成します。 ブロックの追加は1.7のブロック追加を参照してください。
ソースコード
- SampleOreGen.java
/*パッケージ、インポートは省略*/ @Mod(modid = SampleOreGen.MOD_ID, name = SampleOreGen.MOD_NAME, version = SampleOreGen.MOD_VERSION) public class SampleOreGen { /*modid*/ public static final String MOD_ID = "sampleoregen"; /*modのバージョン*/ public static final String MOD_VERSION = "1.0.0"; /*modの名前*/ public static final String MOD_NAME = "Sample Ore Gen"; public static Block sample_ore; @EventHandler public void preInit(FMLPreInitializationEvent event) { sample_block = new SampleOre(); GameRegistry.registerBlock(sample_ore, "sample_ore"); } @EventHandler public void init(FMLInitializationEvent event) { MinecraftForge.ORE_GEN_BUS.register(this); } @SubscribeEvent public void generateOrePre(OreGenEvent.Pre event) { WorldGenerater sampleOreGen = new WorldGenMinable(SampleOreGen.sample_ore, 9); if (TerrainGen.generateOre(event.world, event.rand, sampleOreGen, event.worldX, event.worldZ, OreGenEvent.GenerateMinable.EventType.CUSTOM)) { genSampleOre(event.world, event.worldX, event.worldZ, 20, sampleOreGen, 0, 96, event.rand); } } protected void genSampleOre(World world, int worldX, int worldZ, int size, WorldGenerator generator, int minY, int maxY, Random rand) { int l; if (maxY < minY) { l = minY; minY = maxY; maxY = l; } else if (maxY == minY) { if (minY < 255) { ++maxY; } else { --minY; } } for (l = 0; l < size; ++l) { int X = worldX + rnd.nextInt(16); int Y = rnd.nextInt(maxY - minY) + minY; int Z = worldZ + rnd.nextInt(16); generator.generate(world, rnd, X, Y, Z) } } }
- SampleOre.java
/*パッケージ、インポートは省略*/ public class SampleOre extends Block { public SampleOre() { super(Material.rock); this.setCreativeTab(CreativeTabs.tabBlock); this.setBlockName("oreSample"); this.setBlockTextureName("sampleoregen:sample_ore"); } }