BlockPaneの追加について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.316588)

BlockPaneの追加について

投稿記事by かるせ » 2018年5月13日(日) 18:51

実行してワールドには入れるのですが、ブロックを設置するとクラッシュします。
どうかお助けください

バージョン
forge-1.7.10-10.13.4.1614-1.7.10-src
eclipse
Version: Mars.1 Release (4.5.1)

コード: 全て選択
package practice.init;

import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPane;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import practice.blocks.ironblock;
import practice.blocks.ironblockstairs;
import practice.blocks.ironbar;


public class RegisterBlock {
   public static Block ironblock;
   public static Block ironblockstairs;
   public static Block ironbar;
   public static int ironbarID = 163;
   /**ブロックを登録するメゾット*/
   public static void register() {
      ironblock = new ironblock(3502, 2, Material.rock)
               .setBlockName("ironblock")
               .setCreativeTab(CreativeTabs.tabBlock);
         GameRegistry.registerBlock(ironblock, "ironblock");


         ironblockstairs = new ironblockstairs(3503, ironblock, 1)
               .setBlockName("ironblockstairs")
               .setCreativeTab(CreativeTabs.tabBlock);
         GameRegistry.registerBlock(ironblockstairs, "ironblockstairs");


         ironbar = new ironbar(ironblockstairs, ironbarID, Material.iron)
               .setBlockName("Cocricotironbar")
               .setCreativeTab(CreativeTabs.tabBlock);
         GameRegistry.registerBlock(ironbar, "ironbar");
         }
   
}


コード: 全て選択
package practice.blocks;

import java.util.List;
import java.util.Random;

import practice.access.AccessD;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPane;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.Vec3;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class ironbar extends BlockPane
{
   private Block BaseBlock;
      private int BaseMeta;
      private AccessD iBlockAccess;
   private static String field_150100_a;
   private static boolean field_150099_b;
   @SideOnly(Side.CLIENT)
   private IIcon sideIcon;
   
   //private IIcon[] iicon = new IIcon[16];
   
   public ironbar(Block block, int meta, Material material)
   {
      super(field_150100_a, field_150100_a, material, field_150099_b);
      BaseBlock = block;
         BaseMeta = meta;
         iBlockAccess = new AccessD(BaseBlock,BaseMeta);
      //this.setBlockName("timberframes");
      //this.setBlockTextureName("bmmod:timberframes");
      //setHardness(0.8F);/*硬さ*/
        //setResistance(1.0F);/*爆破耐性*/
        //setStepSound(Block.soundTypeStone);/*ブロックの上を歩いた時の音*/
        //setBlockUnbreakable();/*ブロックを破壊不可に設定*/
        //setTickRandomly(true);/*ブロックのtick処理をランダムに。デフォルトfalse*/
        //disableStats();/*ブロックの統計情報を保存しない*/
        //setLightOpacity(1);/*ブロックの透過係数。デフォルト0(不透過)*/
        //setLightLevel(1.0F);/*明るさ 1.0F = 15*/
      //this.setHarvestLevel("pickaxe", 2);/*回収するのに必要なツールを設定する。*/
      //isBlockContainer = true;
   }
   
   @SideOnly(Side.CLIENT)
      public IIcon getIcon(int p_149691_1_, int p_149691_2_)
      {
         return this.BaseBlock.getIcon(3, this.BaseMeta);
      }

       public int getRenderType()
       {
           return 41;
       }

       public float getBlockHardness(World p_149712_1_, int p_149712_2_, int p_149712_3_, int p_149712_4_)
       {
           return BaseBlock.getBlockHardness(p_149712_1_,p_149712_2_,p_149712_3_,p_149712_4_);
       }

      @SideOnly(Side.CLIENT)
      public int getRenderColor(int p_149741_1_)
      {
         return BaseBlock.getRenderColor(BaseMeta);
      }

      @SideOnly(Side.CLIENT)
      public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_)
      {
         this.BaseBlock.randomDisplayTick(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_, p_149734_5_);
      }

      public void onBlockDestroyedByPlayer(World p_149664_1_, int p_149664_2_, int p_149664_3_, int p_149664_4_, int p_149664_5_)
      {
         this.BaseBlock.onBlockDestroyedByPlayer(p_149664_1_, p_149664_2_, p_149664_3_, p_149664_4_, p_149664_5_);
      }

      public float getExplosionResistance(Entity p_149638_1_)
      {
         return this.BaseBlock.getExplosionResistance(p_149638_1_);
      }

      public int tickRate(World p_149738_1_)
      {
         return this.BaseBlock.tickRate(p_149738_1_);
      }

      public void velocityToAddToEntity(World p_149640_1_, int p_149640_2_, int p_149640_3_, int p_149640_4_, Entity p_149640_5_, Vec3 p_149640_6_)
      {
         this.BaseBlock.velocityToAddToEntity(p_149640_1_, p_149640_2_, p_149640_3_, p_149640_4_, p_149640_5_, p_149640_6_);
      }

      @SideOnly(Side.CLIENT)
      public int getRenderBlockPass()
      {
         return this.BaseBlock.getRenderBlockPass();
      }

      public boolean isCollidable()
      {
         return this.BaseBlock.isCollidable();
      }

      public boolean canCollideCheck(int p_149678_1_, boolean p_149678_2_)
      {
         return this.BaseBlock.canCollideCheck(p_149678_1_, p_149678_2_);
      }

      public boolean canPlaceBlockAt(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
      {
         return this.BaseBlock.canPlaceBlockAt(p_149742_1_, p_149742_2_, p_149742_3_, p_149742_4_);
      }

      public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
      {
         this.BaseBlock.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
      }

      public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_)
      {
         this.BaseBlock.updateTick(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, p_149674_5_);
      }

      public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_)
      {
         this.BaseBlock.onBlockDestroyedByExplosion(p_149723_1_, p_149723_2_, p_149723_3_, p_149723_4_, p_149723_5_);
      }

      public MapColor getMapColor(int p_149728_1_)
      {
         return this.BaseBlock.getMapColor(this.BaseMeta);
      }

      @Override
       public int getLightValue(IBlockAccess world, int x, int y, int z)
       {
         iBlockAccess.setIBlockAccess(world, x, y, z);
           return BaseBlock.getLightValue(iBlockAccess, x, y, z);
       }

      @Override
      @SideOnly(Side.CLIENT)
      public int colorMultiplier(IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_)
      {
         iBlockAccess.setIBlockAccess(p_149720_1_, p_149720_2_, p_149720_3_, p_149720_4_);
         return BaseBlock.colorMultiplier(iBlockAccess, p_149720_2_, p_149720_3_, p_149720_4_);
      }

      @Override
      @SideOnly(Side.CLIENT)
      public int getMixedBrightnessForBlock(IBlockAccess p_149677_1_, int p_149677_2_, int p_149677_3_, int p_149677_4_)
      {
         iBlockAccess.setIBlockAccess(p_149677_1_, p_149677_2_, p_149677_3_, p_149677_4_);
         return this.BaseBlock.getMixedBrightnessForBlock(iBlockAccess, p_149677_2_, p_149677_3_, p_149677_4_);
      }
 
    @SideOnly(Side.CLIENT)
    public void registerBlockIcons(IIconRegister par1IconRegister)
    {
        this.sideIcon = par1IconRegister.registerIcon("practice:cocricotblockofemerald");
    }
}


