- 1,202
- 31
- 185
Класс рендера энтити
Класс энтити
Другие игроки при спавне гранаты не видят ее... В чем может быть проблема?
Я ее вижу, в прокси рендер зарегал
Java:
public class RenderGrenade extends Render
{
public static final ResourceLocation tex = new ResourceLocation("batmod", "models/grenade/texture.png");
IModelCustom model;
public RenderGrenade(){
this.model = AdvancedModelLoader.loadModel(new ResourceLocation("batmod:models/grenade/model.obj"));
this.model = new ModelWrapperDisplayList((WavefrontObject)this.model);
}
public void doRenderSleeve(EntityGrenade entity, double par2, double par4, double par6, float par8, float frame)
{
GL11.glPushMatrix();
GL11.glTranslatef((float)par2, (float)par4, (float)par6);
GL11.glDisable(2884);
Minecraft.getMinecraft().renderEngine.bindTexture(tex);
GL11.glRotatef(-entity.rotationYaw, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(entity.rotationPitch, 0.0F, 0.0F, 1.0F);
// GL11.glRotatef(this.angle(entity.xRotation + entity.xRotationSpeed * frame), 1.0F, 0.0F, 0.0F);
// GL11.glRotatef(this.angle(entity.yRotation + entity.yRotationSpeed * frame), 0.0F, 1.0F, 0.0F);
// GL11.glRotatef(this.angle(entity.zRotation + entity.zRotationSpeed * frame), 0.0F, 0.0F, 1.0F);
model.renderAll();
GL11.glEnable(2884);
GL11.glPopMatrix();
}
private float angle(float angle) {
angle %= 360.0F;
if(angle > 180.0F) {
angle += -360.0F;
}
return angle;
}
public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) {
this.doRenderSleeve((EntityGrenade)par1Entity, par2, par4, par6, par8, par9);
}
protected ResourceLocation getEntityTexture(Entity entity) {
return null;
}
}
Класс энтити
Java:
public class EntityGrenade extends EntityThrowable {
public static float damage;
double bounceFactor;
private int fuse;
private boolean exploded;
public EntityGrenade(World world) {
super(world);
setSize(0.5F, 0.5F);
this.yOffset = (this.height / 2.0F);
this.bounceFactor = 0.75D;
this.exploded = false;
this.fuse = 0;
}
public EntityGrenade(World par1World, EntityLivingBase par2EntityLiving,
float damage) {
super(par1World, par2EntityLiving);
damage = EntityGrenade.damage;
}
public EntityGrenade(World par1World, double par2, double par4,
double par6) {
super(par1World, par2, par4, par6);
}
public void onUpdate() {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.motionY -= 0.03999999910593033D;
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++ >= 50) {
setDead();
if (!this.worldObj.isRemote) {
explode();
}
} else {
this.worldObj.spawnParticle("smoke", this.posX, this.posY + 0.15D,
this.posZ, 0.0D, 0.0D, 0.0D);
}
}
private void explode() {
float var1 = 100;
this.worldObj.createExplosion((Entity) null, this.posX, this.posY,
this.posZ, var1, false);
}
public void writeEntityToNBT(NBTTagCompound nbttagcompound) {
super.writeEntityToNBT(nbttagcompound);
nbttagcompound.setByte("Fuse", (byte) this.fuse);
}
public void readEntityFromNBT(NBTTagCompound nbttagcompound) {
super.readEntityFromNBT(nbttagcompound);
this.fuse = nbttagcompound.getByte("Fuse");
}
public void onCollideWithPlayer(EntityPlayer entityplayer) {
}
protected void onImpact(MovingObjectPosition var1) {
}
Я ее вижу, в прокси рендер зарегал