vvvbbbcz
本帖最后由 vvvbbbcz 于 2020-4-29 16:26 编辑

    已解决,解决方案:ModConfig.java中的ConfigName重复了,尽管两个ID并不重复,但Minecraft还是认为使用的是同一个ID

  我本来想在MOD加入新生物:鸭子,而且一切正常,但当我想要加入鸭子蛋的实体(投掷物)时,却发现右键鸭子蛋时,扔出去的实体的模型是“鸭子”的,而不是“鸭子蛋”的。但我看了,模型、实体都是正常注册  之后,我又把注册鸭子的代码与注册鸭子蛋的代码互换顺序,发现鸭子蛋的模型正常了,但鸭子的模型变成了鸭子蛋的模型,即:顺序注册代码顺序在最前的实体,模型正常;而注册顺序在后的实体,就直接用注册顺序最前的实体的模型。
  两种注册方法我都试过(EntityRegistry和RegistryEvent.Register<EntityEntry>),都是一样的结果。


  附:注册实体与对应的模型的代码





我是彦祖8
1111111111111111111111111112222222222222222222222222222222222

modist
版本是什么?RenderDuck和RenderDuckEgg能看一下吗?

vvvbbbcz
zjx475 发表于 2020-4-16 09:06
版本是什么?RenderDuck和RenderDuckEgg能看一下吗?

Forge版本:forge-14.23.5.2768-mdk
RenderDuck.java:
  1. public class RenderDuck extends RenderLiving<EntityDuck> {
  2.     private static final ResourceLocation TEXTURE = new ResourceLocation(LargeProjectsLao8.MODID + ":textures/entities/duck.png");

  3.     public RenderDuck(RenderManager rendermanagerIn) {
  4.         super(rendermanagerIn, new ModelDuck(), 0.5F);
  5.     }

  6.     @Nullable
  7.     @Override
  8.     protected ResourceLocation getEntityTexture(@Nonnull EntityDuck entity) {
  9.         return TEXTURE;
  10.     }

  11.     @Override
  12.     protected float handleRotationFloat(EntityDuck livingBase, float partialTicks) {
  13.         float f = livingBase.oFlap + (livingBase.wingRotation - livingBase.oFlap) * partialTicks;
  14.         float f1 = livingBase.oFlapSpeed + (livingBase.destPos - livingBase.oFlapSpeed) * partialTicks;
  15.         return (MathHelper.sin(f) + 1.0F) * f1;
  16.     }
  17. }
复制代码


RenderDuckEgg.java:
  1. public class RenderDuckEgg extends RenderSnowball<EntityDuckEgg> {
  2.     public RenderDuckEgg(RenderManager renderManagerIn) {
  3.         super(renderManagerIn, RegisterLoader.itemDuckEgg, Minecraft.getMinecraft().getRenderItem());
  4.     }
  5. }
复制代码

modist
本帖最后由 zjx475 于 2020-4-16 13:01 编辑

你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个ModConfig中的两个常量是多少?它们不能相同。

vvvbbbcz
zjx475 发表于 2020-4-16 12:32
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个Mo ...

加了modid,还是不行。
ModConfig里的两个常量分别为100000001和100000002,不会重复。

modist
本帖最后由 zjx475 于 2020-4-17 11:38 编辑
vvvbb** 发表于 2020-4-16 18:55
加了modid,还是不行。
ModConfig里的两个常量分别为100000001和100000002,不会重复。 ...

奇怪,我大概按照你的意思试了一下,发现并没有问题。
或许你可以把你的mod发给我,我运行一下看看问题在哪里?(要知道我特地为此重新配置了1.12的工作环境qwq)

vvvbbbcz
zjx475 发表于 2020-4-16 12:32
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个Mo ...

MOD在这,密码我私聊发给你

modist
vvvbb** 发表于 2020-4-17 17:50
MOD在这,密码我私聊发给你

你把.tracker(64, 1, false)和.tracker(80, 3, false)中的false改为true试试?

qwq执范
id重复,在注册实体那数字id改下就可以

vvvbbbcz
qwq执范 发表于 2020-4-22 17:16
id重复,在注册实体那数字id改下就可以

其实是ModConfig.java里实体ID的常量的ConfigName重复,ID并没有重复,后来才发现的

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