追加鉱物をワールドに生成させる

提供:Minecraft Modding Wiki
移動: 案内, 検索

[編集] ソース解説

この記事は"ModLoader"を前提MODとしています。

[編集] mod_generatingoreクラスを作成

mod_の後は適当に名前をつけています。 例として無駄にプラチナ鉱石を追加したサンプルです。

package net.minecraft.src;
 
import java.util.*;
 
public class mod_generatingOre extends BaseMod
{
 
	public static final Block blockPlatinum;
	public static final Item itemPlatinum;
	public static int blockPlatinumID;
	public static int itemPlatinumID;
 
	public mod_generatingOre()
	{
	}
 
	@Override
	public String getVersion() {
		return "1.23";
	}
 
	@Override
	public void load() {
		ModLoader.registerBlock(blockPlatinum);
		ModLoader.addName(blockPlatinum, "Platinum Ore");
		ModLoader.addName(itemPlatinum, "Platinum Ingot");
		/*
		 * Blockを釜戸で焼くと、インゴットになるよ!
		 */
		ModLoader.addSmelting(blockPlatinum.blockID, new ItemStack(itemPlatinum, 1, 0));
	}
 
	/*
	 * 鉱石を生成させるためにGenerateSurfaceメソッドを使います。
	 * 
	 * for(int i = 0; i < 5; i++)
	 * このfor文の「i < 5」はレアリティを指定しています。
	 * 石炭で20
	 * 
	 * int randomPosY = random.nextInt(20);
	 * ここでY軸の調整です。
	 * ここではY20以下で生成するという意味。
	 * 
	 * (new WorldGenMinable(mod_generatingOre.blockPlatinum.blockID, 2)).generate(world, random, randomPosX, randomPosY, randomPosZ);
	 * あとは、生成させる対象BlockIDを指定して、固まってる数を指定します。
	 * ここでは最大「2」です。
	 * 
	 */
	public void generateSurface(World world, Random random, int chunkX, int chunkZ)
	{
		for(int i = 0; i < 5; i++)
		{
			int randomPosX = chunkX + random.nextInt(16);
			int randomPosY = random.nextInt(20);
			int randomPosZ = chunkZ + random.nextInt(16);
			(new WorldGenMinable(mod_generatingOre.blockPlatinum.blockID, 2)).generate(world, random, randomPosX, randomPosY, randomPosZ);
		}
	}
 
	static
	{
		blockPlatinumID = 100;
		itemPlatinumID = 5000;
		blockPlatinum = new BlockPlatinum(blockPlatinumID, ModLoader.addOverride("/terrain.png", "/platinum/block.png"));
		blockPlatinum.setHardness(5F).setResistance(6F).setStepSound(Block.soundMetalFootstep).setBlockName("blockPlatinum");
 
		itemPlatinum = new Item(itemPlatinumID).setItemName("itemPlatinum");
		itemPlatinum.iconIndex = ModLoader.addOverride("/gui/items.png", "/platinum/item.png");
	}
 
 
}

コメント: 


  • ここのソースではかかれていないけどBlockPlatinumクラスを実装するときにやれる --122.197.139.45 2012年11月9日 (金) 00:50 (JST)

  • ダイアモンドのような鉱石を掘るとすぐに鉱石以外のアイテムをドロップさせるにはどうすれば良いのですか --123.227.102.221 2012年10月16日 (火) 14:33 (JST)
チュートリアル
個人用ツール