Reorder menu screens #2074

Open
wants to merge 5 commits into
from

Projects

None yet

5 participants

@msteiger
Contributor

Fixes #2068

In the next step, more game content could be loaded already for the preview screen. This should enable previews of TtA and Cities.

Video showcase: https://youtu.be/SKfROUg3aVg

@GooeyHub
Member

Refer to this link for build results (access rights to CI server needed):
http://jenkins.terasology.org/job/TerasologyPRs/352/
Hooray Jenkins reported success with all tests good!

@Cervator
Member

Good stuff, video looks great :-)

I noted this looks to hit that switch where the music restarts? Any easy way to avoid that?

I figured "Next" would be a good new caption for the button that continues to preview/config. That seems like a perfect spot to also scan for and list custom hot keys for the active mix of models?

Hitting some oddities though. First time through on Core (with an existing config.cfg which also enabled Sample) I started without an inventory (no items nor able to open inventory with i) and couldn't pick up blocks. Pretty sure there were a bunch of new warnings on startup.

Went back to main menu, picked the Cities template, started, got to where the music stopped but then the game stalled with this in the log:

18:12:29.398 [main] WARN  o.t.engine.internal.TimeBase - Delta too great (5969), capping to 1000
18:12:35.533 [Parallel Operation] WARN  org.reflections.Reflections - given scan urls are empty. set urls in the configuration
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: engine:0.54.6-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: CommonWorld:0.2.2-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: Core:0.54.6-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: Fences:0.1.1-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: MarkovChains:1.5.1-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: NameGenerator:0.4.1-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: Pathfinding:0.1.2-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: StructuralResources:0.2.1-SNAPSHOT
18:12:35.536 [Parallel Operation] INFO  o.t.r.n.l.m.PreviewWorldScreen - Activating module: Cities:0.6.1-SNAPSHOT
18:12:42.296 [Parallel Operation] WARN  o.t.rendering.nui.asset.UIFormat - Field 'emptyIcon' not recognized for interface org.terasology.rendering.nui.UIWidget in {"type":"UIIconBar","id":"breathBar","icon":"engine:icons#bubble","family":"breathBar","emptyIcon":"engine:icons#burstBubble","halfIconMode":"shrink","spacing":2,"maxIcons":10,"layoutInfo":{"use-content-width":true,"use-content-height":true,"position-left":{"target":"CENTER"},"position-right":{"target":"RIGHT","widget":"toolbar"},"position-bottom":{"target":"TOP","widget":"toolbar","offset":1}}}
18:12:42.296 [Parallel Operation] WARN  o.t.rendering.nui.asset.UIFormat - Field 'crosshairIcon' not recognized for interface org.terasology.rendering.nui.UIWidget in {"type":"UICrosshair","id":"crosshair","crosshairIcon":"engine:gui#crosshair","chargeStages":["engine:gui#crosshairCharge1","engine:gui#crosshairCharge2","engine:gui#crosshairCharge3","engine:gui#crosshairCharge4","engine:gui#crosshairCharge5","engine:gui#crosshairCharge6","engine:gui#crosshairCharge7","engine:gui#crosshairCharge8"],"layoutInfo":{"use-content-width":true,"use-content-height":true,"position-horizontal-center":{},"position-vertical-center":{}}}
18:12:44.240 [Parallel Operation] ERROR o.t.r.n.l.m.PreviewWorldScreen - Unable to load world generator: Cities:city for a 2d preview
java.lang.NullPointerException: null
    at org.terasology.cities.BlockTheme$Builder.<init>(BlockTheme.java:118) ~[na:na]
    at org.terasology.cities.BlockTheme$Builder.<init>(BlockTheme.java:107) ~[na:na]
    at org.terasology.cities.BlockTheme.builder(BlockTheme.java:56) ~[na:na]
    at org.terasology.cities.CityWorldGenerator.createWorld(CityWorldGenerator.java:100) ~[na:na]
    at org.terasology.world.generation.BaseFacetedWorldGenerator.getWorldBuilder(BaseFacetedWorldGenerator.java:87) ~[classes/:na]
    at org.terasology.world.generation.BaseFacetedWorldGenerator.setWorldSeed(BaseFacetedWorldGenerator.java:50) ~[classes/:na]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.loadEnvironment(PreviewWorldScreen.java:285) [classes/:na]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.lambda$setGameManifest$5(PreviewWorldScreen.java:262) [classes/:na]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen$$Lambda$83/65080774.call(Unknown Source) [classes/:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_45]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
18:12:44.245 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception, attempting clean game shutdown
java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.configureProperties(PreviewWorldScreen.java:156) ~[classes/:na]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.lambda$setGameManifest$4(PreviewWorldScreen.java:259) ~[classes/:na]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen$$Lambda$82/2007599722.accept(Unknown Source) ~[na:na]
    at org.terasology.rendering.nui.layers.mainMenu.WaitPopup.update(WaitPopup.java:97) ~[classes/:na]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.update(NUIManagerInternal.java:396) ~[classes/:na]
    at org.terasology.engine.modes.StateMainMenu.updateUserInterface(StateMainMenu.java:164) ~[classes/:na]
    at org.terasology.engine.modes.StateMainMenu.update(StateMainMenu.java:143) ~[classes/:na]
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:414) ~[classes/:na]
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369) ~[classes/:na]
    at org.terasology.engine.Terasology.main(Terasology.java:154) [classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na]
18:12:44.245 [main] INFO  o.terasology.engine.TerasologyEngine - Shutting down Terasology...
18:12:44.248 [main] ERROR o.terasology.engine.TerasologyEngine - Clean game shutdown after an uncaught exception failed
java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.onClosed(PreviewWorldScreen.java:193) ~[classes/:na]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.clear(NUIManagerInternal.java:362) ~[classes/:na]
    at org.terasology.engine.modes.StateMainMenu.dispose(StateMainMenu.java:123) ~[classes/:na]
    at org.terasology.engine.TerasologyEngine.cleanup(TerasologyEngine.java:439) ~[classes/:na]
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:375) ~[classes/:na]
    at org.terasology.engine.Terasology.main(Terasology.java:154) [classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na]
java.lang.NullPointerException
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.configureProperties(PreviewWorldScreen.java:156)
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.lambda$setGameManifest$4(PreviewWorldScreen.java:259)
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen$$Lambda$82/2007599722.accept(Unknown Source)
    at org.terasology.rendering.nui.layers.mainMenu.WaitPopup.update(WaitPopup.java:97)
    at org.terasology.rendering.nui.internal.NUIManagerInternal.update(NUIManagerInternal.java:396)
    at org.terasology.engine.modes.StateMainMenu.updateUserInterface(StateMainMenu.java:164)
    at org.terasology.engine.modes.StateMainMenu.update(StateMainMenu.java:143)
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:414)
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369)
    at org.terasology.engine.Terasology.main(Terasology.java:154)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
For more details, see the log files in J:\Dev\Terasology\Git\integrate\Terasology\logs\2015-12-19_18-07-22

Something wrong with the environment setup?

Deleted my existing config.cfg just in case, started again, same issue in Core. Back to main menu, picked JoshariasSurvival this time. Took a while to load the preview screen, restarted the music, hit play, and made it into the game. Got a pile of reflection errors on startup though:

18:17:02.924 [main] INFO  o.t.w.b.internal.BlockManagerImpl - Registered Block IRLCorp:FluidTank.BACK with id 126
Unexpected exception
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at org.terasology.module.sandbox.ModuleSecurityManager.checkPermission(ModuleSecurityManager.java:49)
    at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1564)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:311)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at ch.qos.logback.classic.spi.PackagingDataCalculator.<clinit>(PackagingDataCalculator.java:43)
    at ch.qos.logback.classic.spi.ThrowableProxy.getPackagingDataCalculator(ThrowableProxy.java:135)
    at ch.qos.logback.classic.spi.ThrowableProxy.calculatePackagingData(ThrowableProxy.java:144)
    at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:124)
    at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:440)
    at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:396)
    at ch.qos.logback.classic.Logger.error(Logger.java:559)
    at org.terasology.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:513)
    at org.terasology.entitySystem.event.internal.EventSystemImpl.sendStandardEvent(EventSystemImpl.java:269)
    at org.terasology.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:260)
    at org.terasology.entitySystem.entity.internal.PojoEntityManager.create(PojoEntityManager.java:169)
    at org.terasology.entitySystem.entity.EntityBuilder.build(EntityBuilder.java:46)
    at org.terasology.world.block.typeEntity.BlockTypeEntityGenerator.generateBlockTypeEntity(BlockTypeEntityGenerator.java:91)
    at org.terasology.world.block.typeEntity.BlockTypeEntityGenerator.onBlockFamilyRegistered(BlockTypeEntityGenerator.java:75)
    at org.terasology.world.block.internal.BlockManagerImpl.registerFamily(BlockManagerImpl.java:180)
    at org.terasology.world.block.internal.BlockManagerImpl.getBlockFamily(BlockManagerImpl.java:244)
    at org.terasology.world.block.internal.BlockManagerImpl.getBlockFamily(BlockManagerImpl.java:222)
    at org.terasology.workstation.process.inventory.BlockFamilyOutputComponent.createOutputItems(BlockFamilyOutputComponent.java:55)
    at org.terasology.workstation.process.inventory.BlockFamilyOutputComponent.createOutputItems(BlockFamilyOutputComponent.java:42)
    at org.terasology.workstation.process.inventory.InventoryOutputComponent.checkForErrors(InventoryOutputComponent.java:171)
    at org.terasology.workstation.system.ProcessPartWorkstationProcess.<init>(ProcessPartWorkstationProcess.java:96)
    at org.terasology.workstation.system.DefaultWorkstationProcessFactory.createProcess(DefaultWorkstationProcessFactory.java:32)
    at org.terasology.workstation.system.WorkstationRegistryImpl.registerProcesses(WorkstationRegistryImpl.java:92)
    at org.terasology.workstation.system.WorkstationRegistryImpl.getWorkstationProcesses(WorkstationRegistryImpl.java:54)
    at org.terasology.workstationInGameHelp.systems.WorkstationItemsInGameHelpCommonSystem.postBegin(WorkstationItemsInGameHelpCommonSystem.java:62)
    at org.terasology.engine.modes.loadProcesses.PostBeginSystems.step(PostBeginSystems.java:44)
    at org.terasology.engine.modes.StateLoading.update(StateLoading.java:240)
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:414)
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369)
    at org.terasology.engine.Terasology.main(Terasology.java:154)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.reflect")

