提供: Minecraft Modding Wiki
(ページを作成) |
|||
(同じ利用者による、間の1版が非表示) | |||
42行目: | 42行目: | ||
} | } | ||
+ | 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) | ||
+ | } | ||
+ | } | ||
} | } | ||
49行目: | 71行目: | ||
*SampleOre.java | *SampleOre.java | ||
<source lang="java"> | <source lang="java"> | ||
− | + | /*パッケージ、インポートは省略*/ | |
+ | public class SampleOre extends Block { | ||
+ | public SampleOre() { | ||
+ | super(Material.rock); | ||
+ | this.setCreativeTab(CreativeTabs.tabBlock); | ||
+ | this.setBlockName("oreSample"); | ||
+ | this.setBlockTextureName("sampleoregen:sample_ore"); | ||
+ | } | ||
+ | } | ||
</source> | </source> | ||
− | |||
− |
2021年9月15日 (水) 11:44時点における最新版
この記事は"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"); } }