2016-02-28 27 views
1

我正在嘗試在Minecraft中創建一個使用帶有TileEntity的幸運塊的mod。我將TileEntity稱爲帶有幸運塊可能發生的不同情況的課程。然而,班上的不同情況似乎互相重疊或產生兩種情況,但只有一種情況是可收集的。谷歌沒有幫助,我不希望這個幸運塊像其他塊一樣。不同的情況是否相互重疊? minecraft

代碼:

不同的情況:

public void startPickingMinimal(World w, BlockPos pos){ 
    switch(w.rand.nextInt(3)){ 
     case 0: 
      for(int y = 0; y < 4; y++){ 
       BlockPos upPos = new BlockPos(pos.getX(), pos.getY() + y, pos.getZ()); 
       w.setBlockState(upPos, Blocks.diamond_block.getDefaultState()); 
     } 
    break; 
     case 1: 
      EntityLightningBolt bolt = new EntityLightningBolt(w, pos.getX(), pos.getY(), pos.getZ()); 
      w.spawnEntityInWorld(bolt); 
    break; 
     case 2: 
      for(int fy = 0; fy < 5; fy++){ 
       ItemStack n_gapple = new ItemStack(Items.golden_apple); 
       ItemStack gapple = new ItemStack(Items.golden_apple, 1, 1); 
       EntityItem enNGapple = new EntityItem(w, pos.getX(), pos.getY() + fy, pos.getZ(), n_gapple); 
       EntityItem enGapple = new EntityItem(w, pos.getX(), pos.getY() + fy + 1, pos.getZ(), gapple); 
       w.spawnEntityInWorld(enNGapple); 
       w.spawnEntityInWorld(enGapple); 

     } 
    break; 
} 

TileEntity代碼(即調用情況的代碼):

@Override 
public void update() { 
    if(enabled){ 
     counter--; 
     if(counter == 0){ 
      worldObj.setBlockToAir(getPos()); 
      new LuckyBlockItems().startPickingMinimal(worldObj, getPos()); 
     } 

    } 
} 
+1

如果你把代碼放在這裏,而不是鏈接到共享的Google文檔中的代碼將是最好的。 – AntonH

回答

0

你第一次設置塊空氣..那你希望這個街區還在那裏爲你做點什麼。它不這樣工作。

做你setBlockToAir在去年或一個壓倒一切的運行(菱形塊爲例)

!world.isRemote()是你的朋友

否則你得到的客戶端上的產卵事件(這是不是收藏)和一個不同的服務器上(這是可收集的)