Still couldn't pick up stuff (can break stuff fine). Opening the inventory showed the extension JS adds but not the base inventory.

@msteiger
Contributor

I suspect that this is due the fact that a fresh context is derived from from GameEngine, but the environment switch is made in the menu context. How would you approach this, @immortius?

And is your comment to #1743 still valid or is it now possible to prevent the unloading of assets when changing the module environment?

@Cervator
Member

Also pinging @flo for Context reference

@flo
Contributor
flo commented Dec 23, 2015

Could not the context created for the preview be the same like the one that gets used ingame? (I haven't reviewed the patch, so I might be off)

@msteiger
Contributor

Yes, I would think so, too. I'm unsure how that instance would be passed/derived from the menu one and whether it should be disposed when returning back to the main menu.

@Cervator Cervator referenced this pull request Dec 31, 2015
Merged

Add basic Controller support #2096

0 of 10 tasks complete
@Cervator
Member
Cervator commented Jan 3, 2016

Bump. The RC1 build now hits a non-crash error on attempting a preview on Cities. Hopefully we can move forward with this refactor and get it fixed up :-)

18:51:47.325 [main] WARN  org.reflections.Reflections - given scan urls are empty. set urls in the configuration
18:51:48.436 [main] ERROR o.t.r.n.l.m.PreviewWorldScreen - Unable to load world generator: Cities:city for a 2d preview
java.lang.NullPointerException: null
    at org.terasology.cities.BlockTheme$Builder.<init>(BlockTheme.java:118) ~[na:na]
    at org.terasology.cities.BlockTheme$Builder.<init>(BlockTheme.java:107) ~[na:na]
    at org.terasology.cities.BlockTheme.builder(BlockTheme.java:56) ~[na:na]
    at org.terasology.cities.CityWorldGenerator.createWorld(CityWorldGenerator.java:100) ~[na:na]
    at org.terasology.world.generation.BaseFacetedWorldGenerator.getWorldBuilder(BaseFacetedWorldGenerator.java:87) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.world.generation.BaseFacetedWorldGenerator.setWorldSeed(BaseFacetedWorldGenerator.java:50) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.onOpened(PreviewWorldScreen.java:133) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.prepare(NUIManagerInternal.java:596) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.pushScreen(NUIManagerInternal.java:284) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.pushScreen(NUIManagerInternal.java:248) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.pushScreen(NUIManagerInternal.java:226) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.pushScreen(NUIManagerInternal.java:257) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.layers.mainMenu.CreateGameScreen$10.onActivated(CreateGameScreen.java:260) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.widgets.UIButton.activate(UIButton.java:135) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.widgets.UIButton.access$200(UIButton.java:40) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.widgets.UIButton$1.onMouseRelease(UIButton.java:81) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.CanvasImpl.processMouseRelease(CanvasImpl.java:252) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.mouseButtonEvent(NUIManagerInternal.java:482) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternalMethodAccess.invoke(Unknown Source) [reflectasm-1.11.0.jar:1610, develop, 1610, alpha]
    at org.terasology.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:506) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.entitySystem.event.internal.EventSystemImpl.sendConsumableEvent(EventSystemImpl.java:279) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:258) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:145) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.input.InputSystem.sendMouseEvent(InputSystem.java:446) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.input.InputSystem.processMouseInput(InputSystem.java:296) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.input.InputSystem.update(InputSystem.java:244) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.modes.StateMainMenu.handleInput(StateMainMenu.java:138) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.subsystem.lwjgl.LwjglInput.postUpdate(LwjglInput.java:52) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:423) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.Terasology.main(Terasology.java:154) [Terasology.jar:1610, origin/develop, 1610]
