如何给投掷物注册一个像生物一样的模型

dasffafa


版本信息
你使用的系统:win7 64bit
你是用的JDK: jdk1_8_0
你使用的IDE:
你使用的IDE版本:<2020.2.2>
Minecraft版本: <1.15.2>

错误情况简述
想要制作一个具有模型并且在飞行的时候自转的投掷物
继承MobRenderer的时候提示
Type parameter 'com.dasffafa.lemon.client.render.entity.FlyingShitRenderer' is not within its bound; should extend 'net.minecraft.entity.MobEntity'

查到的资料
我只查到了ChromeBall模组和MineCraftByExample模组,他们都没有这么干


FledgeXu


因为投掷物的模型应该是写死的,会直接渲染物品的模型。


dasffafa


刚才我制作投掷物的时候出了一个错误

[22:07:15] [Render thread/FATAL] [minecraft/ThreadTaskExecutor]: Error executing task on Client
java.lang.IllegalStateException: Invalid entity data item type for field 7 on entity PigEntity['��'/807, l='MpServer', x=-64.88, y=238.52, z=-73.01]: old=0(class java.lang.Byte), new=1 flying_shit(class net.minecraft.item.ItemStack)
	at net.minecraft.network.datasync.EntityDataManager.setEntryValue(EntityDataManager.java:246) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.network.datasync.EntityDataManager.setEntryValues(EntityDataManager.java:234) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.client.network.play.ClientPlayNetHandler.handleEntityMetadata(ClientPlayNetHandler.java:587) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.network.play.server.SEntityMetadataPacket.processPacket(SEntityMetadataPacket.java:50) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.network.play.server.SEntityMetadataPacket.processPacket(SEntityMetadataPacket.java:12) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.network.PacketThreadUtil.lambda$checkThreadAndEnqueue$0(PacketThreadUtil.java:19) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.util.concurrent.ThreadTaskExecutor.run(ThreadTaskExecutor.java:140) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.util.concurrent.RecursiveEventLoop.run(RecursiveEventLoop.java:22) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading}
	at net.minecraft.util.concurrent.ThreadTaskExecutor.driveOne(ThreadTaskExecutor.java:110) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.util.concurrent.ThreadTaskExecutor.drainTasks(ThreadTaskExecutor.java:97) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:934) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:558) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:177) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131] {}
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131] {}
	at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.1.2.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.1.2.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.1.2.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.1.2.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.1.2.jar:?] {}
	at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.2.0_mapped_snapshot_20200514-1.15.1-recomp.jar:?] {}

这个错误将会使模型无法成功注册,并且在渲染投掷物的时候渲染出一只猪
真的不可以吗?


FledgeXu


我不知道你在写什么……


dasffafa


其实我想说投掷物使用实体的模型是可能的
我是这么写的

public class FlyingShitRenderer implements IRenderFactory<FlyingShitEntity> {
    @Override
    public EntityRenderer<? super FlyingShitEntity> createRenderFor(EntityRendererManager manager) {
        ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
        return new SpriteRenderer<>(manager, itemRenderer);
    }
}
RenderingRegistry.registerEntityRenderingHandler(ModEntities.FLYING_SHIT_ENTITY_ENTITY_TYPE, new FlyingShitRenderer());

FledgeXu


那你可以试试自定义EntityRender和EntityModel,绑定到你的Entity上,我以为继承了ThrowableEntity



system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。