Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorder menu screens #2074

Closed
wants to merge 5 commits into from
Closed

Conversation

msteiger
Copy link
Member

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
Copy link
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
Copy link
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
Copy link
Member Author

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
Copy link
Member

Also pinging @flo for Context reference

@flo
Copy link
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
Copy link
Member Author

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 mentioned this pull request Dec 31, 2015
10 tasks
@Cervator Cervator added Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. Topic: UI/UX Requests, Issues and Changes related to screens, artwork, sound and overall user experience labels Jan 2, 2016
@Cervator
Copy link
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
Copy link
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
Copy link
Member Author

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.

@flo
Copy link
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
Copy link
Member Author

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.

@msteiger
Copy link
Member Author

msteiger commented Apr 8, 2017

Will reopen as soon as I find the time to dig this up.

@msteiger msteiger closed this Apr 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. Topic: UI/UX Requests, Issues and Changes related to screens, artwork, sound and overall user experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants