2 проблемы: Не рендерится EntityThrowable и передача инфо блоку

Версия Minecraft
1.7.10
Заранее прошу прощения за тупость, я лишь начинающий), так, что не бомбите плз)).


1 проблема:
У меня есть EntityThrowable по типу яйца и я регистрирую его рендер, при этом беру текстуру с айтема, но для игры будто ничего и не поменялось, как рендерит пустоту, так и рендерит... т.е. сам энтити спавнится, летит и взаимодействует, но не отображается(пустота, вместо него). Вот код регистрации рендера Entity, написал я это в главном классе мода:

Java:
@SideOnly(Side.CLIENT)
    public void initClient(){
     
        RenderingRegistry.registerEntityRenderingHandler(EntityDStick.class, new net.minecraft.client.renderer.entity.RenderSnowball(rebr.dynamite_stick));
     
    }




2 проблема:
Нужно, чтобы при взрыве/касании EntityThrowable из моего мода передавалось блоку из моего мода какое-то число, заданное в EntityThrowable, которое в последствии в классе самого блока можно бы было сравнить с чем-то, при помощи if, т.е. например:

Java:
if (число_переданное_от_энтити > какое_то_число) {
    какое_то_действие_с_блоком;
}

К сожалению сам не представляю, как это можно сделать, ещё раз простите за тупость)
 
Последнее редактирование:
Решение
@MrKTOTO
Не знаю это тебе нужно или или нет но проверь.
Главный класс
Java:
    @EventHandler
    public void Init(FMLInitializationEvent e){
             EntityRegistry.registerModEntity(EntityBall.class, (String)"ball", (int)4, (Object)this, (int)80, (int)3, (boolean)true);       
     }

Класс entityBall
Java:
public class EntityBall extends EntityThrowable
{

    public EntityBall(World world)
    {
        super(world);
        this.setSize(0.35F, 0.35F);
    }

    public EntityBall(World world, EntityLivingBase p_i1774_2_)
    {
        super(world, p_i1774_2_);
        
    }

    public EntityBall(World world, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_)
    {
        super(world, p_i1775_2_, p_i1775_4_...

tox1cozZ

aka Agravaine
8,454
598
2,890
1. У тебя случайно не регается рендер РАНЬШЕ чем создается предмет?
2. В методе onImpact у энтити в аргументах есть MovingObjectPosition, из которого можно достать координаты блока в который врезалось энтити. Потом доставай свой тайл по этим координатам и записывай в него значение.
 
1. У тебя случайно не регается рендер РАНЬШЕ чем создается предмет?
2. В методе onImpact у энтити в аргументах есть MovingObjectPosition, из которого можно достать координаты блока в который врезалось энтити. Потом доставай свой тайл по этим координатам и записывай в него значение.

1. Нет, этот кусок кода написан в самом конце главного класса мода
2. К сожалению я не настолько продвинутый в моддинге, чтобы это всё понять, можно поподробнее... Для тупых)

P.S. 2. Спрошу конкретно, как моё число передать по x,y,z MovingObjectPosition от Entity передать блоку по данным координатам? Просто "Доставай тайл" - не понятно и не доступно...
 
Последнее редактирование:
1,038
57
229
А ты где вызываешь initClient()?
 
1,038
57
229
где именно? главный класс большой
 
1,038
57
229
ну вот, что и требовалось.
ты ни в одном из методов Init не вызвал this.initClient()
а вызвать ты его должен внутри ClientProxy
public void Init(FML... event) { rebr.initClient(); }
 
269
8
19
@MrKTOTO
Не знаю это тебе нужно или или нет но проверь.
Главный класс
Java:
    @EventHandler
    public void Init(FMLInitializationEvent e){
             EntityRegistry.registerModEntity(EntityBall.class, (String)"ball", (int)4, (Object)this, (int)80, (int)3, (boolean)true);       
     }

Класс entityBall
Java:
public class EntityBall extends EntityThrowable
{

    public EntityBall(World world)
    {
        super(world);
        this.setSize(0.35F, 0.35F);
    }

    public EntityBall(World world, EntityLivingBase p_i1774_2_)
    {
        super(world, p_i1774_2_);
        
    }

    public EntityBall(World world, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_)
    {
        super(world, p_i1775_2_, p_i1775_4_, p_i1775_6_);
        
    }

    /**
     * Called when this EntityThrowable hits a block or entity.
     */
    
    protected float getGravityVelocity()
    {
        return 0.01F;
    }
    
    public void onUpdate() {
   //     super.onUpdate();
    //this.posY +=1;
    super.onUpdate();
    }
    protected void onImpact(MovingObjectPosition mop)
    {
        if (mop.entityHit != null)
        {
            byte b0 = 0;
        if (mop.entityHit instanceof Entity)
         {
            b0 = 7;
         }
            mop.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)b0);
        }
        for (int i = 0; i < 8; ++i)
        {
            this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
        }
        if (!this.worldObj.isRemote)
        {
            this.setDead();
        }
    }
}
1551508140121.png
 
@MrKTOTO
Не знаю это тебе нужно или или нет но проверь.
Главный класс
Java:
    @EventHandler
    public void Init(FMLInitializationEvent e){
             EntityRegistry.registerModEntity(EntityBall.class, (String)"ball", (int)4, (Object)this, (int)80, (int)3, (boolean)true);      
     }

но вот этот кусок кода помог, оказывается просто не зарегал энтити )))
 
Сверху