• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

已解决 【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
  • MingChengT
  • qiushuishui
  • SPAPP
  • wanguan
  • 78fyk
  • Emphasize
  • 神殇
  • 爱无差异
  • 璀星海
  • roundplus
  • 凭栏听雨
  • 2801326928
  • Han_Jiang
  • luohua161
  • tiyunz
  • LinHan
  • 随风i
  • cpdhr
  • ms29790784
...和 35 更多。
后退
顶部 底部