From 926d3270eb3b8413a20f77574910d067830fddfa Mon Sep 17 00:00:00 2001 From: BenjaminAmos <24301287+BenjaminAmos@users.noreply.github.com> Date: Sun, 9 Aug 2020 22:32:10 +0100 Subject: [PATCH 1/8] Updated NUI to use gestalt 7 (#4) * Converted NUI to use gestalt 7.0.3 * Updated library version to 2.0.0 due to gestalt upgrade (now using gestalt 7) * Fixed compiler errors due to changed gestalt namespace * Added google maven repository. --- build.gradle | 2 +- gradle/common.gradle | 3 +++ nui-input/build.gradle | 4 ++-- .../java/org/terasology/input/device/InputDevice.java | 2 +- .../org/terasology/input/device/KeyboardDevice.java | 2 +- .../java/org/terasology/input/device/MouseDevice.java | 2 +- .../main/java/org/terasology/input/package-info.java | 2 +- .../org/terasology/nui/backends/libgdx/LibGDXFont.java | 2 +- .../terasology/nui/backends/libgdx/LibGDXTexture.java | 2 +- nui-reflect/build.gradle | 4 ++-- .../org/terasology/reflection/MappedContainer.java | 2 +- .../main/java/org/terasology/reflection/TypeInfo.java | 2 +- .../java/org/terasology/reflection/TypeRegistry.java | 10 +++++----- .../reflection/copy/CopyStrategyLibrary.java | 2 +- .../reflection/metadata/AbstractClassLibrary.java | 8 ++++---- .../terasology/reflection/metadata/ClassLibrary.java | 6 +++--- .../terasology/reflection/metadata/ClassMetadata.java | 2 +- .../reflection/metadata/DefaultClassLibrary.java | 4 ++-- .../reflection/metadata/DefaultClassMetadata.java | 2 +- .../terasology/reflection/metadata/package-info.java | 2 +- nui/build.gradle | 4 ++-- nui/src/main/java/org/terasology/nui/Color.java | 2 +- nui/src/main/java/org/terasology/nui/FontColor.java | 2 +- .../main/java/org/terasology/nui/FontUnderline.java | 2 +- nui/src/main/java/org/terasology/nui/asset/Sound.java | 2 +- nui/src/main/java/org/terasology/nui/asset/UIData.java | 6 +++--- .../main/java/org/terasology/nui/asset/UIElement.java | 10 +++++----- .../main/java/org/terasology/nui/asset/font/Font.java | 2 +- .../org/terasology/nui/asset/font/FontCharacter.java | 2 +- .../org/terasology/nui/databinding/package-info.java | 2 +- .../org/terasology/nui/events/NUIBindButtonEvent.java | 2 +- .../java/org/terasology/nui/events/package-info.java | 2 +- .../org/terasology/nui/itemRendering/package-info.java | 2 +- .../terasology/nui/layouts/miglayout/package-info.java | 2 +- .../java/org/terasology/nui/layouts/package-info.java | 2 +- .../terasology/nui/layouts/relative/package-info.java | 2 +- nui/src/main/java/org/terasology/nui/package-info.java | 2 +- .../java/org/terasology/nui/properties/Checkbox.java | 2 +- .../main/java/org/terasology/nui/properties/OneOf.java | 2 +- .../nui/properties/OneOfProviderFactory.java | 2 +- .../terasology/nui/properties/PropertyProvider.java | 2 +- .../main/java/org/terasology/nui/properties/Range.java | 2 +- .../java/org/terasology/nui/properties/TextField.java | 2 +- .../org/terasology/nui/properties/package-info.java | 2 +- .../org/terasology/nui/reflection/WidgetLibrary.java | 4 ++-- .../org/terasology/nui/reflection/WidgetMetadata.java | 2 +- nui/src/main/java/org/terasology/nui/skin/UISkin.java | 8 ++++---- .../main/java/org/terasology/nui/skin/UISkinData.java | 4 ++-- .../java/org/terasology/nui/skin/package-info.java | 2 +- .../java/org/terasology/nui/translate/Translator.java | 2 +- .../java/org/terasology/nui/util/package-info.java | 2 +- .../java/org/terasology/nui/widgets/package-info.java | 2 +- .../java/org/terasology/nui/widgets/treeView/Tree.java | 2 +- .../org/terasology/nui/widgets/treeView/TreeModel.java | 2 +- .../nui/widgets/treeView/TreeMouseClickListener.java | 2 +- .../terasology/nui/widgets/treeView/package-info.java | 2 +- 56 files changed, 82 insertions(+), 79 deletions(-) diff --git a/build.gradle b/build.gradle index 10bde3d7c1..f8171f9dfb 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { ext { // Overall version number for NUI's various elements - nuiVersion = "1.0.0-SNAPSHOT" + nuiVersion = "2.0.0-SNAPSHOT" // JOML version we're tracking jomlVersion = "1.9.25" diff --git a/gradle/common.gradle b/gradle/common.gradle index 51447d726c..8ec6b89048 100644 --- a/gradle/common.gradle +++ b/gradle/common.gradle @@ -15,6 +15,9 @@ repositories { jcenter() mavenCentral() + // Google's Maven repository - Needed for com.android.support:support-annotations, which gestalt 7 uses + google() + // MovingBlocks Artifactory instance for libs not readily available elsewhere plus our own libs maven { def repoViaEnv = System.getenv()["RESOLUTION_REPO"] diff --git a/nui-input/build.gradle b/nui-input/build.gradle index 060266a95d..1b6e3f7994 100644 --- a/nui-input/build.gradle +++ b/nui-input/build.gradle @@ -6,8 +6,8 @@ plugins { apply from: "$rootDir/gradle/common.gradle" dependencies { - api group: 'org.terasology', name: 'gestalt-module', version: '5.1.5' - api group: 'org.terasology', name: 'gestalt-asset-core', version: '5.1.5' + api group: 'org.terasology.gestalt', name: 'gestalt-module', version: '7.0.3' + api group: 'org.terasology.gestalt', name: 'gestalt-asset-core', version: '7.0.3' api ('org.joml:joml') { version { diff --git a/nui-input/src/main/java/org/terasology/input/device/InputDevice.java b/nui-input/src/main/java/org/terasology/input/device/InputDevice.java index 15cdb5c113..83cfdaf532 100644 --- a/nui-input/src/main/java/org/terasology/input/device/InputDevice.java +++ b/nui-input/src/main/java/org/terasology/input/device/InputDevice.java @@ -15,7 +15,7 @@ */ package org.terasology.input.device; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.util.Queue; diff --git a/nui-input/src/main/java/org/terasology/input/device/KeyboardDevice.java b/nui-input/src/main/java/org/terasology/input/device/KeyboardDevice.java index 93000c6278..6e7aa40e95 100644 --- a/nui-input/src/main/java/org/terasology/input/device/KeyboardDevice.java +++ b/nui-input/src/main/java/org/terasology/input/device/KeyboardDevice.java @@ -17,7 +17,7 @@ import java.util.Queue; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; /** */ diff --git a/nui-input/src/main/java/org/terasology/input/device/MouseDevice.java b/nui-input/src/main/java/org/terasology/input/device/MouseDevice.java index 4909a19140..6078a902b7 100644 --- a/nui-input/src/main/java/org/terasology/input/device/MouseDevice.java +++ b/nui-input/src/main/java/org/terasology/input/device/MouseDevice.java @@ -17,8 +17,8 @@ import java.util.Queue; -import org.terasology.module.sandbox.API; import org.joml.Vector2i; +import org.terasology.gestalt.module.sandbox.API; /** */ diff --git a/nui-input/src/main/java/org/terasology/input/package-info.java b/nui-input/src/main/java/org/terasology/input/package-info.java index 9b0dcf36e9..061672c326 100644 --- a/nui-input/src/main/java/org/terasology/input/package-info.java +++ b/nui-input/src/main/java/org/terasology/input/package-info.java @@ -17,4 +17,4 @@ @API package org.terasology.input; -import org.terasology.module.sandbox.API; \ No newline at end of file +import org.terasology.gestalt.module.sandbox.API; \ No newline at end of file diff --git a/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXFont.java b/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXFont.java index 9dae00294b..a43e6dd657 100644 --- a/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXFont.java +++ b/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXFont.java @@ -17,8 +17,8 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.GlyphLayout; -import org.terasology.assets.AssetData; import org.joml.Vector2i; +import org.terasology.gestalt.assets.AssetData; import org.terasology.nui.asset.font.Font; import java.util.List; diff --git a/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXTexture.java b/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXTexture.java index 701e18350f..dfb4186211 100644 --- a/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXTexture.java +++ b/nui-libgdx/src/main/java/org/terasology/nui/backends/libgdx/LibGDXTexture.java @@ -16,10 +16,10 @@ package org.terasology.nui.backends.libgdx; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import org.terasology.assets.AssetData; import org.joml.Rectanglef; import org.joml.Rectanglei; import org.joml.Vector2i; +import org.terasology.gestalt.assets.AssetData; import org.terasology.nui.UITextureRegion; import org.terasology.nui.util.RectUtility; diff --git a/nui-reflect/build.gradle b/nui-reflect/build.gradle index 00d35ccdbf..e0e1985c6b 100644 --- a/nui-reflect/build.gradle +++ b/nui-reflect/build.gradle @@ -10,8 +10,8 @@ dependencies { implementation group: 'org.reflections', name: 'reflections', version: '0.9.10' implementation group: 'com.google.code.gson', name: 'gson', version: '2.6.2' - implementation group: 'org.terasology', name: 'gestalt-module', version: '5.1.5' - implementation group: 'org.terasology', name: 'gestalt-asset-core', version: '5.1.5' + implementation group: 'org.terasology.gestalt', name: 'gestalt-module', version: '7.0.3' + implementation group: 'org.terasology.gestalt', name: 'gestalt-asset-core', version: '7.0.3' implementation group: 'com.google.guava', name: 'guava', version: '23.0' api ('org.joml:joml') { diff --git a/nui-reflect/src/main/java/org/terasology/reflection/MappedContainer.java b/nui-reflect/src/main/java/org/terasology/reflection/MappedContainer.java index a925f0a71d..778be26e14 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/MappedContainer.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/MappedContainer.java @@ -16,7 +16,7 @@ package org.terasology.reflection; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/TypeInfo.java b/nui-reflect/src/main/java/org/terasology/reflection/TypeInfo.java index f5a4a37ed8..7dd584edba 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/TypeInfo.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/TypeInfo.java @@ -15,7 +15,7 @@ */ package org.terasology.reflection; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.reflection.ReflectionUtil; import java.lang.reflect.Type; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/TypeRegistry.java b/nui-reflect/src/main/java/org/terasology/reflection/TypeRegistry.java index bf507ea17a..7d9ab7f2d2 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/TypeRegistry.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/TypeRegistry.java @@ -22,9 +22,9 @@ import org.reflections.scanners.TypeAnnotationsScanner; import org.reflections.util.ClasspathHelper; import org.reflections.util.ConfigurationBuilder; -import org.terasology.module.Module; -import org.terasology.module.ModuleEnvironment; -import org.terasology.module.sandbox.ModuleClassLoader; +import org.terasology.gestalt.module.Module; +import org.terasology.gestalt.module.ModuleEnvironment; +import org.terasology.gestalt.module.sandbox.ModuleClassLoader; import org.terasology.reflection.ReflectionUtil; import java.lang.annotation.Annotation; @@ -118,11 +118,11 @@ private void initializeReflections(ClassLoader classLoader, ModuleEnvironment en initializeReflections(classLoader); for (Module module : environment.getModulesOrderedByDependencies()) { - if (!module.isCodeModule()) { + if (module.getClasspaths().size() == 0) { continue; } - reflections.merge(module.getReflectionsFragment()); + reflections.merge(module.getModuleManifest()); } } diff --git a/nui-reflect/src/main/java/org/terasology/reflection/copy/CopyStrategyLibrary.java b/nui-reflect/src/main/java/org/terasology/reflection/copy/CopyStrategyLibrary.java index 702cc45b4e..fdf7c8efe8 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/copy/CopyStrategyLibrary.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/copy/CopyStrategyLibrary.java @@ -18,7 +18,7 @@ import com.google.common.collect.Maps; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.assets.ResourceUrn; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.reflection.metadata.ClassMetadata; import org.terasology.reflection.metadata.DefaultClassMetadata; import org.terasology.reflection.MappedContainer; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/AbstractClassLibrary.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/AbstractClassLibrary.java index 494f0c021d..4a20db2c68 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/AbstractClassLibrary.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/AbstractClassLibrary.java @@ -23,10 +23,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.assets.ResourceUrn; -import org.terasology.module.Module; -import org.terasology.module.ModuleEnvironment; -import org.terasology.naming.Name; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.module.Module; +import org.terasology.gestalt.module.ModuleEnvironment; +import org.terasology.gestalt.naming.Name; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.reflect.ReflectFactory; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassLibrary.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassLibrary.java index 673fd437bf..f4590d1846 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassLibrary.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassLibrary.java @@ -16,9 +16,9 @@ package org.terasology.reflection.metadata; -import org.terasology.assets.ResourceUrn; -import org.terasology.module.Module; -import org.terasology.naming.Name; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.module.Module; +import org.terasology.gestalt.naming.Name; import java.util.List; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassMetadata.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassMetadata.java index 2bb2f68b1e..c386822d68 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassMetadata.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/ClassMetadata.java @@ -23,7 +23,7 @@ import org.reflections.ReflectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.assets.ResourceUrn; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.reflection.copy.CopyStrategy; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.reflect.InaccessibleFieldException; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassLibrary.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassLibrary.java index f888d7136c..2a70a57b2a 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassLibrary.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassLibrary.java @@ -17,8 +17,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.assets.ResourceUrn; -import org.terasology.module.ModuleEnvironment; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.module.ModuleEnvironment; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.reflect.ReflectFactory; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassMetadata.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassMetadata.java index 8b5efed95f..4efcd1dea2 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassMetadata.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/DefaultClassMetadata.java @@ -16,7 +16,7 @@ package org.terasology.reflection.metadata; import com.google.common.base.Predicates; -import org.terasology.assets.ResourceUrn; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.reflection.copy.CopyStrategy; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.reflect.InaccessibleFieldException; diff --git a/nui-reflect/src/main/java/org/terasology/reflection/metadata/package-info.java b/nui-reflect/src/main/java/org/terasology/reflection/metadata/package-info.java index 67c8b66ec4..8efe87c1bf 100644 --- a/nui-reflect/src/main/java/org/terasology/reflection/metadata/package-info.java +++ b/nui-reflect/src/main/java/org/terasology/reflection/metadata/package-info.java @@ -30,4 +30,4 @@ @API package org.terasology.reflection.metadata; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/build.gradle b/nui/build.gradle index bfe9119388..d8d17bb746 100644 --- a/nui/build.gradle +++ b/nui/build.gradle @@ -6,8 +6,8 @@ plugins { apply from: "$rootDir/gradle/common.gradle" dependencies { - api group: 'org.terasology', name: 'gestalt-module', version: '5.1.5' - api group: 'org.terasology', name: 'gestalt-asset-core', version: '5.1.5' + api group: 'org.terasology.gestalt', name: 'gestalt-module', version: '7.0.3' + api group: 'org.terasology.gestalt', name: 'gestalt-asset-core', version: '7.0.3' api group: 'org.abego.treelayout', name: 'org.abego.treelayout.core', version: '1.0.3' api group: 'com.miglayout', name: 'miglayout-core', version: '5.0' diff --git a/nui/src/main/java/org/terasology/nui/Color.java b/nui/src/main/java/org/terasology/nui/Color.java index 9b23b2c5ea..30f266a3dc 100644 --- a/nui/src/main/java/org/terasology/nui/Color.java +++ b/nui/src/main/java/org/terasology/nui/Color.java @@ -21,7 +21,7 @@ import org.joml.Vector3ic; import org.joml.Vector4fc; import org.joml.Vector4ic; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.nio.ByteBuffer; import java.util.Locale; diff --git a/nui/src/main/java/org/terasology/nui/FontColor.java b/nui/src/main/java/org/terasology/nui/FontColor.java index f0292462a7..f3d69b30c8 100644 --- a/nui/src/main/java/org/terasology/nui/FontColor.java +++ b/nui/src/main/java/org/terasology/nui/FontColor.java @@ -16,7 +16,7 @@ package org.terasology.nui; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.Color; /** diff --git a/nui/src/main/java/org/terasology/nui/FontUnderline.java b/nui/src/main/java/org/terasology/nui/FontUnderline.java index a42dd8cbf0..f9d4065291 100644 --- a/nui/src/main/java/org/terasology/nui/FontUnderline.java +++ b/nui/src/main/java/org/terasology/nui/FontUnderline.java @@ -16,7 +16,7 @@ package org.terasology.nui; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; /** * Defines a set of special characters that mark contents of a string to be underlined diff --git a/nui/src/main/java/org/terasology/nui/asset/Sound.java b/nui/src/main/java/org/terasology/nui/asset/Sound.java index 5729a3a6ef..b7a1411d11 100644 --- a/nui/src/main/java/org/terasology/nui/asset/Sound.java +++ b/nui/src/main/java/org/terasology/nui/asset/Sound.java @@ -18,7 +18,7 @@ package org.terasology.nui.asset; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; @API public interface Sound { diff --git a/nui/src/main/java/org/terasology/nui/asset/UIData.java b/nui/src/main/java/org/terasology/nui/asset/UIData.java index 61624ff7c7..1406bddb97 100644 --- a/nui/src/main/java/org/terasology/nui/asset/UIData.java +++ b/nui/src/main/java/org/terasology/nui/asset/UIData.java @@ -15,9 +15,9 @@ */ package org.terasology.nui.asset; -import org.terasology.assets.AssetData; -import org.terasology.assets.format.AssetDataFile; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.assets.AssetData; +import org.terasology.gestalt.assets.format.AssetDataFile; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.UIWidget; /** diff --git a/nui/src/main/java/org/terasology/nui/asset/UIElement.java b/nui/src/main/java/org/terasology/nui/asset/UIElement.java index 63a6170389..4359d5e59a 100644 --- a/nui/src/main/java/org/terasology/nui/asset/UIElement.java +++ b/nui/src/main/java/org/terasology/nui/asset/UIElement.java @@ -15,11 +15,11 @@ */ package org.terasology.nui.asset; -import org.terasology.assets.Asset; -import org.terasology.assets.AssetType; -import org.terasology.assets.ResourceUrn; -import org.terasology.assets.format.AssetDataFile; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.assets.Asset; +import org.terasology.gestalt.assets.AssetType; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.assets.format.AssetDataFile; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.UIWidget; import java.util.List; diff --git a/nui/src/main/java/org/terasology/nui/asset/font/Font.java b/nui/src/main/java/org/terasology/nui/asset/font/Font.java index c77cf304bd..cdccadd358 100644 --- a/nui/src/main/java/org/terasology/nui/asset/font/Font.java +++ b/nui/src/main/java/org/terasology/nui/asset/font/Font.java @@ -16,8 +16,8 @@ package org.terasology.nui.asset.font; -import org.terasology.module.sandbox.API; import org.joml.Vector2i; +import org.terasology.gestalt.module.sandbox.API; import java.util.List; diff --git a/nui/src/main/java/org/terasology/nui/asset/font/FontCharacter.java b/nui/src/main/java/org/terasology/nui/asset/font/FontCharacter.java index 967e1204b7..0a2ae77030 100644 --- a/nui/src/main/java/org/terasology/nui/asset/font/FontCharacter.java +++ b/nui/src/main/java/org/terasology/nui/asset/font/FontCharacter.java @@ -16,7 +16,7 @@ package org.terasology.nui.asset.font; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.UITextureRegion; /** diff --git a/nui/src/main/java/org/terasology/nui/databinding/package-info.java b/nui/src/main/java/org/terasology/nui/databinding/package-info.java index 01333858f5..a8f8bf28a6 100644 --- a/nui/src/main/java/org/terasology/nui/databinding/package-info.java +++ b/nui/src/main/java/org/terasology/nui/databinding/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.databinding; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/events/NUIBindButtonEvent.java b/nui/src/main/java/org/terasology/nui/events/NUIBindButtonEvent.java index b6fabb0b45..7a397523b7 100644 --- a/nui/src/main/java/org/terasology/nui/events/NUIBindButtonEvent.java +++ b/nui/src/main/java/org/terasology/nui/events/NUIBindButtonEvent.java @@ -16,7 +16,7 @@ package org.terasology.nui.events; -import org.terasology.assets.ResourceUrn; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.input.ButtonState; import org.terasology.input.device.KeyboardDevice; import org.terasology.input.device.MouseDevice; diff --git a/nui/src/main/java/org/terasology/nui/events/package-info.java b/nui/src/main/java/org/terasology/nui/events/package-info.java index f2d3373b41..94d15eb770 100644 --- a/nui/src/main/java/org/terasology/nui/events/package-info.java +++ b/nui/src/main/java/org/terasology/nui/events/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.events; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/itemRendering/package-info.java b/nui/src/main/java/org/terasology/nui/itemRendering/package-info.java index 61dbd06c85..d101678c13 100644 --- a/nui/src/main/java/org/terasology/nui/itemRendering/package-info.java +++ b/nui/src/main/java/org/terasology/nui/itemRendering/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.itemRendering; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/layouts/miglayout/package-info.java b/nui/src/main/java/org/terasology/nui/layouts/miglayout/package-info.java index e4aa54987b..23252eff8e 100644 --- a/nui/src/main/java/org/terasology/nui/layouts/miglayout/package-info.java +++ b/nui/src/main/java/org/terasology/nui/layouts/miglayout/package-info.java @@ -16,4 +16,4 @@ @API package org.terasology.nui.layouts.miglayout; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/layouts/package-info.java b/nui/src/main/java/org/terasology/nui/layouts/package-info.java index 3cf15db306..4ba3b8a321 100644 --- a/nui/src/main/java/org/terasology/nui/layouts/package-info.java +++ b/nui/src/main/java/org/terasology/nui/layouts/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.layouts; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/layouts/relative/package-info.java b/nui/src/main/java/org/terasology/nui/layouts/relative/package-info.java index a68c137683..d27fd48e5c 100644 --- a/nui/src/main/java/org/terasology/nui/layouts/relative/package-info.java +++ b/nui/src/main/java/org/terasology/nui/layouts/relative/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.layouts.relative; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/package-info.java b/nui/src/main/java/org/terasology/nui/package-info.java index ddebfe9021..94456830d4 100644 --- a/nui/src/main/java/org/terasology/nui/package-info.java +++ b/nui/src/main/java/org/terasology/nui/package-info.java @@ -29,4 +29,4 @@ */ @API package org.terasology.nui; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/properties/Checkbox.java b/nui/src/main/java/org/terasology/nui/properties/Checkbox.java index 47a95d62fa..24af23429c 100644 --- a/nui/src/main/java/org/terasology/nui/properties/Checkbox.java +++ b/nui/src/main/java/org/terasology/nui/properties/Checkbox.java @@ -15,7 +15,7 @@ */ package org.terasology.nui.properties; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/nui/src/main/java/org/terasology/nui/properties/OneOf.java b/nui/src/main/java/org/terasology/nui/properties/OneOf.java index aa6ecc9817..987ed63171 100644 --- a/nui/src/main/java/org/terasology/nui/properties/OneOf.java +++ b/nui/src/main/java/org/terasology/nui/properties/OneOf.java @@ -15,7 +15,7 @@ */ package org.terasology.nui.properties; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/nui/src/main/java/org/terasology/nui/properties/OneOfProviderFactory.java b/nui/src/main/java/org/terasology/nui/properties/OneOfProviderFactory.java index e4b4ed75c5..ce5be714d3 100644 --- a/nui/src/main/java/org/terasology/nui/properties/OneOfProviderFactory.java +++ b/nui/src/main/java/org/terasology/nui/properties/OneOfProviderFactory.java @@ -16,7 +16,7 @@ package org.terasology.nui.properties; import com.google.common.collect.Maps; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.databinding.Binding; import org.terasology.nui.itemRendering.ItemRenderer; diff --git a/nui/src/main/java/org/terasology/nui/properties/PropertyProvider.java b/nui/src/main/java/org/terasology/nui/properties/PropertyProvider.java index 0fac5c9b65..4c49717689 100644 --- a/nui/src/main/java/org/terasology/nui/properties/PropertyProvider.java +++ b/nui/src/main/java/org/terasology/nui/properties/PropertyProvider.java @@ -18,8 +18,8 @@ import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import org.terasology.assets.ResourceUrn; import org.joml.Vector3f; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.nui.databinding.Binding; import org.terasology.nui.databinding.DefaultBinding; import org.terasology.nui.itemRendering.ItemRenderer; diff --git a/nui/src/main/java/org/terasology/nui/properties/Range.java b/nui/src/main/java/org/terasology/nui/properties/Range.java index 733b4dba88..a7ed230c15 100644 --- a/nui/src/main/java/org/terasology/nui/properties/Range.java +++ b/nui/src/main/java/org/terasology/nui/properties/Range.java @@ -15,7 +15,7 @@ */ package org.terasology.nui.properties; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/nui/src/main/java/org/terasology/nui/properties/TextField.java b/nui/src/main/java/org/terasology/nui/properties/TextField.java index a26a0f8176..b1bb474964 100644 --- a/nui/src/main/java/org/terasology/nui/properties/TextField.java +++ b/nui/src/main/java/org/terasology/nui/properties/TextField.java @@ -15,7 +15,7 @@ */ package org.terasology.nui.properties; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/nui/src/main/java/org/terasology/nui/properties/package-info.java b/nui/src/main/java/org/terasology/nui/properties/package-info.java index c825bfa456..18ebf99065 100644 --- a/nui/src/main/java/org/terasology/nui/properties/package-info.java +++ b/nui/src/main/java/org/terasology/nui/properties/package-info.java @@ -16,4 +16,4 @@ @API package org.terasology.nui.properties; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/reflection/WidgetLibrary.java b/nui/src/main/java/org/terasology/nui/reflection/WidgetLibrary.java index ed9dd8aada..2b2b3cc4a8 100644 --- a/nui/src/main/java/org/terasology/nui/reflection/WidgetLibrary.java +++ b/nui/src/main/java/org/terasology/nui/reflection/WidgetLibrary.java @@ -17,8 +17,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.terasology.assets.ResourceUrn; -import org.terasology.module.ModuleEnvironment; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.module.ModuleEnvironment; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.metadata.AbstractClassLibrary; import org.terasology.reflection.metadata.ClassMetadata; diff --git a/nui/src/main/java/org/terasology/nui/reflection/WidgetMetadata.java b/nui/src/main/java/org/terasology/nui/reflection/WidgetMetadata.java index c68987dcb1..052df2415c 100644 --- a/nui/src/main/java/org/terasology/nui/reflection/WidgetMetadata.java +++ b/nui/src/main/java/org/terasology/nui/reflection/WidgetMetadata.java @@ -16,7 +16,7 @@ package org.terasology.nui.reflection; import com.google.common.base.Predicate; -import org.terasology.assets.ResourceUrn; +import org.terasology.gestalt.assets.ResourceUrn; import org.terasology.reflection.copy.CopyStrategy; import org.terasology.reflection.copy.CopyStrategyLibrary; import org.terasology.reflection.metadata.ClassMetadata; diff --git a/nui/src/main/java/org/terasology/nui/skin/UISkin.java b/nui/src/main/java/org/terasology/nui/skin/UISkin.java index 0f1938d3ff..4d2769a34b 100644 --- a/nui/src/main/java/org/terasology/nui/skin/UISkin.java +++ b/nui/src/main/java/org/terasology/nui/skin/UISkin.java @@ -15,10 +15,10 @@ */ package org.terasology.nui.skin; -import org.terasology.assets.Asset; -import org.terasology.assets.AssetType; -import org.terasology.assets.ResourceUrn; -import org.terasology.assets.format.AssetDataFile; +import org.terasology.gestalt.assets.Asset; +import org.terasology.gestalt.assets.AssetType; +import org.terasology.gestalt.assets.ResourceUrn; +import org.terasology.gestalt.assets.format.AssetDataFile; import org.terasology.nui.UIWidget; /** diff --git a/nui/src/main/java/org/terasology/nui/skin/UISkinData.java b/nui/src/main/java/org/terasology/nui/skin/UISkinData.java index 27b75ae65c..3dcd1977e1 100644 --- a/nui/src/main/java/org/terasology/nui/skin/UISkinData.java +++ b/nui/src/main/java/org/terasology/nui/skin/UISkinData.java @@ -16,8 +16,8 @@ package org.terasology.nui.skin; import com.google.common.collect.Maps; -import org.terasology.assets.AssetData; -import org.terasology.assets.format.AssetDataFile; +import org.terasology.gestalt.assets.AssetData; +import org.terasology.gestalt.assets.format.AssetDataFile; import java.util.Map; diff --git a/nui/src/main/java/org/terasology/nui/skin/package-info.java b/nui/src/main/java/org/terasology/nui/skin/package-info.java index 9989d42131..9fd912fc80 100644 --- a/nui/src/main/java/org/terasology/nui/skin/package-info.java +++ b/nui/src/main/java/org/terasology/nui/skin/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.skin; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/translate/Translator.java b/nui/src/main/java/org/terasology/nui/translate/Translator.java index fc8bdfa0f0..38bbc8c0fb 100644 --- a/nui/src/main/java/org/terasology/nui/translate/Translator.java +++ b/nui/src/main/java/org/terasology/nui/translate/Translator.java @@ -16,7 +16,7 @@ package org.terasology.nui.translate; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.util.Locale; diff --git a/nui/src/main/java/org/terasology/nui/util/package-info.java b/nui/src/main/java/org/terasology/nui/util/package-info.java index b8cb298f2f..1499a788c9 100644 --- a/nui/src/main/java/org/terasology/nui/util/package-info.java +++ b/nui/src/main/java/org/terasology/nui/util/package-info.java @@ -15,4 +15,4 @@ */ @API package org.terasology.nui.util; -import org.terasology.module.sandbox.API; \ No newline at end of file +import org.terasology.gestalt.module.sandbox.API; \ No newline at end of file diff --git a/nui/src/main/java/org/terasology/nui/widgets/package-info.java b/nui/src/main/java/org/terasology/nui/widgets/package-info.java index 1862b008c2..111a7138a6 100644 --- a/nui/src/main/java/org/terasology/nui/widgets/package-info.java +++ b/nui/src/main/java/org/terasology/nui/widgets/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.widgets; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; diff --git a/nui/src/main/java/org/terasology/nui/widgets/treeView/Tree.java b/nui/src/main/java/org/terasology/nui/widgets/treeView/Tree.java index 858648b9e9..aa6eba3e32 100644 --- a/nui/src/main/java/org/terasology/nui/widgets/treeView/Tree.java +++ b/nui/src/main/java/org/terasology/nui/widgets/treeView/Tree.java @@ -17,7 +17,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.util.ArrayDeque; import java.util.Collection; diff --git a/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeModel.java b/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeModel.java index d5b8dae5bc..830889acba 100644 --- a/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeModel.java +++ b/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeModel.java @@ -16,7 +16,7 @@ package org.terasology.nui.widgets.treeView; import com.google.common.collect.Lists; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import java.util.Iterator; import java.util.List; diff --git a/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeMouseClickListener.java b/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeMouseClickListener.java index a25f528243..23a5a324c0 100644 --- a/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeMouseClickListener.java +++ b/nui/src/main/java/org/terasology/nui/widgets/treeView/TreeMouseClickListener.java @@ -15,7 +15,7 @@ */ package org.terasology.nui.widgets.treeView; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; import org.terasology.nui.events.NUIMouseClickEvent; diff --git a/nui/src/main/java/org/terasology/nui/widgets/treeView/package-info.java b/nui/src/main/java/org/terasology/nui/widgets/treeView/package-info.java index 86afa9f8c2..846acb637e 100644 --- a/nui/src/main/java/org/terasology/nui/widgets/treeView/package-info.java +++ b/nui/src/main/java/org/terasology/nui/widgets/treeView/package-info.java @@ -19,4 +19,4 @@ */ @API package org.terasology.nui.widgets.treeView; -import org.terasology.module.sandbox.API; +import org.terasology.gestalt.module.sandbox.API; From 4f78131498b86ef1da429a6b3f7c67d6e54ac502 Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Sun, 9 Aug 2020 23:33:44 +0200 Subject: [PATCH 2/8] release: version 2.0.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f8171f9dfb..04e14ec54a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { ext { // Overall version number for NUI's various elements - nuiVersion = "2.0.0-SNAPSHOT" + nuiVersion = "2.0.0" // JOML version we're tracking jomlVersion = "1.9.25" From 456edae4398c04b69b9ef37e3e7f0696385269ec Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Sun, 9 Aug 2020 23:35:15 +0200 Subject: [PATCH 3/8] chore: prepare next snapshot for 2.1.0-SNAPSHOT --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 04e14ec54a..dd44c0dd05 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { ext { // Overall version number for NUI's various elements - nuiVersion = "2.0.0" + nuiVersion = "2.1.0-SNAPSHOT" // JOML version we're tracking jomlVersion = "1.9.25" From 40b4a1864ef508a36d2cddb833ea0d4577a1ca5a Mon Sep 17 00:00:00 2001 From: jdrueckert Date: Sun, 9 Aug 2020 23:44:25 +0200 Subject: [PATCH 4/8] chore: add info how to get TeraNUI for local testting --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b087e12580..73a9912e37 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,12 @@ PR with your changes. You can start right away by using the Gitpod online worksp [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/MovingBlocks/TeraNUI) +In Terasology, you can test easily locally until you're ready for a snapshot or release. To do so, you'll need to re-embed TeraNUI into Terasology as source which has priority over any binary version. You can get the TeraNUI library as source into your local Terasology workspace as follows: +```sh +groovyw lib get TeraNUI +``` +This will place the TeraNUI source code into `/libs/TeraNUI`. Please note, that you may need to reload/refresh your gradle workspace in Intellij IDEA. + ## 🤖 Maintenance The main development of TeraNUI happens on the `master` branch, a strong main branch that always has the latest version @@ -51,7 +57,8 @@ The exact build steps for this library are defined in the [Jenkinsfile](./Jenkin 🗄 [**Snapshots**][artifactory-nui-snapshot] ▪ [**Releases**][artifactory-nui-release] -> 🚧 TODO: how to consume TeraNUI from the Terasolgoy Artifactory (e.g., gradle dependency snippet) + +> 🚧 TODO: how to consume TeraNUI from the Terasology Artifactory (e.g., gradle dependency snippet) ### Release Process From b228db2e66cb17565d258e5cb137211890aafa57 Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Mon, 10 Aug 2020 19:09:16 +0200 Subject: [PATCH 5/8] chore: Add math utility `addClampAtMax` for float This is required to ensure that RectUtility for Rectanglef works the same way as for Rectanglei. --- .../java/org/terasology/nui/util/NUIMathUtil.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nui/src/main/java/org/terasology/nui/util/NUIMathUtil.java b/nui/src/main/java/org/terasology/nui/util/NUIMathUtil.java index 6b37d34929..505f6d2ad0 100644 --- a/nui/src/main/java/org/terasology/nui/util/NUIMathUtil.java +++ b/nui/src/main/java/org/terasology/nui/util/NUIMathUtil.java @@ -33,8 +33,6 @@ private NUIMathUtil() { /** * a + b, but if the result exceeds Integer.MAX_VALUE then the result will be Integer.MAX_VALUE rather than overflowing. * - * @param a - * @param b * @return min(a + b, Integer.MAX_VALUE) */ public static int addClampAtMax(int a, int b) { @@ -42,6 +40,16 @@ public static int addClampAtMax(int a, int b) { return (int) Math.min(result, Integer.MAX_VALUE); } + /** + * a + b, but if the result exceeds Float.MAX_VALUE then the result will be Float.MAX_VALUE rather than overflowing. + *∂ + * @return min(a + b, Float.MAX_VALUE) + */ + public static float addClampAtMax(float a, float b) { + double result = (double) a + (double) b; + return (float) Math.min(result, Float.MAX_VALUE); + } + /** * Returns the absolute value. * From a4a74e3bf915969fcc560139791e3df96d3ef898 Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Mon, 10 Aug 2020 19:11:25 +0200 Subject: [PATCH 6/8] fix: `createFromMinAndSize` clamps and validates result On TeraMath classes `Rect2i` and `Rect2f` had the semantics that creating them from min and size would validate that the size is positive along both axis. The JOML utility class was missing this feature. This also adds overflow prevention. --- .../java/org/terasology/nui/util/RectUtility.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/nui/src/main/java/org/terasology/nui/util/RectUtility.java b/nui/src/main/java/org/terasology/nui/util/RectUtility.java index 26428f66ab..779ca35bbd 100644 --- a/nui/src/main/java/org/terasology/nui/util/RectUtility.java +++ b/nui/src/main/java/org/terasology/nui/util/RectUtility.java @@ -6,23 +6,30 @@ import org.joml.Vector2i; public final class RectUtility { + private RectUtility() { } public static Rectanglei createFromMinAndSize(int minX, int minY, int width, int height) { - return new Rectanglei(minX, minY, minX + width, minY + height); + final int maxX = NUIMathUtil.addClampAtMax(minX, width); + final int maxY = NUIMathUtil.addClampAtMax(minY, height); + final Rectanglei rect = new Rectanglei(minX, minY, maxX, maxY); + return rect.isValid() ? rect : new Rectanglei(); } public static Rectanglei createFromMinAndSize(Vector2i min, Vector2i size) { - return new Rectanglei(min, min.add(size, new Vector2i())); + return createFromMinAndSize(min.x, min.y, size.x, size.y); } public static Rectanglef createFromMinAndSize(float minX, float minY, float width, float height) { - return new Rectanglef(minX, minY, minX + width, minY + height); + final float maxX = NUIMathUtil.addClampAtMax(minX, width); + final float maxY = NUIMathUtil.addClampAtMax(minY, height); + final Rectanglef rect = new Rectanglef(minX, minY, maxX, maxY); + return rect.isValid() ? rect : new Rectanglef(); } public static Rectanglef createFromMinAndSize(Vector2f min, Vector2f size) { - return new Rectanglef(min, min.add(size, new Vector2f())); + return createFromMinAndSize(min.x, min.y, size.x, size.y); } public static Rectanglef createFromCenterAndSize(Vector2f center, Vector2f size) { From e1f7918018061864c99a72ef291f76299cb754d8 Mon Sep 17 00:00:00 2001 From: Tobias Nett Date: Mon, 10 Aug 2020 19:14:55 +0200 Subject: [PATCH 7/8] docs: Add JavaDoc for `createFromMinAndMax` Adds JavaDoc to explain what the methods are doing and to state contracts and guarantees. --- .../org/terasology/nui/util/RectUtility.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/nui/src/main/java/org/terasology/nui/util/RectUtility.java b/nui/src/main/java/org/terasology/nui/util/RectUtility.java index 779ca35bbd..0f5468d508 100644 --- a/nui/src/main/java/org/terasology/nui/util/RectUtility.java +++ b/nui/src/main/java/org/terasology/nui/util/RectUtility.java @@ -10,6 +10,20 @@ public final class RectUtility { private RectUtility() { } + /** + * Create a 2D axis-aligned rectangle at bottom-left anchor position with given size. + * + * The result is guaranteed to be valid. If either width or height are negative an empty rectangle is returned. + * If creating a rectangle of requested size would exceed the integer range the maximal rectangle that still fits + * into the range is returned. + * + * @param minX the x-coordinate of the bottom-left corner + * @param minY the y-coordinate of the bottom-left corner + * @param width the width (x-direction) + * @param height the height (y-direction) + * + * @return a 2D axis-aligned rectangle as specified, or an empty rectangle if either width or height are negative + */ public static Rectanglei createFromMinAndSize(int minX, int minY, int width, int height) { final int maxX = NUIMathUtil.addClampAtMax(minX, width); final int maxY = NUIMathUtil.addClampAtMax(minY, height); @@ -17,10 +31,35 @@ public static Rectanglei createFromMinAndSize(int minX, int minY, int width, int return rect.isValid() ? rect : new Rectanglei(); } + /** + * Create a 2D axis-aligned rectangle at bottom-left anchor position with given size. + * + * The result is guaranteed to be valid. If either width or height are negative an empty rectangle is returned. + * If creating a rectangle of requested size would exceed the integer range the maximal rectangle that still fits + * into the range is returned. + * + * @param min the coordinates of the bottom-left corner + * @param size the size of the rectangle + * @return a 2D axis-aligned rectangle as specified, or an empty rectangle if either width or height are negative + */ public static Rectanglei createFromMinAndSize(Vector2i min, Vector2i size) { return createFromMinAndSize(min.x, min.y, size.x, size.y); } + /** + * Create a 2D axis-aligned rectangle at bottom-left anchor position with given size. + * + * The result is guaranteed to be valid. If either width or height are negative an empty rectangle is returned. + * If creating a rectangle of requested size would exceed the integer range the maximal rectangle that still fits + * into the range is returned. + * + * @param minX the x-coordinate of the bottom-left corner + * @param minY the y-coordinate of the bottom-left corner + * @param width the width (x-direction) + * @param height the height (y-direction) + * + * @return a 2D axis-aligned rectangle as specified, or an empty rectangle if either width or height are negative + */ public static Rectanglef createFromMinAndSize(float minX, float minY, float width, float height) { final float maxX = NUIMathUtil.addClampAtMax(minX, width); final float maxY = NUIMathUtil.addClampAtMax(minY, height); @@ -28,6 +67,17 @@ public static Rectanglef createFromMinAndSize(float minX, float minY, float widt return rect.isValid() ? rect : new Rectanglef(); } + /** + * Create a 2D axis-aligned rectangle at bottom-left anchor position with given size. + * + * The result is guaranteed to be valid. If either width or height are negative an empty rectangle is returned. + * If creating a rectangle of requested size would exceed the integer range the maximal rectangle that still fits + * into the range is returned. + * + * @param min the coordinates of the bottom-left corner + * @param size the size of the rectangle + * @return a 2D axis-aligned rectangle as specified, or an empty rectangle if either width or height are negative + */ public static Rectanglef createFromMinAndSize(Vector2f min, Vector2f size) { return createFromMinAndSize(min.x, min.y, size.x, size.y); } From 7e9c5d5472978d6f89c24af1dd55630b3f3a34b0 Mon Sep 17 00:00:00 2001 From: jdrueckert Date: Sat, 12 Sep 2020 10:36:07 +0200 Subject: [PATCH 8/8] fiy(miglayout): `setRowConstraints` uses col constraints (#26) --- .../java/org/terasology/nui/layouts/miglayout/MigLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nui/src/main/java/org/terasology/nui/layouts/miglayout/MigLayout.java b/nui/src/main/java/org/terasology/nui/layouts/miglayout/MigLayout.java index b07516ba49..df3e403ac5 100644 --- a/nui/src/main/java/org/terasology/nui/layouts/miglayout/MigLayout.java +++ b/nui/src/main/java/org/terasology/nui/layouts/miglayout/MigLayout.java @@ -114,7 +114,7 @@ public void setRc(AC rc) { public void setRowConstraints(String constraint) { rowConstraints = constraint; - setRc(ConstraintParser.parseColumnConstraints(ConstraintParser.prepare(constraint))); + setRc(ConstraintParser.parseRowConstraints(ConstraintParser.prepare(constraint))); } @Override