提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 10.13.0.1207"を前提MODとしています。 |
オーバーワールドに独自のバイオームを追加するサンプルです。
MODのエントリーポイントを作成
- AddBiome.java
package sample; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.BiomeManager; @Mod(modid = AddBiome.MODID, name = AddBiome.MODNAME, version = AddBiome.VERSION) public class AddBiome { public static final String MODID = "AddBiome"; public static final String MODNAME = "AddBiome"; public static final String VERSION = "1.0.0"; // バイオームIDを指定 // ここでは決め打ちにしているが、他MODが追加するバイオームとIDが重複する可能性があるので、 // 設定ファイルで変更できるようにするか、自動的に割り振るようにするとよい public static int biome1ID = 40; public static int biome2ID = 41; public static int biome3ID = 42; public static int biome4ID = 43; @EventHandler public void preInit(FMLPreInitializationEvent event) { } @EventHandler public void init(FMLInitializationEvent event) { // 各種バイオームリストにバイオームを追加 // 2つ目の引数はバイオーム発生頻度の重み付け。大きいほど頻繁 // 独自のバイオーム。地表ブロックと地中ブロックがバニラとは異なる public static final BiomeGenBase biome1 = (new BiomeGenSample1(biome1ID)) .setColor(0xff0000) .setBiomeName("Sample1"); BiomeManager.desertBiomes.add(new BiomeManager.BiomeEntry(biome1, 10)); public static final BiomeGenBase biome2 = (new BiomeGenSample2(biome2ID)) .setColor(0x00ff00) .setBiomeName("Sample2"); BiomeManager.desertBiomes.add(new BiomeManager.BiomeEntry(biome1, 10)); public static final BiomeGenBase biome3 = (new BiomeGenSample3(biome3ID)) .setColor(0x00ff00) .setBiomeName("Sample3"); BiomeManager.warmBiomes.add(new BiomeManager.BiomeEntry(biome3, 10)); public static final BiomeGenBase biome4 = (new BiomeGenSample4(biome4ID)) .setColor(0xffff00) .setBiomeName("Sample4"); BiomeManager.coolBiomes.add(new BiomeManager.BiomeEntry(biome4, 10)); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
独自のバイオームを追加
- BiomeGenSample1 .java
地表ブロックがガラス、地中ブロックが作業台のバイオームです。
package sample; import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenDesert; public class BiomeGenSample1 extends BiomeGenDesert { public BiomeGenSample1(int p_i1986_1_) { super(p_i1986_1_); this.topBlock = Blocks.glass;//自作ブロックも可 this.fillerBlock = Blocks.crafting_table; } }
- BiomeGenSample2 .java
地表ブロックがかぼちゃ、地中ブロックが砂利のバイオームです。
package sample; import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenDesert; public class BiomeGenSample2 extends BiomeGenDesert { public BiomeGenSample2(int p_i1986_1_) { super(p_i1986_1_); this.topBlock = Blocks.pumpkin; this.fillerBlock = Blocks.dirt; } }
- BiomeGenSample3 .java
地表ブロックがネザーレンガ、地中ブロックがネザーラックのバイオームです。
package sample; import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenDesert; public class BiomeGenSample3 extends BiomeGenDesert { public BiomeGenSample3(int p_i1986_1_) { super(p_i1986_1_); this.topBlock = Blocks.nether_brick; this.fillerBlock = Blocks.netherrack; } }
- BiomeGenSample4 .java
地表ブロックがメロン、地中ブロックが粘土のバイオームです。
package sample; import net.minecraft.init.Blocks; import net.minecraft.world.biome.BiomeGenDesert; public class BiomeGenSample4 extends BiomeGenDesert { public BiomeGenSample4(int p_i1986_1_) { super(p_i1986_1_); this.topBlock = Blocks.melon_block; this.fillerBlock = Blocks.clay; } }