• 【MineBBS社区发展意见征集】

    欢迎参与MineBBS社区调查,助力打造更好Minecraft社区!完成问卷可获赠200金粒,优质回答可额外获得200金粒(限5名),快来参与吧!【点击参与】

已解决 【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方法里面发布自定义事件,然后再注册这个事件就行了。
 

在线管理成员

在线会员

  • 张松严
  • Shi_Ku
  • 13213123123123124124
  • 二白
  • CKY
  • Sh1roCu
  • yidoor
  • 我来诠释手法
  • 璀星海
  • Inter
  • humataddiyar
  • 魔王llx
  • xuantianzhilin
  • YUN6613
  • kukemc
  • SK-1
  • hongyu666
  • MoLanMC
  • 张志明
  • 冷凍烏薩齊
  • Taoisa
  • HiTech0926
...和 43 更多。
后退
顶部 底部