提供: Minecraft Modding Wiki
2016年2月10日 (水) 21:24時点におけるDefeatedcrow (トーク | 投稿記録)による版 (1.7でチェストにアイテムを入れるを1.7でのインベントリ操作へ移動: IInventoryの操作はチェストにもTileEntityにも限定したものではない。ということで、チュートリアルの作り直しをし...)
この記事は"Minecraft Forge Universal"を前提MODとしています。 |
この記事は http://forum.minecraftuser.jp/viewtopic.php?f=39&t=29948 での質問の結果を流用しており、
コード内のコメントを削除されていて、解説として不適切です。
修正されるまで参考にしないで下さい。
チェストにアイテムを入れる
今回は右クリックされると、一つ上のチェスト(インベントリを持つTileEntity) にアイテムを入れる。
package sample; //import省略 public class chestinitem extends Block { @SideOnly(Side.CLIENT) private IIcon TopIcon; @SideOnly(Side.CLIENT) private IIcon SideIcon; public open() { super(Material.rock); //省略 } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float posX, float posY, float posZ){ if (!world.isRemote) { Block block = world.getBlock(x, y+1, z); int meta = world.getBlockMetadata(x, y+1, z); if (block.hasTileEntity(meta)) { TileEntity tile = world.getTileEntity(x, y+1, z); if (tile != null) { if (tile instanceof IInventory) { IInventory inventory = (IInventory)tile; for (int pl = 0; pl < inventory.getSizeInventory(); ++pl) { ItemStack itemstack = inventory.getStackInSlot(pl); if (itemstack == null) { inventory.setInventorySlotContents(pl, new ItemStack(items.diamond));//ダイヤを一個入れる return true; } } } } } }
解説
変数plにTileEntity毎のインベントリ情報を入れ、
空いているスロットに入れている。