Не отображается энтити динамита

Версия Minecraft
1.7.10
API
Forge
Энтити ТНТ спавнится и происходит взрыв, но почему то энтити не рендерится.
Пробовал делать свой рендер - результат тот же.Полагаю что дело в прокси, так как первый раз с ним имею дело

Главный файл
main.java:
@Mod(modid = main.MODID, name = main.MODNAME, version = main.VERSION)


public class main {
   
   
    public static Block explosive_barrel;
   
    public static final CreativeTabs CTab = new CreativeTabs("CTab")
    {
        public Item getTabIconItem()
        {
            return Item.getItemFromBlock(Blocks.tnt);
        }
    };
   
    @SidedProxy(
            modId = main.MODID,
            clientSide = "com.evil.sqw.proxy.ClientProxy",
            serverSide = "com.evil.sqw.proxy.CommonProxy"
            )      
    public static CommonProxy proxy;
   
    public static final String MODID = "ModSqw";
    public static final String MODNAME = "sqw";
    public static final String VERSION = "0.0.1";
   
    @EventHandler
    public void PreInit(FMLPreInitializationEvent event)
    {
        explosive_barrel = new ExplosiveBarrelClass(Material.tnt,"explosive_barrel","explosive_barrel",25F,"axe",3,10F,null,Block.soundTypeLadder);
        proxy.preInit(event);
       
    }
   
    @EventHandler
    public void init(FMLInitializationEvent event)
    {
       
        EntityRegistry.registerGlobalEntityID(BoomEntity.class, "BoomEntity", EntityRegistry.findGlobalUniqueEntityId());
        EntityRegistry.registerModEntity(BoomEntity.class, "BoomEntity", 51, this, 256, 1, false);
        proxy.init(event);
    }
   
    @EventHandler
    public void PostInit(FMLPostInitializationEvent event)
    {
       
        MinecraftForge.EVENT_BUS.register(new ExplosionEventSubcribe());
        proxy.postInit(event);
       
    }
   
   
   
}

Прокси
CommonProxy.java:
public class CommonProxy
{
   
    public void RegRen()
    {
       
    }
   
    public void preInit(FMLPreInitializationEvent event)
    {

    }

    public void init(FMLInitializationEvent event)
    {

    }

    public void postInit(FMLPostInitializationEvent event) {

    }

}

Клиент прокси
ClientProxy.java:
public class ClientProxy extends CommonProxy {
    public void RegRen()
    {
        RenderingRegistry.registerEntityRenderingHandler(BoomEntity.class, new RenderTNTPrimed());
    }
    @EventHandler
    public void preInit(FMLPreInitializationEvent e) {
        super.preInit(e);
        }
    @EventHandler
    public void Init(FMLInitializationEvent e) {
        super.init(e);
        }
    @EventHandler
    public void postInit(FMLPostInitializationEvent e) {
        super.postInit(e);
}
}

Энтити динамита
BoomEntity.java:
public class BoomEntity extends EntityTNTPrimed {
   
    private float strength;
    private boolean IsFlaming;
    private boolean IsSmoking;
   
    public BoomEntity(World world)
    {
        super(world);
        this.preventEntitySpawning = true;
        this.setSize(0.98F, 0.98F);
        this.yOffset = this.height / 2.0F;
    }
   
    public BoomEntity(World p_i1730_1_, double p_i1730_2_, double p_i1730_4_, double p_i1730_6_,
            EntityLivingBase p_i1730_8_, float strength_input, boolean IsFlaming, boolean IsSmoking) {
        super(p_i1730_1_, p_i1730_2_, p_i1730_4_, p_i1730_6_, p_i1730_8_);
        this.strength = strength_input;
        this.IsFlaming = IsFlaming;
        this.IsSmoking = IsSmoking;
        // TODO Auto-generated constructor stub
    }
   
    public void onUpdate()
    {
        this.prevPosX = this.posX;
        this.prevPosY = this.posY;
        this.prevPosZ = this.posZ;
        this.motionY -= 0.03999999910593033D;
        this.moveEntity(this.motionX, this.motionY, this.motionZ);
        this.motionX *= 0.9800000190734863D;
        this.motionY *= 0.9800000190734863D;
        this.motionZ *= 0.9800000190734863D;

        if (this.onGround)
        {
            this.motionX *= 0.699999988079071D;
            this.motionZ *= 0.699999988079071D;
            this.motionY *= -0.5D;
        }

        if (this.fuse-- <= 0)
        {
            this.setDead();

            if (!this.worldObj.isRemote)
            {
                this.explode();
            }
        }
        else
        {
            this.worldObj.spawnParticle("smoke", this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D);
        }
    }
   
    private void explode()
    {
        float f = strength;
       
       
        ExplosionClass explosion = new ExplosionClass(this.worldObj,(Entity) this.getTntPlacedBy(), this.prevPosX,this.prevPosY,this.prevPosZ, f,(int) f);//(this.worldObj,(Entity) this.getTntPlacedBy(), this.prevPosX,this.prevPosY,this.prevPosZ, f,(int) f);
        explosion.isFlaming = IsFlaming;//false
        explosion.isSmoking = IsSmoking;//true
       
        explosion.Listen();
     
        explosion.doExplosionA();
        explosion.doExplosionB(true);
       
       
    }

}
 
1,074
72
372
Код прокси-пустышек здесь совершенно ни к чему. А вот код ExplosiveBarrelClass, где спавнится сущность - отсутствует.
В прокси сомнение вызывает метод RegRen() - кто его вызывает? Это ещё чудо, что в таком бардаке мод может кое-как работать.
 
