anonl / nvlist

Compare 026c443 ... +1 ... 81da140

Coverage Reach
core/src/main/java/nl/weeaboo/vn/impl/script/lib/TextLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/ImageFxLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/SaveLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/ImageLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/BasicTagHandler.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/LuaLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/GuiLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/SystemLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/CoreLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/SeenLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/SoundLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/InterpolatorsLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/TweenLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/InputLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/BasicScriptInitializer.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/LogLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lib/VideoLib.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaConsole.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptLoader.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaConvertUtil.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptUtil.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptThread.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptContext.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaPrefsAdapter.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptEnv.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaStorage.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaScriptFunction.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaDebugEvent.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaTypeCoercions.java core/src/main/java/nl/weeaboo/vn/impl/script/lua/LuaImpl.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/RuntimeTextParser.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnParser4.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnParser3.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/ParserUtil.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/TextParser.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/CompiledLvnFile.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/StyleStack.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnMode.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnLine.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnParserFactory.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/AbstractLvnParser.java core/src/main/java/nl/weeaboo/vn/impl/script/lvn/LvnParseException.java core/src/main/java/nl/weeaboo/vn/impl/script/ScriptEventDispatcher.java core/src/main/java/nl/weeaboo/vn/impl/script/DefaultScriptExceptionHandler.java core/src/main/java/nl/weeaboo/vn/impl/scene/Transformable.java core/src/main/java/nl/weeaboo/vn/impl/scene/Button.java core/src/main/java/nl/weeaboo/vn/impl/scene/Screen.java core/src/main/java/nl/weeaboo/vn/impl/scene/ImageDrawable.java core/src/main/java/nl/weeaboo/vn/impl/scene/ButtonRenderer.java core/src/main/java/nl/weeaboo/vn/impl/scene/Panel.java core/src/main/java/nl/weeaboo/vn/impl/scene/TextDrawable.java core/src/main/java/nl/weeaboo/vn/impl/scene/Layer.java core/src/main/java/nl/weeaboo/vn/impl/scene/Viewport.java core/src/main/java/nl/weeaboo/vn/impl/scene/AxisAlignedContainer.java core/src/main/java/nl/weeaboo/vn/impl/scene/VisualElement.java core/src/main/java/nl/weeaboo/vn/impl/scene/AnimatedRenderable.java core/src/main/java/nl/weeaboo/vn/impl/scene/ScreenTextState.java core/src/main/java/nl/weeaboo/vn/impl/scene/BoundsHelper.java core/src/main/java/nl/weeaboo/vn/impl/scene/GridPanel.java core/src/main/java/nl/weeaboo/vn/impl/scene/SceneUtil.java core/src/main/java/nl/weeaboo/vn/impl/scene/ButtonModel.java core/src/main/java/nl/weeaboo/vn/impl/scene/AbstractRenderable.java core/src/main/java/nl/weeaboo/vn/impl/scene/ButtonImageLoader.java core/src/main/java/nl/weeaboo/vn/impl/scene/ChildCollection.java core/src/main/java/nl/weeaboo/vn/impl/scene/ColorHelper.java core/src/main/java/nl/weeaboo/vn/impl/scene/TextLayoutElem.java core/src/main/java/nl/weeaboo/vn/impl/scene/VisualOrdering.java core/src/main/java/nl/weeaboo/vn/impl/scene/NullRenderer.java core/src/main/java/nl/weeaboo/vn/impl/core/ResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/core/DestructibleElemList.java core/src/main/java/nl/weeaboo/vn/impl/core/Context.java core/src/main/java/nl/weeaboo/vn/impl/core/ContextManager.java core/src/main/java/nl/weeaboo/vn/impl/core/SystemModule.java core/src/main/java/nl/weeaboo/vn/impl/core/EnvironmentFactory.java core/src/main/java/nl/weeaboo/vn/impl/core/Novel.java core/src/main/java/nl/weeaboo/vn/impl/core/StaticEnvironment.java core/src/main/java/nl/weeaboo/vn/impl/core/NovelPrefsStore.java core/src/main/java/nl/weeaboo/vn/impl/core/AbstractEnvironment.java core/src/main/java/nl/weeaboo/vn/impl/core/DefaultEnvironment.java core/src/main/java/nl/weeaboo/vn/impl/core/SkipState.java core/src/main/java/nl/weeaboo/vn/impl/core/ResourceQualifiers.java core/src/main/java/nl/weeaboo/vn/impl/core/RenderEnv.java core/src/main/java/nl/weeaboo/vn/impl/core/SimulationRateLimiter.java core/src/main/java/nl/weeaboo/vn/impl/core/FileResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/core/AlignUtil.java core/src/main/java/nl/weeaboo/vn/impl/core/DurationLogger.java core/src/main/java/nl/weeaboo/vn/impl/core/LruSet.java core/src/main/java/nl/weeaboo/vn/impl/core/ResourceMetaDataCache.java core/src/main/java/nl/weeaboo/vn/impl/core/Indirect.java core/src/main/java/nl/weeaboo/vn/impl/core/ContextFactory.java core/src/main/java/nl/weeaboo/vn/impl/core/Animation.java core/src/main/java/nl/weeaboo/vn/impl/core/LUTInterpolator.java core/src/main/java/nl/weeaboo/vn/impl/core/StaticRef.java core/src/main/java/nl/weeaboo/vn/impl/core/SizeQualifier.java core/src/main/java/nl/weeaboo/vn/impl/core/BuiltinAssets.java core/src/main/java/nl/weeaboo/vn/impl/core/SystemEnv.java core/src/main/java/nl/weeaboo/vn/impl/core/TransientListenerSupport.java core/src/main/java/nl/weeaboo/vn/impl/core/ContextUtil.java core/src/main/java/nl/weeaboo/vn/impl/core/EngineVersion.java core/src/main/java/nl/weeaboo/vn/impl/core/AbstractModule.java core/src/main/java/nl/weeaboo/vn/impl/core/LoggerNotifier.java core/src/main/java/nl/weeaboo/vn/impl/core/Destructibles.java core/src/main/java/nl/weeaboo/vn/impl/core/UnsupportedVersionException.java core/src/main/java/nl/weeaboo/vn/impl/core/ContextArgs.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/BlurTask.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/PingPongFbo.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/ImageCompositeConfig.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/ColorMatrix.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/ImageCompositeTask.java core/src/main/java/nl/weeaboo/vn/impl/render/fx/ColorMatrixTask.java core/src/main/java/nl/weeaboo/vn/impl/render/GLScreenRenderer.java core/src/main/java/nl/weeaboo/vn/impl/render/TriangleGrid.java core/src/main/java/nl/weeaboo/vn/impl/render/BaseScreenRenderer.java core/src/main/java/nl/weeaboo/vn/impl/render/OffscreenRenderTask.java core/src/main/java/nl/weeaboo/vn/impl/render/FboBackBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/RenderStats.java core/src/main/java/nl/weeaboo/vn/impl/render/HybridBackBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/RenderLog.java core/src/main/java/nl/weeaboo/vn/impl/render/DrawBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/DrawTransform.java core/src/main/java/nl/weeaboo/vn/impl/render/DirectBackBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/ScreenshotBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/OffscreenRenderTaskBuffer.java core/src/main/java/nl/weeaboo/vn/impl/render/BaseRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/TextRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/DistortQuadCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/LayerRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/GdxViewports.java core/src/main/java/nl/weeaboo/vn/impl/render/QuadRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/RenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/AsyncRenderTask.java core/src/main/java/nl/weeaboo/vn/impl/render/CustomRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/render/ScreenshotRenderCommand.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageDefinitionIO.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageDefinitionBuilder.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageDefinition.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageSubRect.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageDefinitionCache.java core/src/main/java/nl/weeaboo/vn/impl/image/desc/ImageDefinitionFileJson.java core/src/main/java/nl/weeaboo/vn/impl/image/ImageModule.java core/src/main/java/nl/weeaboo/vn/impl/image/TextureStore.java core/src/main/java/nl/weeaboo/vn/impl/image/BitmapTweenRenderer.java core/src/main/java/nl/weeaboo/vn/impl/image/NinePatchRenderer.java core/src/main/java/nl/weeaboo/vn/impl/image/NinePatch.java core/src/main/java/nl/weeaboo/vn/impl/image/GdxTexture.java core/src/main/java/nl/weeaboo/vn/impl/image/ResolutionFolderSelector.java core/src/main/java/nl/weeaboo/vn/impl/image/BitmapTweenConfig.java core/src/main/java/nl/weeaboo/vn/impl/image/TextureRenderer.java core/src/main/java/nl/weeaboo/vn/impl/image/ShaderStore.java core/src/main/java/nl/weeaboo/vn/impl/image/AbstractScreenshot.java core/src/main/java/nl/weeaboo/vn/impl/image/GdxTextureStore.java core/src/main/java/nl/weeaboo/vn/impl/image/PixelTextureData.java core/src/main/java/nl/weeaboo/vn/impl/image/NinePatchLoader.java core/src/main/java/nl/weeaboo/vn/impl/image/DecodingScreenshot.java core/src/main/java/nl/weeaboo/vn/impl/image/CrossFadeConfig.java core/src/main/java/nl/weeaboo/vn/impl/image/CrossFadeRenderer.java core/src/main/java/nl/weeaboo/vn/impl/image/ImageResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/image/VolatileTextureData.java core/src/main/java/nl/weeaboo/vn/impl/image/PixelTextureDataIO.java core/src/main/java/nl/weeaboo/vn/impl/image/AlignedTexture.java core/src/main/java/nl/weeaboo/vn/impl/image/PixmapDecodingScreenshot.java core/src/main/java/nl/weeaboo/vn/impl/image/EmptyScreenshot.java core/src/main/java/nl/weeaboo/vn/impl/image/WritableScreenshot.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveModule.java core/src/main/java/nl/weeaboo/vn/impl/save/Storage.java core/src/main/java/nl/weeaboo/vn/impl/save/StorageIO.java core/src/main/java/nl/weeaboo/vn/impl/save/UnmodifiableStorage.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveFileHeaderJson.java core/src/main/java/nl/weeaboo/vn/impl/save/SharedGlobalsSavePlugin.java core/src/main/java/nl/weeaboo/vn/impl/save/SeenLogSavePlugin.java core/src/main/java/nl/weeaboo/vn/impl/save/AnalyticsSavePlugin.java core/src/main/java/nl/weeaboo/vn/impl/save/PlayTimerSavePlugin.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveFileIO.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveFileHeader.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveParams.java core/src/main/java/nl/weeaboo/vn/impl/save/ThumbnailInfoJson.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveFile.java core/src/main/java/nl/weeaboo/vn/impl/save/JsonUtil.java core/src/main/java/nl/weeaboo/vn/impl/save/SaveFileConstants.java core/src/main/java/nl/weeaboo/vn/impl/sound/desc/SoundDefinitionIO.java core/src/main/java/nl/weeaboo/vn/impl/sound/desc/SoundDefinition.java core/src/main/java/nl/weeaboo/vn/impl/sound/desc/SoundDefinitionBuilder.java core/src/main/java/nl/weeaboo/vn/impl/sound/desc/SoundDefinitionCache.java core/src/main/java/nl/weeaboo/vn/impl/sound/desc/SoundDefinitionFileJson.java core/src/main/java/nl/weeaboo/vn/impl/sound/SoundController.java core/src/main/java/nl/weeaboo/vn/impl/sound/NativeAudio.java core/src/main/java/nl/weeaboo/vn/impl/sound/SoundModule.java core/src/main/java/nl/weeaboo/vn/impl/sound/Sound.java core/src/main/java/nl/weeaboo/vn/impl/sound/AbstractSound.java core/src/main/java/nl/weeaboo/vn/impl/sound/GdxMusicStore.java core/src/main/java/nl/weeaboo/vn/impl/sound/NativeAudioFactory.java core/src/main/java/nl/weeaboo/vn/impl/sound/SoundResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/stats/SeenLog.java core/src/main/java/nl/weeaboo/vn/impl/stats/Analytics.java core/src/main/java/nl/weeaboo/vn/impl/stats/FileLine.java core/src/main/java/nl/weeaboo/vn/impl/stats/PlayTimer.java core/src/main/java/nl/weeaboo/vn/impl/stats/StatsModule.java core/src/main/java/nl/weeaboo/vn/impl/stats/ResourceLoadLog.java core/src/main/java/nl/weeaboo/vn/impl/stats/AnalyticsPreloader.java core/src/main/java/nl/weeaboo/vn/impl/text/TextRenderer.java core/src/main/java/nl/weeaboo/vn/impl/text/GdxFontStore.java core/src/main/java/nl/weeaboo/vn/impl/text/TextLog.java core/src/main/java/nl/weeaboo/vn/impl/text/LoadingFontStore.java core/src/main/java/nl/weeaboo/vn/impl/text/TextModule.java core/src/main/java/nl/weeaboo/vn/impl/text/FontResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/text/TextUtil.java core/src/main/java/nl/weeaboo/vn/impl/layout/GridLayout.java core/src/main/java/nl/weeaboo/vn/impl/layout/LayoutElem.java core/src/main/java/nl/weeaboo/vn/impl/layout/DummyLayoutElem.java core/src/main/java/nl/weeaboo/vn/impl/layout/LayoutGroup.java core/src/main/java/nl/weeaboo/vn/impl/layout/DummyLayoutElemPeer.java core/src/main/java/nl/weeaboo/vn/impl/layout/NullLayout.java core/src/main/java/nl/weeaboo/vn/impl/input/NativeInput.java core/src/main/java/nl/weeaboo/vn/impl/input/Input.java core/src/main/java/nl/weeaboo/vn/impl/input/InputConfig.java core/src/main/java/nl/weeaboo/vn/impl/input/ButtonState.java core/src/main/java/nl/weeaboo/vn/impl/input/InputAccumulator.java core/src/main/java/nl/weeaboo/vn/impl/video/NativeVideo.java core/src/main/java/nl/weeaboo/vn/impl/video/VideoModule.java core/src/main/java/nl/weeaboo/vn/impl/video/Video.java core/src/main/java/nl/weeaboo/vn/impl/video/GdxVideoPlayerFactory.java core/src/main/java/nl/weeaboo/vn/impl/video/NativeVideoFactory.java core/src/main/java/nl/weeaboo/vn/impl/video/VideoResourceLoader.java core/src/main/java/nl/weeaboo/vn/impl/debug/Osd.java core/src/main/java/nl/weeaboo/vn/impl/debug/DebugControls.java core/src/main/java/nl/weeaboo/vn/impl/debug/PerformanceMetrics.java core/src/main/java/nl/weeaboo/vn/impl/debug/ScreenshotTaker.java core/src/main/java/nl/weeaboo/vn/impl/Launcher.java core/src/main/java/nl/weeaboo/vn/impl/signal/SignalSupport.java core/src/main/java/nl/weeaboo/vn/impl/signal/SignalUtil.java core/src/main/java/nl/weeaboo/vn/impl/InitConfig.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngReader.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngWriter.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngHeader.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/PngHelper.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngInputUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngColorType.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngAlphaType.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/PngColorType.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngParseException.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JpegHelper.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngConstants.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/jng/JngReaderOpts.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/PremultUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/PixmapUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxBitmapTweenRenderer.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/blur/ImageBlur.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/PremultFileTextureData.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GLMatrixStack.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxCrossFadeRenderer.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/PremultTextureLoader.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxTextureUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/ColorTextureLoader.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GLBlendMode.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxShaderUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxScreenshotUtil.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/PixmapLoader.java core/src/main/java/nl/weeaboo/vn/gdx/graphics/GdxViewportUtil.java core/src/main/java/nl/weeaboo/vn/gdx/res/DesktopGdxFileSystem.java core/src/main/java/nl/weeaboo/vn/gdx/res/AssetManagerResourceStore.java core/src/main/java/nl/weeaboo/vn/gdx/res/NativeMemoryTracker.java core/src/main/java/nl/weeaboo/vn/gdx/res/GdxFileSystem.java core/src/main/java/nl/weeaboo/vn/gdx/res/GdxCleaner.java core/src/main/java/nl/weeaboo/vn/gdx/res/InternalGdxFileSystem.java core/src/main/java/nl/weeaboo/vn/gdx/res/LoadingResourceStore.java core/src/main/java/nl/weeaboo/vn/gdx/res/ResourceStoreCache.java core/src/main/java/nl/weeaboo/vn/gdx/res/NonFileGdxFileHandle.java core/src/main/java/nl/weeaboo/vn/gdx/res/TransformedResource.java core/src/main/java/nl/weeaboo/vn/gdx/res/ResourceStoreCacheConfig.java core/src/main/java/nl/weeaboo/vn/gdx/res/ResourceStore.java core/src/main/java/nl/weeaboo/vn/gdx/res/FileResource.java core/src/main/java/nl/weeaboo/vn/gdx/res/WritableGdxFileSystem.java core/src/main/java/nl/weeaboo/vn/gdx/res/RefWeigher.java core/src/main/java/nl/weeaboo/vn/gdx/res/Ref.java core/src/main/java/nl/weeaboo/vn/gdx/res/GdxAssetManager.java core/src/main/java/nl/weeaboo/vn/gdx/res/DisposeUtil.java core/src/main/java/nl/weeaboo/vn/gdx/res/NullResource.java core/src/main/java/nl/weeaboo/vn/gdx/res/DefaultWeigher.java core/src/main/java/nl/weeaboo/vn/gdx/res/AbstractResource.java core/src/main/java/nl/weeaboo/vn/gdx/input/GdxInputAdapter.java core/src/main/java/nl/weeaboo/vn/gdx/scene2d/Scene2dEnv.java core/src/main/java/nl/weeaboo/vn/gdx/scene2d/Scene2dUtil.java api/src/main/java/nl/weeaboo/vn/math/AbstractMatrix.java api/src/main/java/nl/weeaboo/vn/math/MutableMatrix.java api/src/main/java/nl/weeaboo/vn/math/Polygon.java api/src/main/java/nl/weeaboo/vn/math/Vec2.java api/src/main/java/nl/weeaboo/vn/math/Matrix.java api/src/main/java/nl/weeaboo/vn/core/ResourceId.java api/src/main/java/nl/weeaboo/vn/core/DistortGrid.java api/src/main/java/nl/weeaboo/vn/core/Direction.java api/src/main/java/nl/weeaboo/vn/core/ResourceLoadInfo.java api/src/main/java/nl/weeaboo/vn/core/Duration.java api/src/main/java/nl/weeaboo/vn/core/NovelPrefs.java api/src/main/java/nl/weeaboo/vn/core/MediaType.java api/src/main/java/nl/weeaboo/vn/core/SkipMode.java api/src/main/java/nl/weeaboo/vn/core/ContextListener.java api/src/main/java/nl/weeaboo/vn/core/InitException.java api/src/main/java/nl/weeaboo/vn/core/Interpolators.java api/src/main/java/nl/weeaboo/vn/core/BlendMode.java api/src/main/java/nl/weeaboo/vn/core/VerticalAlign.java api/src/main/java/nl/weeaboo/vn/core/IUpdateable.java api/src/main/java/nl/weeaboo/vn/input/KeyCode.java api/src/main/java/nl/weeaboo/vn/input/VKey.java api/src/main/java/nl/weeaboo/vn/input/KeyCombination.java api/src/main/java/nl/weeaboo/vn/image/desc/GLScaleFilter.java api/src/main/java/nl/weeaboo/vn/image/desc/GLTilingMode.java api/src/main/java/nl/weeaboo/vn/image/Color.java api/src/main/java/nl/weeaboo/vn/image/INinePatch.java api/src/main/java/nl/weeaboo/vn/image/ITexture.java api/src/main/java/nl/weeaboo/vn/save/StoragePrimitive.java api/src/main/java/nl/weeaboo/vn/save/ThumbnailInfo.java api/src/main/java/nl/weeaboo/vn/save/SaveFormatException.java api/src/main/java/nl/weeaboo/vn/layout/LayoutSize.java api/src/main/java/nl/weeaboo/vn/layout/GridCellConstraints.java api/src/main/java/nl/weeaboo/vn/layout/LayoutSizeType.java api/src/main/java/nl/weeaboo/vn/render/RenderUtil.java api/src/main/java/nl/weeaboo/vn/render/DisplayMode.java api/src/main/java/nl/weeaboo/vn/signal/AbstractSignal.java api/src/main/java/nl/weeaboo/vn/signal/PrefsChangeSignal.java api/src/main/java/nl/weeaboo/vn/signal/RenderEnvChangeSignal.java api/src/main/java/nl/weeaboo/vn/signal/TickSignal.java api/src/main/java/nl/weeaboo/vn/scene/ButtonViewState.java api/src/main/java/nl/weeaboo/vn/scene/signal/VisualElementDestroySignal.java api/src/main/java/nl/weeaboo/vn/sound/SoundType.java api/src/main/java/nl/weeaboo/vn/script/ScriptException.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/JngEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/DesktopJpegEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/JngEncoderParams.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/DesktopPngEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/LosslessEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/JpegEncoderParams.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/encoder/PngEncoderParams.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/ImageOptimizer.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/ImageResizer.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/BufferedImageUtil.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/EncodedImage.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/ImageWithDef.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/ImageResizerConfig.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/image/decoder/DefaultImageDecoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/sound/SoundOptimizer.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/sound/encoder/FfmpegSoundEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/sound/encoder/NoOpSoundEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/sound/EncodedSound.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/sound/SoundWithDef.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/video/VideoOptimizer.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/video/encoder/FfmpegVideoEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/video/encoder/NoOpVideoEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/video/EncodedVideo.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/FfmpegEncoder.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/OptimizerContext.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/ResourceOptimizerLauncher.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/OptimizerConfigJson.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/UnoptimizedFileCopier.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/OptimizerFileSet.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/ResourceOptimizer.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/ParallelExecutor.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/IParallelExecutor.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/MainOptimizerConfig.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/optimizer/OptimizerPreset.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/project/NvlistProjectConnection.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/project/ProjectFolderConfig.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/project/TemplateProjectGenerator.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/project/BuildProperties.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/file/EncodedResource.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/file/FilePathPattern.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/file/TempFileProvider.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/file/OptimizerFileUtil.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/task/Task.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/task/TaskResultType.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/task/IProgressListener.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/archive/NvlArchiver.java buildtools/src/main/java/nl/weeaboo/vn/buildtools/gdx/HeadlessGdx.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/NvlistDebugServer.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/DebugThread.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/ActiveThreads.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/NvlistDebugLauncher.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/Breakpoints.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/DebugBreakpoint.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/NameMapping.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/NvlistTaskRunner.java desktop/src/main/java/nl/weeaboo/vn/desktop/debug/EStepMode.java desktop/src/main/java/nl/weeaboo/vn/desktop/DesktopLauncher.java desktop/src/main/java/nl/weeaboo/vn/desktop/DesktopGraphicsUtil.java desktop/src/main/java/nl/weeaboo/vn/desktop/DesktopOutputFileSystem.java

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -3,6 +3,7 @@
Loading
3 3
import java.io.Closeable;
4 4
import java.io.IOException;
5 5
import java.io.InputStream;
6 +
import java.io.OutputStream;
6 7
import java.net.Socket;
7 8
import java.util.ArrayList;
8 9
import java.util.List;
@@ -47,18 +48,19 @@
Loading
47 48
import org.slf4j.Logger;
48 49
import org.slf4j.LoggerFactory;
49 50
51 +
import com.google.common.annotations.VisibleForTesting;
50 52
import com.google.common.base.Preconditions;
51 53
import com.google.common.util.concurrent.ThreadFactoryBuilder;
52 54
53 55
import nl.weeaboo.common.StringUtil;
56 +
import nl.weeaboo.filesystem.FilePath;
54 57
import nl.weeaboo.io.StreamUtil;
55 -
import nl.weeaboo.lua2.LuaRunState;
56 58
import nl.weeaboo.lua2.LuaUtil;
57 -
import nl.weeaboo.lua2.lib.LuaResource;
58 59
import nl.weeaboo.vn.core.IContextManager;
59 60
import nl.weeaboo.vn.core.INovel;
60 61
import nl.weeaboo.vn.impl.core.StaticEnvironment;
61 62
import nl.weeaboo.vn.impl.script.lua.LuaScriptUtil;
63 +
import nl.weeaboo.vn.script.IScriptLoader;
62 64
import nl.weeaboo.vn.script.ScriptException;
63 65
64 66
/**
@@ -76,7 +78,7 @@
Loading
76 78
    private Future<?> periodicUpdateTask = CompletableFuture.completedFuture(null);
77 79
78 80
    private IDebugProtocolClient peer;
79 -
    private Socket socket;
81 +
    private IConnection connection;
80 82
    private Future<Void> messageHandler;
81 83
82 84
    private NvlistDebugServer(INvlistTaskRunner taskRunner) {
@@ -101,13 +103,14 @@
Loading
101 103
        periodicUpdateTask.cancel(true);
102 104
        messageHandler.cancel(true);
103 105
        try {
104 -
            socket.close();
106 +
            connection.close();
105 107
        } catch (IOException e) {
106 108
            LOG.warn("I/O exception trying to close debug server", e);
107 109
        }
108 110
    }
109 111
110 -
    private void update() {
112 +
    @VisibleForTesting
113 +
    void update() {
111 114
        INovel novel = getNovel();
112 115
        if (novel != null) {
113 116
            activeThreads.update(novel.getEnv().getContextManager(), peer);
@@ -118,10 +121,14 @@
Loading
118 121
    public CompletableFuture<Void> disconnect(DisconnectArguments args) {
119 122
        LOG.debug("[debug-server] Received disconnect request {}", args);
120 123
121 -
        close();
122 -
        System.exit(0);
123 -
124 -
        return CompletableFuture.completedFuture(null);
124 +
        return taskRunner.runOnNvlistThread(() -> {
125 +
            close();
126 +
            try {
127 +
                System.exit(0);
128 +
            } catch (SecurityException e) {
129 +
                LOG.warn("System.exit() isn't allowed");
130 +
            }
131 +
        });
125 132
    }
126 133
127 134
    @Override
@@ -131,11 +138,12 @@
Loading
131 138
132 139
            INovel novel = getNovel();
133 140
            DebugThread primaryThread = activeThreads.getPrimaryThread();
134 -
            String program = NameMapping.toRelativeScriptPath((String)args.get("program"));
141 +
            String program = (String)args.get("program");
135 142
            if (novel == null || primaryThread == null || program == null) {
136 143
                return;
137 144
            }
138 145
146 +
            program = NameMapping.toRelativeScriptPath(program);
139 147
            String expr = StringUtil.formatRoot("jump(\"%s\")", LuaUtil.escape(program));
140 148
            try {
141 149
                LuaScriptUtil.eval(novel.getEnv().getContextManager(), primaryThread.getThread(), expr);
@@ -300,19 +308,17 @@
Loading
300 308
        return taskRunner.supplyOnNvlistThread(() -> {
301 309
            LOG.debug("[debug-server] Received source request: source={}", args.getSource());
302 310
303 -
            LuaRunState lrs = LuaRunState.getCurrent();
304 -
            Preconditions.checkNotNull(lrs, "NVList isn't active");
311 +
            INovel novel = getNovel();
312 +
            Preconditions.checkNotNull(novel, "NVList isn't active");
305 313
306 314
            String relPath = NameMapping.toRelativeScriptPath(args.getSource().getPath());
315 +
            IScriptLoader scriptLoader = novel.getEnv().getScriptEnv().getScriptLoader();
307 316
308 317
            SourceResponse response = new SourceResponse();
309 -
            LuaResource resource = lrs.findResource(relPath);
310 -
            if (resource != null) {
311 -
                try (InputStream in = resource.open()) {
312 -
                    response.setContent(StringUtil.fromUTF8(StreamUtil.readBytes(in)));
313 -
                } catch (IOException e) {
314 -
                    LOG.warn("Error reading source file: " + relPath, e);
315 -
                }
318 +
            try (InputStream in = scriptLoader.openScript(FilePath.of(relPath))) {
319 +
                response.setContent(StringUtil.fromUTF8(StreamUtil.readBytes(in)));
320 +
            } catch (IOException e) {
321 +
                throw new IllegalStateException("Error reading source file: " + relPath, e);
316 322
            }
317 323
            return response;
318 324
        });
@@ -325,6 +331,11 @@
Loading
325 331
326 332
    public static NvlistDebugServer start(INvlistTaskRunner taskRunner, @WillCloseWhenClosed Socket socket,
327 333
            ExecutorService executorService) throws IOException {
334 +
        return start(taskRunner, new SocketConnection(socket), executorService);
335 +
    }
336 +
337 +
    static NvlistDebugServer start(INvlistTaskRunner taskRunner, @WillCloseWhenClosed IConnection socket,
338 +
            ExecutorService executorService) throws IOException {
328 339
329 340
        NvlistDebugServer debugServer = new NvlistDebugServer(taskRunner);
330 341
        Launcher<IDebugProtocolClient> launcher = new DebugLauncher.Builder<IDebugProtocolClient>()
@@ -335,9 +346,42 @@
Loading
335 346
                .setExecutorService(executorService)
336 347
                .create();
337 348
        debugServer.peer = launcher.getRemoteProxy();
338 -
        debugServer.socket = socket;
349 +
        debugServer.connection = socket;
339 350
        debugServer.messageHandler = launcher.startListening();
340 351
        return debugServer;
341 352
    }
342 353
354 +
    interface IConnection extends Closeable {
355 +
356 +
        InputStream getInputStream() throws IOException;
357 +
358 +
        OutputStream getOutputStream() throws IOException;
359 +
360 +
    }
361 +
362 +
    static final class SocketConnection implements IConnection {
363 +
364 +
        private final Socket socket;
365 +
366 +
        SocketConnection(@WillCloseWhenClosed Socket socket) {
367 +
            this.socket = socket;
368 +
        }
369 +
370 +
        @Override
371 +
        public void close() throws IOException {
372 +
            socket.close();
373 +
        }
374 +
375 +
        @Override
376 +
        public InputStream getInputStream() throws IOException {
377 +
            return socket.getInputStream();
378 +
        }
379 +
380 +
        @Override
381 +
        public OutputStream getOutputStream() throws IOException {
382 +
            return socket.getOutputStream();
383 +
        }
384 +
385 +
    }
386 +
343 387
}

@@ -1,19 +1,15 @@
Loading
1 1
package nl.weeaboo.vn.desktop.debug;
2 2
3 -
import java.io.File;
4 -
import java.io.IOException;
5 3
import java.net.URI;
6 -
7 -
import org.slf4j.Logger;
8 -
import org.slf4j.LoggerFactory;
4 +
import java.nio.file.Path;
5 +
import java.nio.file.Paths;
9 6
10 7
/**
11 8
 * Performs file path conversions.
12 9
 */
