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

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
{{前提MOD|reqmod="ModLoader"}}
 
ここは、[[木・苗木を追加する]]を理解した中級者向けのチュートリアルです。<br />
 
 
==概要==
 
==概要==
アイテムの入ったチェストを生成します。<br>
+
アイテムの入ったチェストを自動で生成するために、以下のクラスを使用します。
WorldGenerateについては[[木・苗木を追加する]]を参考にしてください。<br>
 
ここでは、generateSurfaceメソッドとWorldGeneratorを継承したクラスの中について解説します。<br>
 
<br>
 
ここでは、以下のクラスを使います。
 
;TileEntityChest
 
Chestの中身が保存されているクラス
 
;WorldGenerator
 
Worldに建造物などを生成するためのクラス
 
;World
 
説明しにくいので割合<br>
 
==Worldにチェストを生成する。==
 
;mod_Sample
 
<source lang="java">
 
package net.minecraft.src;
 
  
import java.util.Random;
+
;TileEntityChest:チェストを開くと出てくるアイテム欄です。
 +
;ItemStack:アイテム欄の1項目単位です。
  
public class mod_Sample extends BaseMod {
+
===TileEntityChestにItemStackをセット===
 +
次のコードでアイテム欄にレッドストーンダストと金ブロックをセットします。
 +
<source lang="java">
 +
TileEntityChest tEntity = new TileEntityChest();
 +
ItemStack redstoneStack = new ItemStack( Item.redstone, 15);  // 第2引数でアイテムの数を指定します。
 +
ItemStack goldStack = new ItemStack( Block.blockGold, 20);
 +
tEntity.setInventorySlotContents(0, redstoneStack);    // 第1引数はアイテム欄のスロット番号です。左上が0で、右方向に連番が振られています。
 +
tEntity.setInventorySlotContents(1, goldStack);
 +
</source>
  
@Override
+
===チェストをワールドに配置===
public String getVersion() {
+
まず何も入っていないチェストを置いてから、TileEntityChestを貼り付けてアイテムを格納します。
return "Sample";
+
<source lang="java">
}
+
world.setBlock(Xc, Yc, Zc, 54);
 +
world.setBlockTileEntity(Xc, Yc, Zc, tEntity);
 +
</source>
 +
変数world,Xc,Yc,Zcは各自で適切なものを用意してください。(world:チェストを置くワールド, (Xc,Yc,Zc):チェストを置く座標)
  
@Override
+
==コード全体==
public void load() {
+
<source lang="java">
 
+
TileEntityChest tEntity = new TileEntityChest();
}
+
ItemStack redstoneStack = new ItemStack( Item.redstone, 15);
 
+
ItemStack goldStack = new ItemStack( Block.blockGold, 20);
/*
+
tEntity.setInventorySlotContents(0, redstoneStack);
* (非 Javadoc)
+
tEntity.setInventorySlotContents(1, goldStack);
* @see net.minecraft.src.BaseMod#generateSurface(net.minecraft.src.World, java.util.Random, int, int)
+
world.setBlock(Xc, Yc, Zc, 54);
* ここの変数名や引数名は自分にあった使い方に変更してもいいです。
+
world.setBlockTileEntity(Xc, Yc, Zc, tEntity);
*/
 
 
 
@Override
 
public void generateSurface(World par1World,Random rand,int par2,int par3){
 
WorldGenSample var1 = new WorldGenSample(true);
 
var1.setScale(1, 1, 1);
 
int xPos = par2 + rand.nextInt(16);
 
int zPos = par3 + rand.nextInt(16);
 
int yPos = par1World.getHeightValue(xPos, zPos);
 
 
 
var1.generate(par1World, rand, xPos, yPos, zPos);
 
 
 
}
 
 
 
}
 
 
</source>
 
</source>
;WorldGenSample
 
<source lang="java">
 
package net.minecraft.src;
 
  
import java.util.Random;
+
[[Category:アイテムの配置]]
 
 
public class WorldGenSample extends WorldGenerator {
 
 
 
private boolean flag = false;
 
/*
 
* this.flagは変数名を意味します。
 
* this.flag = private boolean flag = false;の部分
 
* flag = 引数のboolean flag
 
*/
 
public WorldGenSample(boolean flag){
 
this.flag = flag;
 
}
 
 
 
@Override
 
public boolean generate(World par1World, Random rand, int par2, int par3,
 
int par4) {
 
//ここでTileEntityChestをキャストします。
 
TileEntityChest Chest;
 
//Chestを配置します。
 
par1World.setBlock(par2, par3, par4, Block.chest.blockID);
 
//TileEntityChest型変数にTileEntityをWorldクラスから取得し、代入します。
 
Chest = (TileEntityChest) par1World.getBlockTileEntity(par2, par3, par4);
 
if(Chest != null){//Null以外なら
 
//引数はスロット番号(-1),ItemStackです。
 
Chest.setInventorySlotContents(0, new ItemStack(Item.redstone));
 
}else{
 
//nullだったらコンソールに文字列を表示して知らせます。
 
System.out.println("== TileEntityChest=null ==");
 
}
 
return flag;
 
}
 
 
 
}
 
 
 
</source>
 

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート: