@‘robin4002’:
C’est étrange ça.
Sur NHG on a :
EntityRegistry.registerModEntity(EntitySlimeBall.class, "SlimeBall", 225, instance, 120, 2, true);
package fr.mcnanotech.nhg.common.entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import fr.mcnanotech.nhg.common.CustomPlayerProperties;
import fr.mcnanotech.nhg.common.kit.Kit;
public class EntitySlimeBall extends EntityThrowable
{
public EntitySlimeBall(World par1World)
{
super(par1World);
}
public EntitySlimeBall(World par1World, EntityLivingBase par2EntityLivingBase)
{
super(par1World, par2EntityLivingBase);
}
public EntitySlimeBall(World par1World, double par2, double par4, double par6)
{
super(par1World, par2, par4, par6);
}
@Override
protected void onImpact(MovingObjectPosition movingObject)
{
if(movingObject.entityHit != null && !movingObject.entityHit.worldObj.isRemote)
{
movingObject.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F);
if(movingObject.entityHit instanceof EntityLivingBase)
{
EntityLivingBase entity = (EntityLivingBase)movingObject.entityHit;
if(entity instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer)entity;
CustomPlayerProperties prop = CustomPlayerProperties.get(player);
Kit kit = Kit.getKit(prop.getKitIndex());
if(kit != null && kit == Kit.slime)
{
player.heal((player.worldObj.rand.nextFloat() / 2));
}
else
{
player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200));
}
}
else
{
entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200));
}
}
}
for(int i = 0; i < 8; ++i)
{
this.worldObj.spawnParticle(EnumParticleTypes.SLIME, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
}
if(!this.worldObj.isRemote)
{
this.setDead();
}
}
}
RenderingRegistry.registerEntityRenderingHandler(EntitySlimeBall.class, new RenderItemThrowable(Items.slime_ball, Minecraft.getMinecraft()));
package fr.mcnanotech.nhg.client.render;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class RenderItemThrowable extends Render
{
private Item item;
private int metadata;
private final RenderItem itemRenderer;
public RenderItemThrowable(RenderManager rendermgr, Item item, int metadata, RenderItem renderItem)
{
super(rendermgr);
this.item = item;
this.metadata = metadata;
this.itemRenderer = renderItem;
}
public RenderItemThrowable(Item item, Minecraft mc)
{
this(mc.getRenderManager(), item, 0, mc.getRenderItem());
}
@Override
public void doRender(Entity entity, double x, double y, double z, float yaw, float partialTicks)
{
GlStateManager.pushMatrix();
GlStateManager.translate((float)x, (float)y, (float)z);
GlStateManager.enableRescaleNormal();
GlStateManager.scale(0.5F, 0.5F, 0.5F);
GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
this.bindTexture(TextureMap.locationBlocksTexture);
this.itemRenderer.renderItemModel(new ItemStack(this.item, 1, this.metadata));
GlStateManager.disableRescaleNormal();
GlStateManager.popMatrix();
super.doRender(entity, x, y, z, yaw, partialTicks);
}
@Override
protected ResourceLocation getEntityTexture(Entity entity)
{
return TextureMap.locationBlocksTexture;
}
}
Et cela fonctionne très bien. (d’ailleurs il me semble que RenderItemThrowable n’est même pas nécessaire, on peut directement utilisé le rendu de la boule de neige).
J’ai édit mon post sans voir ton message désolée, tout marche il fallait juste que je mette sur true (c’était encore sur false). Merci encore
PS: Oui on peut directement utilisé le rendu de la boule de neige je confirme (c’est ce que j’ai fais).