18:51:48.438 [main] WARN  o.t.engine.internal.TimeBase - Delta too great (1164), capping to 1000
18:51:50.083 [main] WARN  o.t.r.nui.layers.mainMenu.WaitPopup - An error occurred during execution
java.util.concurrent.ExecutionException: java.lang.NullPointerException
    at java.util.concurrent.FutureTask.report(Unknown Source) ~[na:1.8.0_45]
    at java.util.concurrent.FutureTask.get(Unknown Source) ~[na:1.8.0_45]
    at org.terasology.rendering.nui.layers.mainMenu.WaitPopup.update(WaitPopup.java:94) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.update(NUIManagerInternal.java:396) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.modes.StateMainMenu.updateUserInterface(StateMainMenu.java:164) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.modes.StateMainMenu.update(StateMainMenu.java:143) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:414) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.Terasology.main(Terasology.java:154) [Terasology.jar:1610, origin/develop, 1610]
Caused by: java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.lambda$updatePreview$46(PreviewWorldScreen.java:283) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen$$Lambda$82/1519100796.call(Unknown Source) ~[na:na]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.8.0_45]
    at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_45]
18:51:51.450 [main] WARN  o.t.r.nui.layers.mainMenu.WaitPopup - An error occurred during execution
java.util.concurrent.ExecutionException: java.lang.NullPointerException
    at java.util.concurrent.FutureTask.report(Unknown Source) ~[na:1.8.0_45]
    at java.util.concurrent.FutureTask.get(Unknown Source) ~[na:1.8.0_45]
    at org.terasology.rendering.nui.layers.mainMenu.WaitPopup.update(WaitPopup.java:94) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.internal.NUIManagerInternal.update(NUIManagerInternal.java:396) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.modes.StateMainMenu.updateUserInterface(StateMainMenu.java:164) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.modes.StateMainMenu.update(StateMainMenu.java:143) [engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:414) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:369) [engine-1.0.0-SNAPSHOT.jar:1610, origin/develop, 1610]
    at org.terasology.engine.Terasology.main(Terasology.java:154) [Terasology.jar:1610, origin/develop, 1610]
Caused by: java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen.lambda$updatePreview$46(PreviewWorldScreen.java:283) ~[engine-1.0.0-SNAPSHOT.jar:1610, develop, 1610, alpha]
    at org.terasology.rendering.nui.layers.mainMenu.PreviewWorldScreen$$Lambda$82/1519100796.call(Unknown Source) ~[na:na]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.8.0_45]
    at java.lang.Thread.run(Unknown Source) ~[na:1.8.0_45]
18:51:52.381 [main] ERROR o.t.e.event.internal.EventSystemImpl - Failed to invoke event

@msteiger - ping!

@Cervator
Member

@msteiger / @flo should we try a best-effort to get this thing working and merged before it gets too dusty and the alpha ship sails? Even if it isn't quite perfect yet.

@msteiger
Contributor

I think that this need some more polishing before it can be merged. So I suggest shipping alpha without it. Will try to have a more thorough look over the next weekend.

@rzats rzats removed the in progress label Oct 25, 2016
@Cervator Cervator referenced this pull request Jan 10, 2017
Open

FlexibleConfig #2668

@flo
Contributor
flo commented Jan 21, 2017

@msteiger what shall we do with this PR? It's now about a year old. Do you still plan to polish it and bring it in?

@msteiger
Contributor

Thanks for the reminder. Actually, yes, I haven't forgotten - it's still on my todo list. It might take a little more time (1-2 weeks?) before I can dig into it again. We can close it and I'll reopen as soon as it's ready if you like.

@Cervator Cervator referenced this pull request Feb 6, 2017
Open

World storage / phase improvements #2774

0 of 11 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment