• 200金粒签到奖励和周年纪念勋章(4/5/6/7周年)销售将于 4月13日晚结束,不要错过噢!【点我去看看】

已解决 【1.18.2Forge】自己添加的RenderLivingEvent事件中调用getEntity()方法无法获取自制Mod的生物

Deran_Lin

【Lv:1】

注册
2024/10/13
消息
4
金粒
921金粒
pAYOONq.md.png
代码如图,我想定义一个事件,给我自己做的模组的生物(class叫LoneShadowTest)渲染一个攻击判定框,用的是RenderLivingEvent,但是经过测试发现LivingEntity entity = event.getEntity();只能获取原版的生物,而无法获取自制模组的生物(如果去掉if判断则游戏中除了自制模组的生物以外,其他生物都能渲染出下面代码定义的线框)。
另外,使用LivingEvent时调用getEntityLiving可以获取模组生物,但是这种event没有posestack,定义新的PoseStack会出现“RenderSystem called from wrong thread”的错误。
有大佬知道该怎么解决这个问题吗?能换其他思路也行,十分感谢。(本人第一次做模组,很多东西都不懂,还望详解)
 
内容版权许可
作者保留一切权利,禁止转载
已解决,虽然还是不太懂,但应该是因为模组的生物用了Geckolib模型,模型渲染和原版生物有出入导致RenderLivingEvent的getEntity方法获取不到模组生物。只需要自己定义一个事件,然后在模组生物的renderer.java文件中的getEntityType方法里面发布自定义事件,然后再注册这个事件就行了。
 

在线会员

  • umaru
  • Runaway_21
  • NetK
  • uuih
  • 一位随缘玩家
  • Sh1roCu
  • 卡比兽好饿
  • 1832767678
  • Ez4p1xEL
  • ASAqw
  • 蟹蒙老鸽
  • 赤_焰
后退
顶部 底部