Рендерить сидящего игрока стоящим

Сообщения
36
Лучшие ответы
0
Реакции
0
Версия Minecraft
1.7.10
Приветствую форумчане. Очередной вопрос про игрока "наездника". Хочу сделать так что бы когда игрок едет на моём ентити то он рендериться в положении стоя. Но с aimedBow положение рук меняется (т.е с евентом и рендером всё норм) а вот при изменении на isRiding - переменная всё равно сбрасывается на тру и игрок рендериться сидя. Подскажите как это заставить работать?
Код который работает:
@SubscribeEvent
public void onRenderPlayer(RenderPlayerEvent event)
{
    if(player.isRiding() && player.ridingEntity instanceof EntitySeat)
    {
        event.renderer.modelBipedMain.aimedBow = true;
    }
}
Код который не работает:
@SubscribeEvent
public void onRenderPlayer(RenderPlayerEvent event)
{
    if(player.isRiding() && player.ridingEntity instanceof EntitySeat)
    {
        event.renderer.modelBipedMain.isRiding = false;
    }
}
 
Сообщения
4,679
Лучшие ответы
45
Реакции
612
Залезть поглубже в майн с помощью кнопочки F3 и найти в каком методе засунут хук с эвентом, посмотреть где твое значение снова подменяется после того как ты его поменял в эвенте.
 
Сообщения
204
Лучшие ответы
1
Реакции
13
вот кусок моего кода для того чтобы рука поднималась с пистолетом
RenderPlayerEvent имеет 2 стадии в начале когда нужно выставить все переменные, после этого игрок рендерится, а все переменные обнуляются
RenderPlayerEvent:
public class RenderPlayerEvent
{
    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public void onRenderPlayerEvent(net.minecraftforge.client.event.RenderPlayerEvent.Pre e)
    {
        ItemStack itemstack = e.entityPlayer.inventory.getCurrentItem();
        
        if(itemstack != null)
        {
            if(itemstack.getItem() instanceof ItemGun && e.entityPlayer.getEntityAttribute(EntityPlayerAttributes.GUN_USING).getBaseValue() > 0)
            {
                ModSyntheticMethods.setAimedPistolet(e.renderer.modelArmorChestplate, true);
                ModSyntheticMethods.setAimedPistolet(e.renderer.modelArmor, true);
                ModSyntheticMethods.setAimedPistolet(e.renderer.modelBipedMain, true);
            }
        }
    }
    
    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public void onRenderPlayerEvent(net.minecraftforge.client.event.RenderPlayerEvent.Post e)
    {
        ModSyntheticMethods.setAimedPistolet(e.renderer.modelArmorChestplate, false);
        ModSyntheticMethods.setAimedPistolet(e.renderer.modelArmor, false);
        ModSyntheticMethods.setAimedPistolet(e.renderer.modelBipedMain, false);
    }
}
а вот сам класс RenderPlayer где ты можешь это увидеть на ванильных переменных типа лука
RenderPlayer:
public void doRender(AbstractClientPlayer p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
    {
        if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Pre(p_76986_1_, this, p_76986_9_))) return;
        GL11.glColor3f(1.0F, 1.0F, 1.0F);
        ItemStack itemstack = p_76986_1_.inventory.getCurrentItem();
        this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = itemstack != null ? 1 : 0;

        if (itemstack != null && p_76986_1_.getItemInUseCount() > 0)
        {
            EnumAction enumaction = itemstack.getItemUseAction();

            if (enumaction == EnumAction.block)
            {
                this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = 3;
            }
            else if (enumaction == EnumAction.bow)
            {
                this.modelArmorChestplate.aimedBow = this.modelArmor.aimedBow = this.modelBipedMain.aimedBow = true;
            }
        }

        this.modelArmorChestplate.isSneak = this.modelArmor.isSneak = this.modelBipedMain.isSneak = p_76986_1_.isSneaking();
        double d3 = p_76986_4_ - (double)p_76986_1_.yOffset;

        if (p_76986_1_.isSneaking() && !(p_76986_1_ instanceof EntityPlayerSP))
        {
            d3 -= 0.125D;
        }

        super.doRender((EntityLivingBase)p_76986_1_, p_76986_2_, d3, p_76986_6_, p_76986_8_, p_76986_9_);
        this.modelArmorChestplate.aimedBow = this.modelArmor.aimedBow = this.modelBipedMain.aimedBow = false;
        this.modelArmorChestplate.isSneak = this.modelArmor.isSneak = this.modelBipedMain.isSneak = false;
        this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = 0;
        net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Post(p_76986_1_, this, p_76986_9_));
    }
 
Сверху