wdcftgg
版本1.12.2forge
我想渲染一个生物时根据该生物的nbt来渲染不同的东西
但是渲染一个生物时是客户端,获取不到nbt请问有没有办法可以获取?
或者有没有可以曲线救国的方法能够实现同样的效果?

无敌三脚猫
客户端不是什么都知道,也不是什么都需要知道
比如客户端会在带鞍的猪上渲染鞍,会在带箱子的驴上渲染箱子,但客户端还是不知道实体的nbt,只知道这一小部分与渲染有关的,由EntityDataManager告知的信息
比如兔子有个EntityDataManager
private static final DataParameter<Integer> RABBIT_TYPE = EntityDataManager.<Integer>createKey(EntityRabbit.class, DataSerializers.VARINT);
传递的是Integer类型的信息,先在entityInit()里注册这个EntityDataManager,服务端再在有需要的时候set一下
  1. dataManager.set(RABBIT_TYPE, Integer.valueOf(rabbitTypeId));
复制代码
客户端就能get到对应的内容
  1.     public int getRabbitType()
  2.     {
  3.         return ((Integer)this.dataManager.get(RABBIT_TYPE)).intValue();
  4.     }
复制代码

NBTTagCompound类型的信息也可以传,就看你觉得有没有必要了

第一页 上一页 下一页 最后一页