- 117
- 7
Как сделать так, чтобы EntityThrowable отображался не как летящий айтем, а как летящий блок. Пытался написать свой EntityThrowable, объединенный с EntityFallingBlock и сделать рендер по аналогии с EntityThrowable из туториала, но игра крашится при вызове этого ентити. Понял, что проблема не в ентити, а в моем неумении создавать рендер для разных типов ентити. Вот краш-лог и код из рендера:
Код:
---- Minecraft Crash Report ----
// Uh... Did I do that?
Time: 11/24/18 5:40 PM
Description: Rendering entity in world
java.lang.ClassCastException: ru.mark0wka.left4zombies.entity.EntityBlock cannot be cast to net.minecraft.entity.item.EntityFallingBlock
at net.minecraft.client.renderer.entity.RenderFallingBlock.doRender(RenderFallingBlock.java:20)
at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:390)
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:374)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:655)
at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1398)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1312)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1115)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1207)
at net.minecraft.client.Minecraft.run(Minecraft.java:441)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.client.renderer.entity.RenderFallingBlock.doRender(RenderFallingBlock.java:20)
-- Entity being rendered --
Details:
Entity Type: l4z:stone (ru.mark0wka.left4zombies.entity.EntityBlock)
Entity ID: 103195
Entity Name: entity.l4z:stone.name
Entity's Exact location: -73.98, 19.90, -508.34
Entity's Block location: World: (-74,19,-509), Chunk: (at 6,1,3 in -5,-32; contains blocks -80,0,-512 to -65,255,-497), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Entity's Momentum: 0.00, 0.00, 0.00
Entity's Passengers: []
Entity's Vehicle: ~~ERROR~~ NullPointerException: null
-- Renderer details --
Details:
Assigned renderer: net.minecraft.client.renderer.entity.RenderFallingBlock@7aaa6200
Location: 0.00,0.00,0.00 - World: (0,0,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Rotation: 0.0
Delta: 0.56000644
Stacktrace:
at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:390)
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:374)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:655)
at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1398)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1312)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player344'/115, l='MpServer', x=-73.98, y=19.90, z=-508.34]]
Chunk stats: MultiplayerChunkCache: 625, 625
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options:
Level spawn location: World: (6,4,-437), Chunk: (at 6,0,11 in 0,-28; contains blocks 0,0,-448 to 15,255,-433), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Level time: 413129 game time, 7081 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 56 total; [EntitySlime['Слизень'/8192, l='MpServer', x=-124.60, y=4.00, z=-578.01], EntitySlime['Слизень'/16, l='MpServer', x=-146.16, y=4.00, z=-581.90], EntitySlime['Слизень'/17, l='MpServer', x=-153.84, y=4.00, z=-583.78], EntitySlime['Слизень'/18, l='MpServer', x=-152.57, y=4.00, z=-581.55], EntitySlime['Слизень'/19, l='MpServer', x=-137.13, y=4.00, z=-575.21], EntitySlime['Слизень'/20, l='MpServer', x=-145.00, y=4.00, z=-549.70], EntitySlime['Слизень'/21, l='MpServer', x=-129.44, y=4.00, z=-543.29], EntitySlime['Слизень'/22, l='MpServer', x=-130.84, y=4.00, z=-538.87], EntitySlime['Слизень'/23, l='MpServer', x=-124.31, y=4.42, z=-450.40], EntityBlock['entity.l4z:stone.name'/103195, l='MpServer', x=-73.98, y=19.90, z=-508.34], EntitySlime['Слизень'/27, l='MpServer', x=-122.38, y=4.14, z=-578.07], EntitySlime['Слизень'/28, l='MpServer', x=-134.23, y=4.28, z=-568.85], EntitySlime['Слизень'/29, l='MpServer', x=-111.18, y=4.00, z=-555.27], EntitySlime['Слизень'/30, l='MpServer', x=-109.56, y=5.17, z=-562.07], EntitySlime['Слизень'/31, l='MpServer', x=-129.98, y=2.00, z=-490.55], EntitySlime['Слизень'/34, l='MpServer', x=-110.14, y=4.00, z=-577.58], EntitySlime['Слизень'/35, l='MpServer', x=-91.97, y=5.10, z=-569.92], EntitySlime['Слизень'/36, l='MpServer', x=-99.89, y=4.00, z=-561.43], EntitySlime['Слизень'/38, l='MpServer', x=-95.85, y=4.17, z=-517.39], EntitySlime['Слизень'/39, l='MpServer', x=-102.79, y=2.10, z=-458.29], EntitySlime['Слизень'/46121, l='MpServer', x=-114.13, y=4.14, z=-578.66], EntitySlime['Слизень'/75819, l='MpServer', x=-138.23, y=4.27, z=-557.43], EntitySlime['Слизень'/45, l='MpServer', x=-84.69, y=4.92, z=-579.14], EntitySlime['Слизень'/52, l='MpServer', x=-73.39, y=4.00, z=-587.09], EntitySlime['Слизень'/53, l='MpServer', x=-68.06, y=4.04, z=-553.31], EntitySlime['Слизень'/54, l='MpServer', x=-67.19, y=4.76, z=-555.14], EntitySlime['Слизень'/55, l='MpServer', x=-57.28, y=4.76, z=-559.61], EntitySlime['Слизень'/56, l='MpServer', x=-71.95, y=4.00, z=-541.47], EntitySlime['Слизень'/57, l='MpServer', x=-65.05, y=4.72, z=-464.77], EntitySlime['Слизень'/58, l='MpServer', x=-84.79, y=4.92, z=-458.29], EntitySlime['Слизень'/62, l='MpServer', x=-34.25, y=4.55, z=-562.44], EntitySlime['Слизень'/63, l='MpServer', x=-68.65, y=4.00, z=-456.00], EntityCow['Корова'/65, l='MpServer', x=-30.78, y=4.00, z=-449.57], EntitySlime['Слизень'/66, l='MpServer', x=-63.85, y=4.27, z=-457.98], EntityPlayerSP['Player344'/115, l='MpServer', x=-73.98, y=19.90, z=-508.34], EntitySlime['Слизень'/66114, l='MpServer', x=-119.05, y=5.25, z=-504.36], EntityXPOrb['Сфера опыта'/69, l='MpServer', x=-22.22, y=4.00, z=-626.61], EntityXPOrb['Сфера опыта'/70, l='MpServer', x=-26.97, y=4.00, z=-627.50], EntityXPOrb['Сфера опыта'/71, l='MpServer', x=-24.96, y=4.00, z=-638.55], EntityXPOrb['Сфера опыта'/72, l='MpServer', x=-23.10, y=4.00, z=-638.67], EntityXPOrb['Сфера опыта'/73, l='MpServer', x=-25.01, y=4.00, z=-632.88], EntityXPOrb['Сфера опыта'/74, l='MpServer', x=-26.43, y=4.00, z=-634.07], EntityXPOrb['Сфера опыта'/75, l='MpServer', x=-31.79, y=4.00, z=-633.40], EntityXPOrb['Сфера опыта'/76, l='MpServer', x=-27.71, y=4.00, z=-632.41], EntityChicken['Курица'/80, l='MpServer', x=-29.92, y=4.00, z=-534.90], EntityXPOrb['Сфера опыта'/83, l='MpServer', x=-10.91, y=4.00, z=-632.83], EntityXPOrb['Сфера опыта'/84, l='MpServer', x=-14.64, y=4.00, z=-631.77], EntityChicken['Курица'/86, l='MpServer', x=-13.22, y=4.00, z=-464.54], EntityPig['Свинья'/87, l='MpServer', x=-5.21, y=4.00, z=-466.60], EntitySlime['Слизень'/40031, l='MpServer', x=-104.19, y=5.25, z=-563.94], EntityXPOrb['Сфера опыта'/116, l='MpServer', x=-17.93, y=4.00, z=-640.69], EntitySlime['Слизень'/47220, l='MpServer', x=-134.43, y=5.17, z=-547.32], EntityXPOrb['Сфера опыта'/117, l='MpServer', x=-20.71, y=4.00, z=-642.74], EntityXPOrb['Сфера опыта'/118, l='MpServer', x=-21.00, y=4.00, z=-641.56], EntityXPOrb['Сфера опыта'/119, l='MpServer', x=-24.85, y=4.00, z=-646.45], EntityXPOrb['Сфера опыта'/120, l='MpServer', x=-23.44, y=4.00, z=-642.57]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:461)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2886)
at net.minecraft.client.Minecraft.run(Minecraft.java:462)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)
Код:
public class RenderEntityBlock implements IRenderFactory
{
public final Block block;
public RenderEntityBlock(Block block)
{
this.block = block;
}
@Override
public Render createRenderFor(RenderManager manager)
{
return new RenderFallingBlock(manager);
}
}