aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/api/utils
diff options
context:
space:
mode:
authorisXander <xandersmith2008@gmail.com>2022-11-27 18:43:24 +0000
committerisXander <xandersmith2008@gmail.com>2022-11-27 18:43:24 +0000
commitd6a5bf1d333586c267a5b156eca6b576529fce74 (patch)
treecc049fe062595bbfdc4d89a06e6ea577d3e3f795 /src/main/java/dev/isxander/yacl/api/utils
parent5e7479e78f90e344e914aeac1297002fc274f32d (diff)
downloadYetAnotherConfigLib-d6a5bf1d333586c267a5b156eca6b576529fce74.tar.gz
YetAnotherConfigLib-d6a5bf1d333586c267a5b156eca6b576529fce74.tar.bz2
YetAnotherConfigLib-d6a5bf1d333586c267a5b156eca6b576529fce74.zip
replacement of ConfigInstance#buildConfig in YetAnotherConfigLib.java
move some things to main that can be and fix testmod
Diffstat (limited to 'src/main/java/dev/isxander/yacl/api/utils')
-rw-r--r--src/main/java/dev/isxander/yacl/api/utils/Dimension.java33
-rw-r--r--src/main/java/dev/isxander/yacl/api/utils/MutableDimension.java11
2 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/dev/isxander/yacl/api/utils/Dimension.java b/src/main/java/dev/isxander/yacl/api/utils/Dimension.java
new file mode 100644
index 0000000..0de0a58
--- /dev/null
+++ b/src/main/java/dev/isxander/yacl/api/utils/Dimension.java
@@ -0,0 +1,33 @@
+package dev.isxander.yacl.api.utils;
+
+import dev.isxander.yacl.impl.utils.DimensionIntegerImpl;
+
+public interface Dimension<T extends Number> {
+ T x();
+ T y();
+
+ T width();
+ T height();
+
+ T xLimit();
+ T yLimit();
+
+ T centerX();
+ T centerY();
+
+ boolean isPointInside(T x, T y);
+
+ MutableDimension<T> clone();
+
+ Dimension<T> withX(T x);
+ Dimension<T> withY(T y);
+ Dimension<T> withWidth(T width);
+ Dimension<T> withHeight(T height);
+
+ Dimension<T> moved(T x, T y);
+ Dimension<T> expanded(T width, T height);
+
+ static MutableDimension<Integer> ofInt(int x, int y, int width, int height) {
+ return new DimensionIntegerImpl(x, y, width, height);
+ }
+}
diff --git a/src/main/java/dev/isxander/yacl/api/utils/MutableDimension.java b/src/main/java/dev/isxander/yacl/api/utils/MutableDimension.java
new file mode 100644
index 0000000..eff0186
--- /dev/null
+++ b/src/main/java/dev/isxander/yacl/api/utils/MutableDimension.java
@@ -0,0 +1,11 @@
+package dev.isxander.yacl.api.utils;
+
+public interface MutableDimension<T extends Number> extends Dimension<T> {
+ MutableDimension<T> setX(T x);
+ MutableDimension<T> setY(T y);
+ MutableDimension<T> setWidth(T width);
+ MutableDimension<T> setHeight(T height);
+
+ MutableDimension<T> move(T x, T y);
+ MutableDimension<T> expand(T width, T height);
+}