diff --git a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/Application.groovy b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/Application.groovy index 50ad6775..741b060b 100644 --- a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/Application.groovy +++ b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/Application.groovy @@ -26,7 +26,6 @@ import nz.net.ultraq.redhorizon.engine.graphics.imgui.ControlsOverlay import nz.net.ultraq.redhorizon.engine.graphics.imgui.DebugOverlay import nz.net.ultraq.redhorizon.engine.graphics.imgui.GuiEvent import nz.net.ultraq.redhorizon.engine.graphics.imgui.ImGuiElement -import nz.net.ultraq.redhorizon.engine.graphics.imgui.LogPanel import nz.net.ultraq.redhorizon.engine.input.InputEventStream import nz.net.ultraq.redhorizon.engine.input.KeyEvent import nz.net.ultraq.redhorizon.engine.scenegraph.Scene @@ -102,7 +101,6 @@ class Application implements EventTarget { graphicsSystem.on(SystemReadyEvent) { event -> graphicsSystem.imGuiLayer.addOverlay(new DebugOverlay(config.debug).toggleWith(inputEventStream, GLFW_KEY_D)) graphicsSystem.imGuiLayer.addOverlay(new ControlsOverlay(inputEventStream).toggleWith(inputEventStream, GLFW_KEY_C)) - graphicsSystem.imGuiLayer.addUiElement(new LogPanel(config.debug)) uiElements.each { overlayRenderPass -> graphicsSystem.imGuiLayer.addUiElement(overlayRenderPass) } diff --git a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/DebugOverlay.groovy b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/DebugOverlay.groovy index 821fbd19..d845aeb8 100644 --- a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/DebugOverlay.groovy +++ b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/DebugOverlay.groovy @@ -43,7 +43,7 @@ class DebugOverlay implements ImGuiElement { */ DebugOverlay(boolean enabled) { - ImGuiLoggingAppender.instance.on(ImGuiLogEvent) { event -> + ImGuiLoggingAppender.instance?.on(ImGuiLogEvent) { event -> if (event.persistentKey) { persistentLines[event.persistentKey] = event.message } diff --git a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/ImGuiLayer.groovy b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/ImGuiLayer.groovy index 9c490dbf..0c2f25b8 100644 --- a/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/ImGuiLayer.groovy +++ b/redhorizon-engine/source/nz/net/ultraq/redhorizon/engine/graphics/imgui/ImGuiLayer.groovy @@ -102,7 +102,7 @@ class ImGuiLayer implements AutoCloseable, InputSource { this.config = config debugOverlay = config.debug drawUiElements = config.startWithChrome - drawOverlays = config.startWithChrome + drawOverlays = config.debug shaderScanlines = config.scanlines shaderSharpUpscaling = true diff --git a/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/Explorer.groovy b/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/Explorer.groovy index b4d6c46f..113042fe 100644 --- a/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/Explorer.groovy +++ b/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/Explorer.groovy @@ -35,6 +35,7 @@ import nz.net.ultraq.redhorizon.engine.graphics.GraphicsConfiguration import nz.net.ultraq.redhorizon.engine.graphics.GraphicsRequests.SpriteSheetRequest import nz.net.ultraq.redhorizon.engine.graphics.MainMenu.MenuItem import nz.net.ultraq.redhorizon.engine.graphics.WindowMaximizedEvent +import nz.net.ultraq.redhorizon.engine.graphics.imgui.LogPanel import nz.net.ultraq.redhorizon.engine.input.KeyEvent import nz.net.ultraq.redhorizon.engine.resources.ResourceManager import nz.net.ultraq.redhorizon.engine.scenegraph.Scene @@ -110,7 +111,7 @@ class Explorer { maximized: userPreferences.get(ExplorerPreferences.WINDOW_MAXIMIZED), renderResolution: new Dimension(1280, 800), startWithChrome: true - ), entryList, nodeList) + ), new LogPanel(true), entryList, nodeList) .addTimeSystem() .onApplicationStart(this::applicationStart) .onApplicationStop(this::applicationStop) diff --git a/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/scripts/MapViewerScript.groovy b/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/scripts/MapViewerScript.groovy index 7dfbf06d..d463b12b 100644 --- a/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/scripts/MapViewerScript.groovy +++ b/redhorizon-explorer/source/nz/net/ultraq/redhorizon/explorer/scripts/MapViewerScript.groovy @@ -84,7 +84,7 @@ class MapViewerScript extends Script { } } removeEventFunctions << inputEventStream.on(ScrollEvent) { event -> - if (gameWindow.hovered) { + if (gameWindow ? gameWindow.hovered : true) { // Zoom in/out using CTRL + scroll up/down if (ctrl) { @@ -104,7 +104,7 @@ class MapViewerScript extends Script { } removeControlFunctions << inputEventStream.addControl( new MouseControl(GLFW_MOD_CONTROL, GLFW_MOUSE_BUTTON_RIGHT, 'Reset scale', { -> - if (gameWindow.hovered) { + if (gameWindow ? gameWindow.hovered : true) { camera.resetScale() } }) @@ -125,7 +125,7 @@ class MapViewerScript extends Script { removeEventFunctions << inputEventStream.on(MouseButtonEvent) { event -> if (event.button == GLFW_MOUSE_BUTTON_LEFT) { if (event.action == GLFW_PRESS) { - if (gameWindow.hovered) { + if (gameWindow ? gameWindow.hovered : true) { dragging = true } } @@ -137,7 +137,7 @@ class MapViewerScript extends Script { // Zoom in/out using the scroll wheel removeEventFunctions << inputEventStream.on(ScrollEvent) { event -> - if (gameWindow.hovered) { + if (gameWindow ? gameWindow.hovered : true) { if (event.yOffset < 0) { scaleIndex = Math.clamp(scaleIndex - 1, 0, scaleRange.length - 1) } @@ -149,7 +149,7 @@ class MapViewerScript extends Script { } removeControlFunctions << inputEventStream.addControl( new MouseControl(GLFW_MOUSE_BUTTON_RIGHT, 'Reset scale', { -> - if (gameWindow.hovered) { + if (gameWindow ? gameWindow.hovered : true) { camera.resetScale() } }) diff --git a/redhorizon-sandbox/build.gradle b/redhorizon-sandbox/build.gradle index 347506e4..c3159a19 100644 --- a/redhorizon-sandbox/build.gradle +++ b/redhorizon-sandbox/build.gradle @@ -23,8 +23,6 @@ dependencies { implementation project(':redhorizon-events') implementation project(':redhorizon-filetypes') implementation platform("org.lwjgl:lwjgl-bom:${lwjglVersion}") - implementation "ch.qos.logback:logback-classic:${logbackVersion}" - implementation 'nz.net.ultraq.preferences:preferences:3.1.0' implementation "org.joml:joml-primitives:${jomlPrimitivesVersion}" implementation 'org.lwjgl:lwjgl-glfw' } diff --git a/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/Sandbox.groovy b/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/Sandbox.groovy index 632ce5bc..40a7fbd7 100644 --- a/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/Sandbox.groovy +++ b/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/Sandbox.groovy @@ -16,7 +16,6 @@ package nz.net.ultraq.redhorizon.sandbox -import nz.net.ultraq.preferences.Preferences import nz.net.ultraq.redhorizon.classic.filetypes.IniFile import nz.net.ultraq.redhorizon.classic.filetypes.MapFile import nz.net.ultraq.redhorizon.classic.filetypes.PalFile @@ -28,6 +27,7 @@ import nz.net.ultraq.redhorizon.engine.graphics.GraphicsConfiguration import nz.net.ultraq.redhorizon.engine.resources.ResourceManager import nz.net.ultraq.redhorizon.engine.scenegraph.Scene import nz.net.ultraq.redhorizon.explorer.PaletteType +import nz.net.ultraq.redhorizon.explorer.objects.GridLines import nz.net.ultraq.redhorizon.explorer.scripts.MapViewerScript import nz.net.ultraq.redhorizon.filetypes.Palette @@ -43,7 +43,6 @@ import org.slf4j.LoggerFactory class Sandbox { private static final Logger logger = LoggerFactory.getLogger(Sandbox) - private static final Preferences userPreferences = new Preferences() private static final String mapFileName = 'scr01ea.ini' final Palette palette @@ -55,27 +54,25 @@ class Sandbox { 'nz.net.ultraq.redhorizon.classic.filetypes') static void main(String[] args) { - new Sandbox() + new Sandbox(args.length > 0 && args[0] == '--touchpad-input') System.exit(0) } /** * Constructor, build the sandbox. */ - Sandbox() { + Sandbox(boolean touchpadInput) { palette = getResourceAsStream(PaletteType.RA_TEMPERATE.file).withBufferedStream { inputStream -> return new PalFile(inputStream).withAlphaMask() } - touchpadInput = userPreferences.get(SandboxPreferences.TOUCHPAD_INPUT) + this.touchpadInput = touchpadInput new Application('Sandbox', '0.1.0') .addAudioSystem() .addGraphicsSystem(new GraphicsConfiguration( clearColour: Colour.GREY, - maximized: userPreferences.get(SandboxPreferences.WINDOW_MAXIMIZED), - renderResolution: new Dimension(1280, 800), - startWithChrome: true + renderResolution: new Dimension(1280, 800) )) .addTimeSystem() .onApplicationStart(this::applicationStart) @@ -85,6 +82,8 @@ class Sandbox { private void applicationStart(Application application, Scene scene) { + scene << new GridLines() + logger.info('Loading sandbox map, {}', mapFileName) var mapFile = getResourceAsStream(mapFileName).withBufferedStream { new IniFile(it) as MapFile } diff --git a/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/SandboxPreferences.groovy b/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/SandboxPreferences.groovy deleted file mode 100644 index 6a2484e7..00000000 --- a/redhorizon-sandbox/source/nz/net/ultraq/redhorizon/sandbox/SandboxPreferences.groovy +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2022, Emanuel Rabina (http://www.ultraq.net.nz/) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package nz.net.ultraq.redhorizon.sandbox - -import nz.net.ultraq.preferences.UserPreference - -import groovy.transform.TupleConstructor - -/** - * Preferences for the explorer. - * - * @author Emanuel Rabina - */ -@TupleConstructor -enum SandboxPreferences implements UserPreference { - - WINDOW_MAXIMIZED(false), - TOUCHPAD_INPUT(false) - - final Object defaultValue -}