Terasology / MetalRenegades

A harsh western world with a robotic twist.
6 stars 16 forks source link

Crash during Settlement Generation #188

Open a-ivanov opened 4 months ago

a-ivanov commented 4 months ago

Playing MetalRenegades in Singleplayer. Just travelled around the world, no interaction whatsoever. Then the game suddenly crashed:

java.lang.NullPointerException: Cannot read field "builtUpRadius" because "parcels" is null
    at org.terasology.dynamicCities.settlements.SettlementEntityManager.checkOutsideAllSettlements(SettlementEntityManager.java:262)
    at org.terasology.metalrenegades.combat.system.AnimalSpawnSystem.isValidSpawnPosition(AnimalSpawnSystem.java:52)
    at org.terasology.wildAnimals.system.WildAnimalsSpawnSystem.findFlockAnimalSpawnPositions(WildAnimalsSpawnSystem.java:161)
    at org.terasology.wildAnimals.system.WildAnimalsSpawnSystem.tryFlockAnimalSpawn(WildAnimalsSpawnSystem.java:127)
    at org.terasology.wildAnimals.system.WildAnimalsSpawnSystem.onChunkGenerated(WildAnimalsSpawnSystem.java:117)
    at org.terasology.wildAnimals.system.WildAnimalsSpawnSystemMethodAccess.invoke(Unknown Source)
    at org.terasology.engine.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:399)
    at org.terasology.engine.entitySystem.event.internal.EventSystemImpl.sendStandardEvent(EventSystemImpl.java:264)
    at org.terasology.engine.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:255)
    at org.terasology.engine.core.bootstrap.eventSystem.AbstractEventSystemDecorator.send(AbstractEventSystemDecorator.java:67)
    at org.terasology.engine.network.NetworkEventSystemDecorator.send(NetworkEventSystemDecorator.java:54)
    at org.terasology.engine.core.bootstrap.eventSystem.AbstractEventSystemDecorator.send(AbstractEventSystemDecorator.java:67)
    at org.terasology.engine.recording.RecordingEventSystemDecorator.send(RecordingEventSystemDecorator.java:32)
    at org.terasology.engine.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:188)
    at org.terasology.engine.world.chunks.localChunkProvider.LocalChunkProvider.processReadyChunk(LocalChunkProvider.java:213)
    at org.terasology.engine.world.chunks.localChunkProvider.LocalChunkProvider.update(LocalChunkProvider.java:239)
    at org.terasology.engine.rendering.world.RenderableWorldImpl.update(RenderableWorldImpl.java:176)
    at org.terasology.engine.rendering.world.WorldRendererImpl.preRenderUpdate(WorldRendererImpl.java:285)
    at org.terasology.engine.rendering.world.WorldRendererImpl.render(WorldRendererImpl.java:325)
    at org.terasology.engine.core.modes.StateIngame.render(StateIngame.java:222)
    at org.terasology.engine.core.subsystem.lwjgl.LwjglGraphics.postUpdate(LwjglGraphics.java:79)
    at org.terasology.engine.core.TerasologyEngine.tick(TerasologyEngine.java:522)
    at org.terasology.engine.core.TerasologyEngine.mainLoop(TerasologyEngine.java:473)
    at org.terasology.engine.core.TerasologyEngine.runMain(TerasologyEngine.java:449)
    at org.terasology.engine.core.TerasologyEngine.run(TerasologyEngine.java:415)
    at org.terasology.engine.Terasology.call(Terasology.java:189)
    at org.terasology.engine.Terasology.call(Terasology.java:69)
    at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
    at picocli.CommandLine.access$1200(CommandLine.java:145)
    at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
    at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
    at picocli.CommandLine.execute(CommandLine.java:2058)
jdrueckert commented 4 months ago

Hi @a-ivanov Thanks for reporting that! When you travel through a MetalRenegades world, settlements will be spawned for you to explore. Looks like there's a bug in the settlement generation.

Right now we're still busy with reviving our engine, so I don't know yet when we'll get to investigating this, but it's great that you found and reported it :green_heart: This way it can be picked up by any interested party meanwhile or we can pick it up once we get back to gameplay/module work