Ниже приложил класс блока и его Тайл Энтити.
В прокси сомнение вызывает метод RegRen() - кто его вызывает?
Где его надо вызывать ?


ExplosiveBarrelClass.java:
public class ExplosiveBarrelClass extends ClassBlockHTE<ExplosiveBarrelTE> {

    protected ExplosiveBarrelClass(Material BC_Material, String U_name, String T_name, float BC_Hardness, String BC_ToolClass,
            int BC_Level, float BC_Resistance, Item Drop, SoundType BC_SoundType) {
        super(BC_Material, U_name, T_name, BC_Hardness, BC_ToolClass, BC_Level, BC_Resistance, Drop, BC_SoundType);
       
    }

    @Override
    public boolean onBlockActivated(World world, int xPos, int yPos, int zPos, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
 
        if (!world.isRemote) {
     
            ExplosiveBarrelTE tileEntity = this.getTileEntity(world, xPos, yPos, zPos);
            System.out.println(tileEntity);
            System.out.println(" get entity:" + world.getTileEntity(xPos, yPos, zPos));
            System.out.println("x:" + xPos + " y:" + yPos + " z:" + zPos + " world:" + world);
            if(player.getHeldItem()!=null) {
            if(player.getHeldItem().getItem()==Items.gunpowder&&tileEntity.getCount()<16)
            {
                player.inventory.mainInventory[player.inventory.currentItem].stackSize--;
                tileEntity.incrementCount();
                player.addChatMessage(new ChatComponentTranslation("tile.ExplosiveBarrel.count" , tileEntity.getCount()));
               
            }
            else if(player.getHeldItem().getItem()==Items.flint_and_steel&&tileEntity.getCount()>4)
            {
                player.inventory.mainInventory[player.inventory.currentItem].damageItem(1, player);;
                tileEntity.incrementCount();
                ExplosiveBarrelTE TE = (ExplosiveBarrelTE) world.getTileEntity(xPos,yPos,zPos);
                world.setBlockToAir(xPos,yPos,zPos);
                Boom(world,xPos,yPos,zPos,(Explosion)null,TE.getCount());
            }
            }
            else {
            player.addChatMessage(new ChatComponentTranslation("tile.ExplosiveBarrel.count" , tileEntity.getCount()));
            }
        }
           
       
        return true;
    }
   
    //детекшен сигнала красного камня у соседей при установки блока
    public void onBlockAdded(World world, int x, int y, int z)
    {
        super.onBlockAdded(world, x, y, z);

        if (world.isBlockIndirectlyGettingPowered(x, y, z))
        {
            ExplosiveBarrelTE TE = (ExplosiveBarrelTE) world.getTileEntity(x, y, z);
            world.setBlockToAir(x, y, z);
            Boom(world,x,y,z,(Explosion)null,TE.getCount());
            //this.onBlockDestroyedByPlayer(world, x, y, z, 1);
        }
    }
   
    //детекшен сигнала красного камня у соседей
    public void onNeighborBlockChange(World world, int x, int y, int z, Block neighbor)
    {
        if (world.isBlockIndirectlyGettingPowered(x, y, z))
        {
            ExplosiveBarrelTE TE = (ExplosiveBarrelTE) world.getTileEntity(x, y, z);
            world.setBlockToAir(x, y, z);
            Boom(world,x,y,z,(Explosion)null,TE.getCount());
            //this.onBlockDestroyedByPlayer(world, x, y, z, 1);
        }
    }
   
    public void Boom(World world, int x, int y, int z, Explosion explosion, int count)
    {
        float strength = (float) count;
        if(strength!=0) {
        BoomEntity boomentity= new BoomEntity(world, (double)((float)x), (double)((float)y + 0.9F), (double)((float)z), explosion != null ? explosion.getExplosivePlacedBy():null,strength, false, true);
        boomentity.fuse = 104-count*4;
        world.spawnEntityInWorld(boomentity);
        world.playSoundAtEntity(boomentity, "game.tnt.primed", 1.0F, 1.0F);
        }
       
    }
   
   
   
    public boolean canDropFromExplosion(Explosion p_149659_1_)
    {
        return false;
    }
   
   
    @Override
    public Class<ExplosiveBarrelTE> getTileEntityClass() {
 
        return ExplosiveBarrelTE.class;
    }

    @Override
    public ExplosiveBarrelTE createTileEntity(World world, int meta) {
 
        return new ExplosiveBarrelTE();
    }

}

ClassBlockHTE.java:
public abstract class ClassBlockHTE<TE extends TileEntity> extends ClassBlock {

    protected ClassBlockHTE(Material BC_Material, String U_name, String T_name, float BC_Hardness, String BC_ToolClass,
            int BC_Level, float BC_Resistance, Item Drop, SoundType BC_SoundType)
    {
        super(BC_Material, U_name, T_name, BC_Hardness, BC_ToolClass, BC_Level, BC_Resistance, Drop, BC_SoundType);
        // TODO Auto-generated constructor stub
        GameRegistry.registerTileEntity(this.getTileEntityClass(), this.getUnlocalizedName());
    }

    protected abstract Class<TE> getTileEntityClass();
   
    public TE getTileEntity(World world, int xPos, int yPos, int zPos) {
 
        return (TE) world.getTileEntity(xPos, yPos, zPos);
    }

    @Override
    public boolean hasTileEntity(int metadata) {
        return true;
    }
   
    @Nullable
    @Override
    public abstract TE createTileEntity(World world, int metadata);
   
   
   
   
   
}
 
Сверху