Coder Social home page Coder Social logo

additionalworlds's People

Contributors

cervator avatar chrishowes55 avatar eviltak avatar jasyohuang avatar jdrueckert avatar kokecacao avatar meta-maxim avatar mjuvekar7 avatar nicholasbatesnz avatar pandacontron avatar qwertygiy avatar skaldarnar avatar smsunarto avatar steampunkery avatar sufurelite avatar tejasprak avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

additionalworlds's Issues

Cleanup Screenshots

Currently there are a bunch of images in the screenshots directory of this repository. This needs to be changed as it could potentially cause the module to become huge because of the unnecessary bloat of the images.
A possible fix for this is to move all images to an image hosting service and keep the links in the README or a separate file.

Occasional error on creating new world

Trying to generate a world with the "I'm getting thirsty" generator gives the following error:

java.lang.RuntimeException: Cannot set a changed component with a null component variable

At first I thought this was part of #27, but after tracing the code I found that the issue stems from trying to load the configuration for MountainsProvider. Why exactly this causes an issue is beyond me, since all of the code follows the world generation tutorial very closely, and the MountainsProvider class in particular is identical to the one in that repository, yet the Tutorial World Generator runs perfectly fine.

Full stacktrace:

java.lang.RuntimeException: Cannot set a changed component with a null component variable
        at org.terasology.persistence.internal.EntityDelta.setChangedComponent(EntityDelta.java:34)
        at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentChange(EntitySetDeltaRecorder.java:70)
        at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentAdded(EntitySetDeltaRecorder.java:61)
        at org.terasology.persistence.internal.ReadWriteStorageManager.onEntityComponentAdded(ReadWriteStorageManager.java:528)
        at org.terasology.entitySystem.entity.internal.PojoEntityManager.notifyComponentAdded(PojoEntityManager.java:704)
        at org.terasology.entitySystem.entity.internal.PojoEntityManager.addComponent(PojoEntityManager.java:539)
        at org.terasology.entitySystem.entity.internal.BaseEntityRef.addComponent(BaseEntityRef.java:167)
        at org.terasology.engine.modes.loadProcesses.CreateWorldEntity.step(CreateWorldEntity.java:102)
        at org.terasology.engine.modes.StateLoading.update(StateLoading.java:243)
        at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:458)
        at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:421)
        at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:397)
        at org.terasology.engine.Terasology.main(Terasology.java:155)

World generator plugin issues

It seems like a few of the world generators don't function properly because of their lakes being added as plugins. This is probably because everyone followed the tutorial where lakes were implemented this way. This leads to issues where the lakes from one generator interfere with another, causing crashes or hangs.

The "I'm getting thirsty" and "Lava Land" generators crash with the following error:

java.lang.RuntimeException: Cannot set a changed component with a null component variable
        at org.terasology.persistence.internal.EntityDelta.setChangedComponent(EntityDelta.java:34)
        at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentChange(EntitySetDeltaRecorder.java:70)
        at org.terasology.persistence.internal.EntitySetDeltaRecorder.onEntityComponentAdded(EntitySetDeltaRecorder.java:61)
        at org.terasology.persistence.internal.ReadWriteStorageManager.onEntityComponentAdded(ReadWriteStorageManager.java:528)
        at org.terasology.entitySystem.entity.internal.PojoEntityManager.notifyComponentAdded(PojoEntityManager.java:704)
        at org.terasology.entitySystem.entity.internal.PojoEntityManager.addComponent(PojoEntityManager.java:539)
        at org.terasology.entitySystem.entity.internal.BaseEntityRef.addComponent(BaseEntityRef.java:167)
        at org.terasology.engine.modes.loadProcesses.CreateWorldEntity.step(CreateWorldEntity.java:102)
        at org.terasology.engine.modes.StateLoading.update(StateLoading.java:243)
        at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:458)
        at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:421)
        at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:397)
        at org.terasology.engine.Terasology.main(Terasology.java:155)

Additionally, world generators outside of this module which use plugins will hang indefinitely while trying to load the lakes from "TropikGenerator", printing this stacktrace to console over and over:

java.lang.NullPointerException: null
        at org.terasology.additionalworlds.imgettingthirsty.LakesRasterizer.generateChunk(LakesRasterizer.java:43)
        at org.terasology.world.generation.WorldImpl.rasterizeChunk(WorldImpl.java:64)
        at org.terasology.world.generation.BaseFacetedWorldGenerator.createChunk(BaseFacetedWorldGenerator.java:75)
        at org.terasology.world.chunks.localChunkProvider.LocalChunkProvider$1.run(LocalChunkProvider.java:657)
        at org.terasology.utilities.concurrency.TaskProcessor.run(TaskProcessor.java:50)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

This issue could be fixed simply by changing the implementations of lakes in every generator to use regular Providers and Rasterizers rather than plugins.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.