diff options
author | isXander <xandersmith2008@gmail.com> | 2022-11-27 18:43:24 +0000 |
---|---|---|
committer | isXander <xandersmith2008@gmail.com> | 2022-11-27 18:43:24 +0000 |
commit | d6a5bf1d333586c267a5b156eca6b576529fce74 (patch) | |
tree | cc049fe062595bbfdc4d89a06e6ea577d3e3f795 /src/main/java/dev/isxander/yacl/api/utils | |
parent | 5e7479e78f90e344e914aeac1297002fc274f32d (diff) | |
download | YetAnotherConfigLib-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.java | 33 | ||||
-rw-r--r-- | src/main/java/dev/isxander/yacl/api/utils/MutableDimension.java | 11 |
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); +} |