- 7
- 0
Никак не могу понять, как рендерить руки, как они рендерятся при прицеливании у лука (скриншот во вложении). Нужно, чтобы когда игрок держит мой предмет, таким образом рендерились руки.
Пробовал и из класса RenderPlayer вытаскивать переменные, и к ModelBiped обращался - всё вбестолку.
И кстати, кому не трудно, напишите проверку на то, что игрок держит этот самый предмет. Просто может я не так делаю проверку ?
(Ведь я так понимаю, проверка и рендер рук в основном классе предмета должны лежать ?)
Код предмета:
(Если что, переменные в RenderPlayer я сделал public, потому что Глуми сказал, что так можно).
Помогите, пожалуйста, с проблемой !
Пробовал и из класса RenderPlayer вытаскивать переменные, и к ModelBiped обращался - всё вбестолку.
И кстати, кому не трудно, напишите проверку на то, что игрок держит этот самый предмет. Просто может я не так делаю проверку ?
(Ведь я так понимаю, проверка и рендер рук в основном классе предмета должны лежать ?)
Код предмета:
Код:
package com.f3rullo14.fgm3.common.myweapon;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import com.f3rullo14.fgm3.common.items.EnumAloudAttachments;
import com.f3rullo14.fgm3.common.items.EnumFireMode;
import com.f3rullo14.fgm3.common.items.EnumKalibr;
import com.f3rullo14.fgm3.common.items.EnumMode;
import com.f3rullo14.fgm3.common.items.EnumNevipad;
import com.f3rullo14.fgm3.common.items.ItemGun;
import com.f3rullo14.fgm3.common.player.PlayerData;
import com.f3rullo14.fgm3.common.player.PlayerHandler;
public class WeaponAK47 extends ItemGun {
public ModelBiped mb = new ModelBiped();
public RenderPlayer rp = new RenderPlayer();
public WeaponAK47(int par1, boolean primary, int ammo, int damage, int clipid ,String firesound, EnumFireMode[] fm,EnumAloudAttachments al, float fired, float reloadd, float recoil, float acc,int uammo, EnumNevipad[] nl, EnumKalibr[] kb, EnumMode[] md) {
super(par1, primary, ammo, damage, clipid, firesound, fm, al, fired, reloadd, recoil, acc, uammo, nl, kb, md);
}
public void registerIcons(IconRegister tex)
{
this.itemIcon = tex.registerIcon("fgmassets:as1");
}
public void onUpdate(ItemStack par1ItemStack, World par2World, float par3, Entity par3Entity, int par4, boolean par5, EntityPlayer ep) {
super.onUpdate(par1ItemStack, par2World, par3Entity, par4, par5);
float f6 = 0.0F;
float f7 = 0.0F;
if(ep.inventory.getCurrentItem()==par1ItemStack){
mb.aimedBow = true;
rp.modelArmor.aimedBow = rp.modelArmorChestplate.aimedBow = rp.modelBipedMain.aimedBow = true;
mb.bipedRightArm.rotateAngleZ = 0.0F;
mb.bipedLeftArm.rotateAngleZ = 0.0F;
mb.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F) + mb.bipedHead.rotateAngleY;
mb.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F + mb.bipedHead.rotateAngleY + 0.4F;
mb.bipedRightArm.rotateAngleX = -((float)Math.PI / 2F) + mb.bipedHead.rotateAngleX;
mb.bipedLeftArm.rotateAngleX = -((float)Math.PI / 2F) + mb.bipedHead.rotateAngleX;
mb.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
mb.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
mb.bipedRightArm.rotateAngleZ += MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
mb.bipedLeftArm.rotateAngleZ -= MathHelper.cos(par3 * 0.09F) * 0.05F + 0.05F;
mb.bipedRightArm.rotateAngleX += MathHelper.sin(par3 * 0.067F) * 0.05F;
mb.bipedLeftArm.rotateAngleX -= MathHelper.sin(par3 * 0.067F) * 0.05F;
}
}
}
(Если что, переменные в RenderPlayer я сделал public, потому что Глуми сказал, что так можно).
Помогите, пожалуйста, с проблемой !