13 10
final class NameMapping {
14 11
15 -
    private static final Logger LOG = LoggerFactory.getLogger(DebugBreakpoint.class);
16 -
    private static final File SCRIPT_FOLDER = new File("res/script");
12 +
    private static final Path SCRIPT_FOLDER = Paths.get("res/script").toAbsolutePath();
17 13
18 14
    /**
19 15
     * Turns an absolute path to a file in the res/script folder into a relative path.
@@ -25,12 +21,12 @@
Loading
25 21
            return absolutePath;
26 22
        }
27 23
28 -
        try {
29 -
            URI scriptFolderUri = SCRIPT_FOLDER.getCanonicalFile().toURI();
30 -
            URI absoluteUri = new File(absolutePath).getCanonicalFile().toURI();
31 -
            return scriptFolderUri.relativize(absoluteUri).getPath();
32 -
        } catch (IOException ioe) {
33 -
            LOG.warn("Unable to determine relative path for {}", absolutePath, ioe);
24 +
        URI scriptFolderUri = SCRIPT_FOLDER.toUri();
25 +
        URI uri = Paths.get(absolutePath).toAbsolutePath().toUri();
26 +
        if (uri.getPath().startsWith(scriptFolderUri.getPath())) {
27 +
            return scriptFolderUri.relativize(uri).getPath();
28 +
        } else {
29 +
            // Path isn't relative to the script folder
34 30
            return absolutePath;
35 31
        }
36 32
    }
@@ -45,12 +41,7 @@
Loading
45 41
            return relativePath;
46 42
        }
47 43
48 -
        try {
49 -
            return new File(SCRIPT_FOLDER, relativePath).getCanonicalPath();
50 -
        } catch (IOException ioe) {
51 -
            LOG.warn("Unable to determine absolute path for {}", relativePath, ioe);
52 -
            return relativePath;
53 -
        }
44 +
        return SCRIPT_FOLDER.resolve(relativePath).toAbsolutePath().toString();
54 45
    }
55 46
56 47
}

Learn more Showing 7 files with coverage changes found.

Changes in desktop/src/main/java/nl/weeaboo/vn/desktop/debug/DebugThread.java
-1
+1
Loading file...
Changes in core/src/main/java/nl/weeaboo/vn/impl/debug/PerformanceMetrics.java
-1
+1
Loading file...
Changes in desktop/src/main/java/nl/weeaboo/vn/desktop/debug/ActiveThreads.java
-2
+2
Loading file...
Changes in desktop/src/main/java/nl/weeaboo/vn/desktop/debug/Breakpoints.java
-1
-1
+2
Loading file...
Changes in core/src/main/java/nl/weeaboo/vn/impl/image/GdxTextureStore.java
-5
+5
Loading file...
Changes in desktop/src/main/java/nl/weeaboo/vn/desktop/DesktopGraphicsUtil.java
-1
-12
+13
Loading file...
Changes in desktop/src/main/java/nl/weeaboo/vn/desktop/debug/NvlistDebugServer.java
-58
+55
+3
Loading file...
Files Complexity Coverage
api/src/main/java/nl/weeaboo/vn 91.53% 96.76%
buildtools/src/main/java/nl/weeaboo/vn/buildtools 81.13% 87.46%
core/src/main/java/nl/weeaboo/vn 83.43% 0.06% 87.85%
desktop/src/main/java/nl/weeaboo/vn/desktop +2.00% 63.57% +21.80% 73.36%
Project Totals (384 files) 83.40% 87.96%
Loading