コード: 全て選択
package practice.access;

import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.util.ForgeDirection;

public class AccessD implements IBlockAccess {

      private Block BaseBlock;
      private int BaseMeta;
      private IBlockAccess iBlockAccess;
      private int x;
      private int y;
      private int z;

      public AccessD(Block p_i45428_1_, int p_i45428_2_) {
         BaseBlock = p_i45428_1_;
         BaseMeta = p_i45428_2_;
      }

      public void setIBlockAccess(IBlockAccess iba , int var1, int var2, int var3)
      {
         iBlockAccess = iba;
         x = var1;
         y = var2;
         z = var3;
      }

      @Override
      public Block getBlock(int var1, int var2, int var3) {

         if(x == var1 && y == var2 && z == var3)
         {
            return BaseBlock;
         }
         return iBlockAccess.getBlock(var1, var2, var3);
      }

      @Override
      public TileEntity getTileEntity(int var1, int var2, int var3) {

         return iBlockAccess.getTileEntity(var1, var2, var3);
      }

      @Override
      public int getLightBrightnessForSkyBlocks(int var1, int var2, int var3,
            int var4) {

         return iBlockAccess.getLightBrightnessForSkyBlocks(var1, var2, var3, var4);
      }

      @Override
      public int getBlockMetadata(int var1, int var2, int var3) {

         if(x == var1 && y == var2 && z == var3)
         {
            return BaseMeta;
         }

         return iBlockAccess.getBlockMetadata(var1, var2, var3);
      }

      @Override
      public boolean isAirBlock(int var1, int var2, int var3) {

         return iBlockAccess.isAirBlock(var1, var2, var3);
      }

      @Override
      public BiomeGenBase getBiomeGenForCoords(int var1, int var2) {

         return iBlockAccess.getBiomeGenForCoords(var1, var2);
      }

      @Override
      public int getHeight() {

         return iBlockAccess.getHeight();
      }

      @Override
      public boolean extendedLevelsInChunkCache() {

         return iBlockAccess.extendedLevelsInChunkCache();
      }

      @Override
      public int isBlockProvidingPowerTo(int var1, int var2, int var3, int var4) {

         return iBlockAccess.isBlockProvidingPowerTo(var1, var2, var3, var4);
      }

      @Override
      public boolean isSideSolid(int x, int y, int z, ForgeDirection side,
            boolean _default) {

         return iBlockAccess.isSideSolid(x, y, z, side, _default);
      }



   }


どうかお願いします
かるせ
ID:19ff2969
木を殴ってる
 
記事: 11
登録日時: 2016年1月18日(月) 20:38

Return to 質問:開発・制作関連

cron

x