提供: Minecraft Modding Wiki
細 |
(MODで追加したブロックでもちゃんと生成するようソースを改変) |
||
33行目: | 33行目: | ||
public static int biome4ID = 43; | public static int biome4ID = 43; | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
@EventHandler | @EventHandler | ||
47行目: | 44行目: | ||
// 各種バイオームリストにバイオームを追加 | // 各種バイオームリストにバイオームを追加 | ||
// 2つ目の引数はバイオーム発生頻度の重み付け。大きいほど頻繁 | // 2つ目の引数はバイオーム発生頻度の重み付け。大きいほど頻繁 | ||
− | BiomeManager.desertBiomes.add(new BiomeManager.BiomeEntry(biome1, 10)); | + | // 独自のバイオーム。地表ブロックと地中ブロックがバニラとは異なる |
− | + | 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)); | ||
+ | |||
+ | |||
+ | |||
} | } | ||
73行目: | 89行目: | ||
public BiomeGenSample1(int p_i1986_1_) { | public BiomeGenSample1(int p_i1986_1_) { | ||
super(p_i1986_1_); | super(p_i1986_1_); | ||
− | this.topBlock = Blocks.glass; | + | this.topBlock = Blocks.glass;//自作ブロックも可 |
this.fillerBlock = Blocks.crafting_table; | this.fillerBlock = Blocks.crafting_table; | ||
} | } |
2016年3月19日 (土) 10:34時点における版
この記事は"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; } }