提供: Minecraft Modding Wiki
この記事は"Minecraft Forge Universal 11.14.3.1450"を前提MODとしています。 |
オーバーワールドに独自のバイオームを追加するサンプルです。
基本的なことは1.7のものを流用しています。
※この方法では、あまり追加したバイオームが出現しません。情報提供を願います。
MODのエントリーポイントを作成
- AddBiome.java
package sample; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.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; // 独自のバイオーム。地表ブロックと地中ブロックがバニラとは異なる public static final BiomeGenBase biome1 = (new BiomeGenSample1(biome1ID)).setColor(0xff0000).setBiomeName("Sample1"); public static final BiomeGenBase biome2 = (new BiomeGenSample2(biome2ID)).setColor(0x00ff00).setBiomeName("Sample2"); public static final BiomeGenBase biome3 = (new BiomeGenSample3(biome3ID)).setColor(0x00ff00).setBiomeName("Sample3"); public static final BiomeGenBase biome4 = (new BiomeGenSample4(biome4ID)).setColor(0xffff00).setBiomeName("Sample4"); @EventHandler public void preInit(FMLPreInitializationEvent event) { } @EventHandler public void init(FMLInitializationEvent event) { // 各種バイオームリストにバイオームを追加 // 2つ目の引数はバイオーム発生頻度の重み付け。大きいほど頻繁 BiomeManager.addBiome(BiomeType.DESERT, new BiomeManager.BiomeEntry(biome1, 10)); BiomeManager.addBiome(BiomeType.ICY, new BiomeManager.BiomeEntry(biome2, 10)); BiomeManager.addBiome(BiomeType.WARM, new BiomeManager.BiomeEntry(biome3, 10)); BiomeManager.addBiome(BiomeType.COOL, 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.getDefaultState(); this.fillerBlock = Blocks.crafting_table.getDefaultState(); } }
- 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.getDefaultState(); this.fillerBlock = Blocks.gravel.getDefaultState(); } }
- 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.getDefaultState(); this.fillerBlock = Blocks.netherrack.getDefaultState(); } }
- 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.getDefaultState(); this.fillerBlock = Blocks.clay.getDefaultState(); } }