本帖最后由 vvvbbbcz 于 2020-4-29 16:26 编辑
已解决,解决方案:ModConfig.java中的ConfigName重复了,尽管两个ID并不重复,但Minecraft还是认为使用的是同一个ID
我本来想在MOD加入新生物:鸭子,而且一切正常,但当我想要加入鸭子蛋的实体(投掷物)时,却发现右键鸭子蛋时,扔出去的实体的模型是“鸭子”的,而不是“鸭子蛋”的。但我看了,模型、实体都是正常注册。 之后,我又把注册鸭子的代码与注册鸭子蛋的代码互换顺序,发现鸭子蛋的模型正常了,但鸭子的模型变成了鸭子蛋的模型,即:顺序注册代码顺序在最前的实体,模型正常;而注册顺序在后的实体,就直接用注册顺序最前的实体的模型。
两种注册方法我都试过(EntityRegistry和RegistryEvent.Register<EntityEntry>),都是一样的结果。
附:注册实体与对应的模型的代码
已解决,解决方案:ModConfig.java中的ConfigName重复了,尽管两个ID并不重复,但Minecraft还是认为使用的是同一个ID
我本来想在MOD加入新生物:鸭子,而且一切正常,但当我想要加入鸭子蛋的实体(投掷物)时,却发现右键鸭子蛋时,扔出去的实体的模型是“鸭子”的,而不是“鸭子蛋”的。但我看了,模型、实体都是正常注册。 之后,我又把注册鸭子的代码与注册鸭子蛋的代码互换顺序,发现鸭子蛋的模型正常了,但鸭子的模型变成了鸭子蛋的模型,即:顺序注册代码顺序在最前的实体,模型正常;而注册顺序在后的实体,就直接用注册顺序最前的实体的模型。
两种注册方法我都试过(EntityRegistry和RegistryEvent.Register<EntityEntry>),都是一样的结果。
附:注册实体与对应的模型的代码


1111111111111111111111111112222222222222222222222222222222222
版本是什么?RenderDuck和RenderDuckEgg能看一下吗?
zjx475 发表于 2020-4-16 09:06
版本是什么?RenderDuck和RenderDuckEgg能看一下吗?
Forge版本:forge-14.23.5.2768-mdk
RenderDuck.java:
- public class RenderDuck extends RenderLiving<EntityDuck> {
- private static final ResourceLocation TEXTURE = new ResourceLocation(LargeProjectsLao8.MODID + ":textures/entities/duck.png");
- public RenderDuck(RenderManager rendermanagerIn) {
- super(rendermanagerIn, new ModelDuck(), 0.5F);
- }
- @Nullable
- @Override
- protected ResourceLocation getEntityTexture(@Nonnull EntityDuck entity) {
- return TEXTURE;
- }
- @Override
- protected float handleRotationFloat(EntityDuck livingBase, float partialTicks) {
- float f = livingBase.oFlap + (livingBase.wingRotation - livingBase.oFlap) * partialTicks;
- float f1 = livingBase.oFlapSpeed + (livingBase.destPos - livingBase.oFlapSpeed) * partialTicks;
- return (MathHelper.sin(f) + 1.0F) * f1;
- }
- }
RenderDuckEgg.java:
- public class RenderDuckEgg extends RenderSnowball<EntityDuckEgg> {
- public RenderDuckEgg(RenderManager renderManagerIn) {
- super(renderManagerIn, RegisterLoader.itemDuckEgg, Minecraft.getMinecraft().getRenderItem());
- }
- }
本帖最后由 zjx475 于 2020-4-16 13:01 编辑
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个ModConfig中的两个常量是多少?它们不能相同。
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个ModConfig中的两个常量是多少?它们不能相同。
zjx475 发表于 2020-4-16 12:32
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个Mo ...
加了modid,还是不行。
ModConfig里的两个常量分别为100000001和100000002,不会重复。
本帖最后由 zjx475 于 2020-4-17 11:38 编辑
奇怪,我大概按照你的意思试了一下,发现并没有问题。
或许你可以把你的mod发给我,我运行一下看看问题在哪里?(要知道我特地为此重新配置了1.12的工作环境qwq)
vvvbb** 发表于 2020-4-16 18:55
加了modid,还是不行。
ModConfig里的两个常量分别为100000001和100000002,不会重复。 ...
奇怪,我大概按照你的意思试了一下,发现并没有问题。
或许你可以把你的mod发给我,我运行一下看看问题在哪里?(要知道我特地为此重新配置了1.12的工作环境qwq)
zjx475 发表于 2020-4-16 12:32
你的id.(id:"duck"...)好像没有加modid,改为id:"[你的modid]:duck"试试?(duckegg也改一下)
还有,那个Mo ...
MOD在这,密码我私聊发给你
vvvbb** 发表于 2020-4-17 17:50
MOD在这,密码我私聊发给你
你把.tracker(64, 1, false)和.tracker(80, 3, false)中的false改为true试试?
id重复,在注册实体那数字id改下就可以
qwq执范 发表于 2020-4-22 17:16
id重复,在注册实体那数字id改下就可以
其实是ModConfig.java里实体ID的常量的ConfigName重复,ID并没有重复,后来才发现的