« 第12回Phunコン JPCC その3 | トップページ | Kerbal Space Program開拓サーバ »

2014年12月15日 (月)

Minecraft MOD開発 22

Minecraft 1.7.10
Minecraft Forge forge-1.7.10-10.13.2.1230
用の独自ブロック追加MODのサンプルコード。
テクスチャファイルpink_block.pngはforge-1.7.10-10.13.2.1230-src\src\main\resources\assets\nishina\textures\blocksに置く。

仕様:
ブロックが破壊されると標準出力にメッセージを吐く
エンティティが上に乗るとジャンプさせる
クリックされるとチャットメッセージを表示する

上(y+)方向に速度1を与えるようにしたが、結構ジャンプする。落下時に0.5ハートのダメージが入るくらい。

onBlockDestroyedByPlayerとonBlockClickedのメッセージは2回ずつ表示される。@SideOnlyの使い方がまだ分からない。

nishinaCore.java

package nishina;
 
import net.minecraft.block.Block;
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.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
 
@Mod( modid = "nishinaCore")
public class nishinaCore
{
 public static Block pinkblock;
 
 @EventHandler
 public void preInit( FMLPreInitializationEvent event)
 {
  pinkblock = new pinkBlock();
  GameRegistry.registerBlock( pinkblock, "pinkBlock");
 }
 
 @EventHandler
 public void init( FMLInitializationEvent event)
 {
  LanguageRegistry.addName( pinkblock, "pinkblock");
 }
}

pinkBlock.java

package nishina;
 
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
 
public class pinkBlock extends Block
{
 
 public pinkBlock()
 {
  super( Material.rock);
  // TODO Auto-generated constructor stub
 
  this.setCreativeTab( CreativeTabs.tabBlock);
  this.setBlockName( "pinkblock");
  this.setBlockTextureName( "nishina:pink_block");
 }
 
 @Override
 public void onBlockDestroyedByPlayer( World world, int x, int y, int z,
   int meta)
 {
  // TODO Auto-generated method stub
  super.onBlockDestroyedByPlayer( world, x, y, z, meta);
 
  System.out.println( "onBlockDestroyedByPlayer is called.");
 }
 
 @Override
 public void onEntityWalking( World world, int x, int y, int z, Entity entity)
 {
  // TODO Auto-generated method stub
  super.onEntityWalking( world, x, y, z, entity);
 
  entity.setVelocity( 0, 1, 0);
 }
 
 @SideOnly( Side.CLIENT)
 @Override
 public void onBlockClicked( World world, int x, int y, int z,
   EntityPlayer player)
 {
  // TODO Auto-generated method stub
  super.onBlockClicked( world, x, y, z, player);
 
  player.addChatMessage( new ChatComponentText(
    "onBlockClicked is called."));
 }
}

« 第12回Phunコン JPCC その3 | トップページ | Kerbal Space Program開拓サーバ »

コメント

ksp鯖の情報見当たりませんがどこにあるんでしょう

KSP開拓サーバの情報はここにあります。
http://nishina2525.cocolog-nifty.com/blog/ksp.html
(一部スマホからは見えないそうです)

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1499066/58278150

この記事へのトラックバック一覧です: Minecraft MOD開発 22:

« 第12回Phunコン JPCC その3 | トップページ | Kerbal Space Program開拓サーバ »