alphaStack = new Stack<>();
- private static volatile boolean alphaStackEnabled = true;
-
-
- @FactoryMethod
- public static final Color fromHex(int rgb_hex)
- {
- final int bi = rgb_hex & 0xff;
- final int gi = (rgb_hex >> 8) & 0xff;
- final int ri = (rgb_hex >> 16) & 0xff;
- return rgb(ri / 255D, gi / 255D, bi / 255D);
- }
-
-
- @FactoryMethod
- public static final Color rgb(double r, double g, double b)
- {
- return rgba(Num.make(r), Num.make(g), Num.make(b), Num.ONE);
- }
-
-
- @FactoryMethod
- public static final Color rgba(double r, double g, double b, double a)
- {
- return rgba(Num.make(r), Num.make(g), Num.make(b), Num.make(a));
- }
-
-
- @FactoryMethod
- public static final Color rgb(Num r, Num g, Num b)
- {
- return rgba(r, g, b, Num.ONE);
- }
-
-
- @FactoryMethod
- public static final Color rgba(Num r, Num g, Num b, Num a)
- {
- return new ColorRgb(r, g, b, a);
- }
-
-
- @FactoryMethod
- public static final Color hsb(double h, double s, double b)
- {
- return hsba(Num.make(h), Num.make(s), Num.make(b), Num.ONE);
- }
-
-
- @FactoryMethod
- public static final Color hsba(double h, double s, double b, double a)
- {
- return hsba(Num.make(h), Num.make(s), Num.make(b), Num.make(a));
- }
-
-
- @FactoryMethod
- public static final Color hsb(Num h, Num s, Num b)
- {
- return hsba(h, s, b, Num.ONE);
- }
-
-
- @FactoryMethod
- public static final Color hsba(Num h, Num s, Num b, Num a)
- {
- return new ColorHsb(h, s, b, a);
- }
-
-
- @FactoryMethod
- public static final Color light(double a)
- {
- return light(Num.make(a));
- }
-
-
- @FactoryMethod
- public static final Color light(Num a)
- {
- return rgba(Num.ONE, Num.ONE, Num.ONE, a);
- }
-
-
- @FactoryMethod
- public static final Color dark(double a)
- {
- return dark(Num.make(a));
- }
-
-
- @FactoryMethod
- public static final Color dark(Num a)
- {
- return rgba(Num.ZERO, Num.ZERO, Num.ZERO, a);
- }
-
-
- protected static final double clamp(Num n)
- {
- return Calc.clamp(n.value(), 0, 1);
- }
-
-
- protected static final double clamp(double n)
- {
- return Calc.clamp(n, 0, 1);
- }
-
-
- /**
- * @return red 0-1
- */
- public abstract double r();
-
-
- /**
- * @return green 0-1
- */
- public abstract double g();
-
-
- /**
- * @return blue 0-1
- */
- public abstract double b();
-
-
- /**
- * @return alpha 0-1
- */
- public final double a()
- {
- double alpha = rawAlpha();
-
- if (alphaStackEnabled) {
-
- for (final Num n : alphaStack) {
- alpha *= clamp(n.value());
- }
- }
-
- return clamp(alpha);
- }
-
-
- /**
- * @return alpha 0-1, before multiplying with the global alpha value.
- */
- protected abstract double rawAlpha();
-
-
- /**
- *
- * Push alpha multiplier on the stack (can be animated or whatever you
- * like). Once done with rendering, the popAlpha() method should be called,
- * otherwise you may experience unexpected glitches (such as all going
- * transparent).
- *
- *
- * multiplier value should not exceed the range 0..1, otherwise it will be
- * clamped to it.
- *
- *
- * @param alpha alpha multiplier
- */
- public static void pushAlpha(Num alpha)
- {
- if (!alphaStackEnabled) {
- return;
- }
-
- alphaStack.push(alpha);
- }
-
-
- /**
- * Remove a pushed alpha multiplier from the stack. If there's no remaining
- * multiplier on the stack, an exception is raised.
- *
- * @throws EmptyStackException if the stack is empty
- */
- public static void popAlpha()
- {
- if (!alphaStackEnabled) {
- return;
- }
-
- if (alphaStack.isEmpty()) {
- throw new EmptyStackException();
- }
-
- alphaStack.pop();
- }
-
-
- /**
- * Enable alpha stack. When disabled, pushAlpha() and popAlpha() have no
- * effect.
- *
- * @param yes
- */
- public static void enableAlphaStack(boolean yes)
- {
- alphaStackEnabled = yes;
- }
-
-
- /**
- * @return true if alpha stack is enabled.
- */
- public static boolean isAlphaStackEnabled()
- {
- return alphaStackEnabled;
- }
-
-
- public Color withAlpha(double multiplier)
- {
- return new ColorAlphaAdjuster(this, Num.make(multiplier));
- }
-
-
- public Color withAlpha(Num multiplier)
- {
- return new ColorAlphaAdjuster(this, multiplier);
- }
-}
diff --git a/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java b/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java
deleted file mode 100644
index 0de2050..0000000
--- a/src/mightypork/gamecore/util/math/color/ColorAlphaAdjuster.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package mightypork.gamecore.util.math.color;
-
-
-import mightypork.dynmath.num.Num;
-
-
-public class ColorAlphaAdjuster extends Color {
-
- private final Color source;
- private final Num alphaAdjust;
-
-
- public ColorAlphaAdjuster(Color source, Num alphaMul)
- {
- this.source = source;
- this.alphaAdjust = alphaMul;
- }
-
-
- @Override
- public double r()
- {
- return source.r();
- }
-
-
- @Override
- public double g()
- {
- return source.g();
- }
-
-
- @Override
- public double b()
- {
- return source.b();
- }
-
-
- @Override
- protected double rawAlpha()
- {
- return source.rawAlpha() * alphaAdjust.value();
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/color/ColorHsb.java b/src/mightypork/gamecore/util/math/color/ColorHsb.java
deleted file mode 100644
index 2cd5800..0000000
--- a/src/mightypork/gamecore/util/math/color/ColorHsb.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package mightypork.gamecore.util.math.color;
-
-
-import mightypork.dynmath.num.Num;
-
-
-public class ColorHsb extends Color {
-
- private final Num h;
- private final Num s;
- private final Num b;
- private final Num a;
-
-
- public ColorHsb(Num h, Num s, Num b, Num a)
- {
- this.h = h;
- this.s = s;
- this.b = b;
- this.a = a;
- }
-
-
- private double[] asRgb()
- {
- final int hex = java.awt.Color.HSBtoRGB((float) clamp(h), (float) clamp(s), (float) clamp(b));
-
- final int bi = hex & 0xff;
- final int gi = (hex >> 8) & 0xff;
- final int ri = (hex >> 16) & 0xff;
- return new double[] { ri / 255D, gi / 255D, bi / 255D, clamp(a) };
- }
-
-
- @Override
- public double r()
- {
- return asRgb()[0];
- }
-
-
- @Override
- public double g()
- {
- return asRgb()[1];
- }
-
-
- @Override
- public double b()
- {
- return asRgb()[2];
- }
-
-
- @Override
- protected double rawAlpha()
- {
- return asRgb()[3];
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/color/ColorRgb.java b/src/mightypork/gamecore/util/math/color/ColorRgb.java
deleted file mode 100644
index 63c1172..0000000
--- a/src/mightypork/gamecore/util/math/color/ColorRgb.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package mightypork.gamecore.util.math.color;
-
-
-import mightypork.dynmath.num.Num;
-
-
-public class ColorRgb extends Color {
-
- private final Num r;
- private final Num g;
- private final Num b;
- private final Num a;
-
-
- public ColorRgb(Num r, Num g, Num b, Num a)
- {
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- }
-
-
- @Override
- public double r()
- {
- return clamp(r);
- }
-
-
- @Override
- public double g()
- {
- return clamp(g);
- }
-
-
- @Override
- public double b()
- {
- return clamp(b);
- }
-
-
- @Override
- protected double rawAlpha()
- {
- return clamp(a);
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/color/pal/CGA.java b/src/mightypork/gamecore/util/math/color/pal/CGA.java
deleted file mode 100644
index e8a49b1..0000000
--- a/src/mightypork/gamecore/util/math/color/pal/CGA.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package mightypork.gamecore.util.math.color.pal;
-
-
-import mightypork.gamecore.util.math.color.Color;
-
-
-/**
- * CGA palette
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface CGA {
-
- Color BLACK = Color.fromHex(0x000000);
- Color GRAY_DARK = Color.fromHex(0x686868);
- Color GRAY_LIGHT = Color.fromHex(0xB8B8B8);
- Color WHITE = Color.fromHex(0xFFFFFF);
-
- Color RED_DARK = Color.fromHex(0xC41F0C);
- Color RED_LIGHT = Color.fromHex(0xFF706A);
- Color MAGENTA_DARK = Color.fromHex(0xC12BB6);
- Color MAGENTA_LIGHT = Color.fromHex(0xFF76FD);
- Color BLUE_DARK = Color.fromHex(0x0019B6);
- Color BLUE_LIGHT = Color.fromHex(0x5F6EFC);
- Color CYAN_DARK = Color.fromHex(0x00B6B8);
- Color CYAN_LIGHT = Color.fromHex(0x23FCFE);
- Color GREEN_DARK = Color.fromHex(0x00B41D);
- Color GREEN_LIGHT = Color.fromHex(0x39FA6F);
-
- Color YELLOW = Color.fromHex(0xFFFD72);
- Color BROWN = Color.fromHex(0xC16A14);
-}
diff --git a/src/mightypork/gamecore/util/math/color/pal/CMDR.java b/src/mightypork/gamecore/util/math/color/pal/CMDR.java
deleted file mode 100644
index a5f7109..0000000
--- a/src/mightypork/gamecore/util/math/color/pal/CMDR.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package mightypork.gamecore.util.math.color.pal;
-
-
-import mightypork.gamecore.util.math.color.Color;
-
-
-/**
- * COMMODORE palette
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface CMDR {
-
- Color BLACK = Color.fromHex(0x040013);
- Color WHITE = Color.fromHex(0xFFFFFF);
- Color RED = Color.fromHex(0x883932);
- Color CYAN = Color.fromHex(0x67B6BD);
- Color PURPLE = Color.fromHex(0x8B3F96);
- Color GREEN = Color.fromHex(0x55A049);
- Color BLUE = Color.fromHex(0x40318D);
- Color YELLOW = Color.fromHex(0xBFCE72);
- Color ORANGE = Color.fromHex(0x8B5429);
- Color BROWN = Color.fromHex(0x574200);
- Color RED_LIGHT = Color.fromHex(0xB86962);
- Color GRAY_DARK = Color.fromHex(0x505050);
- Color GRAY = Color.fromHex(0x787878);
- Color GREEN_LIGHT = Color.fromHex(0x94E089);
- Color BLUE_LIGHT = Color.fromHex(0x7869C4);
- Color GRAY_LIGHT = Color.fromHex(0x9F9F9F);
-}
diff --git a/src/mightypork/gamecore/util/math/color/pal/PAL16.java b/src/mightypork/gamecore/util/math/color/pal/PAL16.java
deleted file mode 100644
index 4a31117..0000000
--- a/src/mightypork/gamecore/util/math/color/pal/PAL16.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package mightypork.gamecore.util.math.color.pal;
-
-
-import mightypork.gamecore.util.math.color.Color;
-
-
-/**
- * PAL16 palette via http://androidarts.com/palette/16pal.htm
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface PAL16 {
-
- Color VOID = Color.fromHex(0x000000);
- Color ASH = Color.fromHex(0x9D9D9D);
- Color BLIND = Color.fromHex(0xFFFFFF);
-
- Color BLOODRED = Color.fromHex(0xBE2633);
- Color PIGMEAT = Color.fromHex(0xE06F8B);
-
- Color OLDPOOP = Color.fromHex(0x493C2B);
- Color NEWPOOP = Color.fromHex(0xA46422);
- Color BLAZE = Color.fromHex(0xEB8931);
- Color ZORNSKIN = Color.fromHex(0xF7E26B);
-
- Color SHADEGREEN = Color.fromHex(0x2F484E);
- Color LEAFGREEN = Color.fromHex(0x44891A);
- Color SLIMEGREEN = Color.fromHex(0xA3CE27);
-
- Color NIGHTBLUE = Color.fromHex(0x1B2632);
- Color SEABLUE = Color.fromHex(0x005784);
- Color SKYBLUE = Color.fromHex(0x31A2F2);
- Color CLOUDBLUE = Color.fromHex(0xB2DCEF);
-}
diff --git a/src/mightypork/gamecore/util/math/color/pal/RGB.java b/src/mightypork/gamecore/util/math/color/pal/RGB.java
deleted file mode 100644
index 3714eae..0000000
--- a/src/mightypork/gamecore/util/math/color/pal/RGB.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package mightypork.gamecore.util.math.color.pal;
-
-
-import mightypork.gamecore.util.math.color.Color;
-
-
-/**
- * Basic RGB palette
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class RGB {
-
- public static final Color BLACK_10 = Color.rgba(0, 0, 0, 0.1);
- public static final Color BLACK_20 = Color.rgba(0, 0, 0, 0.2);
- public static final Color BLACK_30 = Color.rgba(0, 0, 0, 0.3);
- public static final Color BLACK_40 = Color.rgba(0, 0, 0, 0.4);
- public static final Color BLACK_50 = Color.rgba(0, 0, 0, 0.5);
- public static final Color BLACK_60 = Color.rgba(0, 0, 0, 0.6);
- public static final Color BLACK_70 = Color.rgba(0, 0, 0, 0.7);
- public static final Color BLACK_80 = Color.rgba(0, 0, 0, 0.8);
- public static final Color BLACK_90 = Color.rgba(0, 0, 0, 0.9);
-
-
- public static final Color WHITE = Color.fromHex(0xFFFFFF);
- public static final Color BLACK = Color.fromHex(0x000000);
- public static final Color GRAY_DARK = Color.fromHex(0x808080);
- public static final Color GRAY = Color.fromHex(0xA0A0A0);
- public static final Color GRAY_LIGHT = Color.fromHex(0xC0C0C0);
-
- public static final Color RED = Color.fromHex(0xFF0000);
- public static final Color GREEN = Color.fromHex(0x00FF00);
- public static final Color BLUE = Color.fromHex(0x0000FF);
-
- public static final Color YELLOW = Color.fromHex(0xFFFF00);
- public static final Color CYAN = Color.fromHex(0x00FFFF);
- public static final Color MAGENTA = Color.fromHex(0xFF00FF);
-
- public static final Color PINK = Color.fromHex(0xFF3FFC);
- public static final Color ORANGE = Color.fromHex(0xFC4800);
- public static final Color BROWN = Color.fromHex(0x83501B);
-
- public static final Color NONE = Color.rgba(0, 0, 0, 0);
-}
diff --git a/src/mightypork/gamecore/util/math/color/pal/ZX.java b/src/mightypork/gamecore/util/math/color/pal/ZX.java
deleted file mode 100644
index 1de5e6e..0000000
--- a/src/mightypork/gamecore/util/math/color/pal/ZX.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package mightypork.gamecore.util.math.color.pal;
-
-
-import mightypork.gamecore.util.math.color.Color;
-
-
-/**
- * ZX Spectrum palette
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface ZX {
-
- Color BLACK = Color.fromHex(0x000000);
- Color GRAY = Color.fromHex(0xCBCBCB);
- Color WHITE = Color.fromHex(0xFFFFFF);
-
- Color RED_DARK = Color.fromHex(0xD8240F);
- Color RED_LIGHT = Color.fromHex(0xFF3016);
- Color MAGENTA_DARK = Color.fromHex(0xD530C9);
- Color MAGENTA_LIGHT = Color.fromHex(0xFF3FFC);
- Color BLUE_DARK = Color.fromHex(0x001DC8);
- Color BLUE_LIGHT = Color.fromHex(0x0027FB);
- Color CYAN_DARK = Color.fromHex(0x00C9CB);
- Color CYAN_LIGHT = Color.fromHex(0xFFFD33);
- Color GREEN_DARK = Color.fromHex(0x00C721);
- Color GREEN_LIGHT = Color.fromHex(0x00F92C);
-
- Color YELLOW_DARK = Color.fromHex(0xCECA26);
- Color YELLOW_LIGHT = Color.fromHex(0xFFFD33);
-}
diff --git a/src/mightypork/gamecore/util/math/noise/NoiseGen.java b/src/mightypork/gamecore/util/math/noise/NoiseGen.java
deleted file mode 100644
index 5667789..0000000
--- a/src/mightypork/gamecore/util/math/noise/NoiseGen.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package mightypork.gamecore.util.math.noise;
-
-
-/**
- * 2D Perlin noise generator
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class NoiseGen {
-
- private static final double lowBound = -0.7072;
- private static final double highBound = 0.7072;
-
- private final PerlinNoiseGenerator noiser;
-
- private final double lowMul;
- private final double highMul;
- private final double middle;
- private final double density;
-
-
- /**
- * make a new noise generator with a random seed
- *
- * @param density noise density (0..1). Lower density means larger "spots".
- * @param low low bound ("valley")
- * @param middle middle bound ("surface")
- * @param high high bound ("hill")
- */
- public NoiseGen(double density, double low, double middle, double high)
- {
- this(density, low, middle, high, Double.doubleToLongBits(Math.random()));
- }
-
-
- /**
- * make a new noise generator
- *
- * @param density noise density (0..1). Lower density means larger "spots".
- * @param low low bound ("valley")
- * @param middle middle bound ("surface")
- * @param high high bound ("hill")
- * @param seed random seed to use
- */
- public NoiseGen(double density, double low, double middle, double high, long seed)
- {
- if (low > middle || middle > high) throw new IllegalArgumentException("Invalid value range.");
-
- this.density = density;
-
- // norm low and high to be around zero
- low -= middle;
- high -= middle;
-
- // scale
- this.middle = middle;
-
- lowMul = Math.abs(low / lowBound);
- highMul = Math.abs(high / highBound);
-
- noiser = new PerlinNoiseGenerator(seed);
- }
-
-
- /**
- * Get value at coord
- *
- * @param x x coordinate
- * @param y y coordinate
- * @return value
- */
- public double valueAt(double x, double y)
- {
- double raw = noiser.noise2(x * density, y * density);
-
- if (raw < lowBound) {
- raw = lowBound;
- } else if (raw > highBound) {
- raw = highBound;
- }
-
- if (raw < 0) {
- return middle + lowMul * raw;
- } else {
- return middle + highMul * raw;
- }
- }
-
-
- /**
- * Build a map [height][width] of noise values
- *
- * @param width map width (number of columns)
- * @param height map height (number of rows )
- * @return the map
- */
- public double[][] buildMap(int width, int height)
- {
- final double[][] map = new double[height][width];
-
- for (int y = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- map[y][x] = valueAt(x, y);
- }
- }
-
- return map;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/noise/PerlinNoiseGenerator.java b/src/mightypork/gamecore/util/math/noise/PerlinNoiseGenerator.java
deleted file mode 100644
index 3ab40fa..0000000
--- a/src/mightypork/gamecore/util/math/noise/PerlinNoiseGenerator.java
+++ /dev/null
@@ -1,577 +0,0 @@
-/*****************************************************************************
- * J3D.org Copyright (c) 2000
- * Java Source
- *
- * This source is licensed under the GNU LGPL v2.1
- * Please read http://www.gnu.org/copyleft/lgpl.html for more information
- *
- * This software comes with the standard NO WARRANTY disclaimer for any
- * purpose. Use it at your own risk. If there's a problem you get to fix it.
- *
- ****************************************************************************/
-package mightypork.gamecore.util.math.noise;
-
-
-import java.util.Random;
-
-
-/**
- * Computes Perlin Noise for three dimensions.
- *
- * The result is a continuous function that interpolates a smooth path along a
- * series random points. The function is consitent, so given the same
- * parameters, it will always return the same value. The smoothing function is
- * based on the Improving Noise paper presented at Siggraph 2002.
- *
- * Computing noise for one and two dimensions can make use of the 3D problem
- * space by just setting the un-needed dimensions to a fixed value.
- *
- * @author Justin Couch
- * @edited by Ondřej Hruška
- * @version $Revision: 1.4 $
- * @source http://code.j3d.org/download.html
- */
-public class PerlinNoiseGenerator {
-
- // Constants for setting up the Perlin-1 noise functions
- private static final int B = 0x1000;
- private static final int BM = 0xff;
-
- private static final int N = 0x1000;
-
- /** Default seed to use for the random number generation */
- private static final int DEFAULT_SEED = 100;
-
- /** Default sample size to work with */
- private static final int DEFAULT_SAMPLE_SIZE = 256;
-
- private final Random rand = new Random(DEFAULT_SEED);
-
- /** Permutation array for the improved noise function */
- private final int[] p_imp;
-
- /** P array for perline 1 noise */
- private int[] p;
- private double[][] g3;
- private double[][] g2;
- private double[] g1;
-
-
- /**
- * Create a new noise creator with the default seed value
- */
- public PerlinNoiseGenerator()
- {
- this(DEFAULT_SEED);
- }
-
-
- /**
- * Create a new noise creator with the given seed value for the randomness
- *
- * @param seed The seed value to use
- */
- public PerlinNoiseGenerator(long seed)
- {
- p_imp = new int[DEFAULT_SAMPLE_SIZE << 1];
-
- int i, j, k;
- rand.setSeed(seed);
-
- // Calculate the table of psuedo-random coefficients.
- for (i = 0; i < DEFAULT_SAMPLE_SIZE; i++)
- p_imp[i] = i;
-
- // generate the psuedo-random permutation table.
- while (--i > 0) {
- k = p_imp[i];
- j = (int) (rand.nextLong() & DEFAULT_SAMPLE_SIZE);
- p_imp[i] = p_imp[j];
- p_imp[j] = k;
- }
-
- initPerlin1();
- }
-
-
- /**
- * Computes noise function for three dimensions at the point (x,y,z).
- *
- * @param x x dimension parameter
- * @param y y dimension parameter
- * @param z z dimension parameter
- * @return the noise value at the point (x, y, z)
- */
- public double improvedNoise(double x, double y, double z)
- {
- // Constraint the point to a unit cube
- final int uc_x = (int) Math.floor(x) & 255;
- final int uc_y = (int) Math.floor(y) & 255;
- final int uc_z = (int) Math.floor(z) & 255;
-
- // Relative location of the point in the unit cube
- final double xo = x - Math.floor(x);
- final double yo = y - Math.floor(y);
- final double zo = z - Math.floor(z);
-
- // Fade curves for x, y and z
- final double u = fade(xo);
- final double v = fade(yo);
- final double w = fade(zo);
-
- // Generate a hash for each coordinate to find out where in the cube
- // it lies.
- final int a = p_imp[uc_x] + uc_y;
- final int aa = p_imp[a] + uc_z;
- final int ab = p_imp[a + 1] + uc_z;
-
- final int b = p_imp[uc_x + 1] + uc_y;
- final int ba = p_imp[b] + uc_z;
- final int bb = p_imp[b + 1] + uc_z;
-
- // blend results from the 8 corners based on the noise function
- final double c1 = grad(p_imp[aa], xo, yo, zo);
- final double c2 = grad(p_imp[ba], xo - 1, yo, zo);
- final double c3 = grad(p_imp[ab], xo, yo - 1, zo);
- final double c4 = grad(p_imp[bb], xo - 1, yo - 1, zo);
- final double c5 = grad(p_imp[aa + 1], xo, yo, zo - 1);
- final double c6 = grad(p_imp[ba + 1], xo - 1, yo, zo - 1);
- final double c7 = grad(p_imp[ab + 1], xo, yo - 1, zo - 1);
- final double c8 = grad(p_imp[bb + 1], xo - 1, yo - 1, zo - 1);
-
- return lerp(w, lerp(v, lerp(u, c1, c2), lerp(u, c3, c4)), lerp(v, lerp(u, c5, c6), lerp(u, c7, c8)));
- }
-
-
- /**
- * 1-D noise generation function using the original perlin algorithm.
- *
- * @param x Seed for the noise function
- * @return The noisy output
- */
- public double noise1(double x)
- {
- final double t = x + N;
- final int bx0 = ((int) t) & BM;
- final int bx1 = (bx0 + 1) & BM;
- final double rx0 = t - (int) t;
- final double rx1 = rx0 - 1;
-
- final double sx = sCurve(rx0);
-
- final double u = rx0 * g1[p[bx0]];
- final double v = rx1 * g1[p[bx1]];
-
- return lerp(sx, u, v);
- }
-
-
- /**
- * Create noise in a 2D space using the orignal perlin noise algorithm.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @return A noisy value at the given position
- */
- public double noise2(double x, double y)
- {
- double t = x + N;
- final int bx0 = ((int) t) & BM;
- final int bx1 = (bx0 + 1) & BM;
- final double rx0 = t - (int) t;
- final double rx1 = rx0 - 1;
-
- t = y + N;
- final int by0 = ((int) t) & BM;
- final int by1 = (by0 + 1) & BM;
- final double ry0 = t - (int) t;
- final double ry1 = ry0 - 1;
-
- final int i = p[bx0];
- final int j = p[bx1];
-
- final int b00 = p[i + by0];
- final int b10 = p[j + by0];
- final int b01 = p[i + by1];
- final int b11 = p[j + by1];
-
- final double sx = sCurve(rx0);
- final double sy = sCurve(ry0);
-
- double[] q = g2[b00];
- double u = rx0 * q[0] + ry0 * q[1];
- q = g2[b10];
- double v = rx1 * q[0] + ry0 * q[1];
- final double a = lerp(sx, u, v);
-
- q = g2[b01];
- u = rx0 * q[0] + ry1 * q[1];
- q = g2[b11];
- v = rx1 * q[0] + ry1 * q[1];
- final double b = lerp(sx, u, v);
-
- return lerp(sy, a, b);
- }
-
-
- /**
- * Create noise in a 3D space using the orignal perlin noise algorithm.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @param z The Z coordinate of the location to sample
- * @return A noisy value at the given position
- */
- public double noise3(double x, double y, double z)
- {
- double t = x + N;
- final int bx0 = ((int) t) & BM;
- final int bx1 = (bx0 + 1) & BM;
- final double rx0 = t - (int) t;
- final double rx1 = rx0 - 1;
-
- t = y + N;
- final int by0 = ((int) t) & BM;
- final int by1 = (by0 + 1) & BM;
- final double ry0 = t - (int) t;
- final double ry1 = ry0 - 1;
-
- t = z + N;
- final int bz0 = ((int) t) & BM;
- final int bz1 = (bz0 + 1) & BM;
- final double rz0 = t - (int) t;
- final double rz1 = rz0 - 1;
-
- final int i = p[bx0];
- final int j = p[bx1];
-
- final int b00 = p[i + by0];
- final int b10 = p[j + by0];
- final int b01 = p[i + by1];
- final int b11 = p[j + by1];
-
- t = sCurve(rx0);
- final double sy = sCurve(ry0);
- final double sz = sCurve(rz0);
-
- double[] q = g3[b00 + bz0];
- double u = (rx0 * q[0] + ry0 * q[1] + rz0 * q[2]);
- q = g3[b10 + bz0];
- double v = (rx1 * q[0] + ry0 * q[1] + rz0 * q[2]);
- double a = lerp(t, u, v);
-
- q = g3[b01 + bz0];
- u = (rx0 * q[0] + ry1 * q[1] + rz0 * q[2]);
- q = g3[b11 + bz0];
- v = (rx1 * q[0] + ry1 * q[1] + rz0 * q[2]);
- double b = lerp(t, u, v);
-
- final double c = lerp(sy, a, b);
-
- q = g3[b00 + bz1];
- u = (rx0 * q[0] + ry0 * q[1] + rz1 * q[2]);
- q = g3[b10 + bz1];
- v = (rx1 * q[0] + ry0 * q[1] + rz1 * q[2]);
- a = lerp(t, u, v);
-
- q = g3[b01 + bz1];
- u = (rx0 * q[0] + ry1 * q[1] + rz1 * q[2]);
- q = g3[b11 + bz1];
- v = (rx1 * q[0] + ry1 * q[1] + rz1 * q[2]);
- b = lerp(t, u, v);
-
- final double d = lerp(sy, a, b);
-
- return lerp(sz, c, d);
- }
-
-
- /**
- * Create a turbulent noise output based on the core noise function. This
- * uses the noise as a base function and is suitable for creating clouds,
- * marble and explosion effects. For example, a typical marble effect would
- * set the colour to be:
- *
- *
- * sin(point + turbulence(point) * point.x);
- *
- *
- * @param x
- * @param y
- * @param z
- * @param loF
- * @param hiF
- * @return value
- */
- public double imporvedTurbulence(double x, double y, double z, double loF, double hiF)
- {
- double p_x = x + 123.456f;
- double p_y = y;
- double p_z = z;
- double t = 0;
- double f;
-
- for (f = loF; f < hiF; f *= 2) {
- t += Math.abs(improvedNoise(p_x, p_y, p_z)) / f;
-
- p_x *= 2;
- p_y *= 2;
- p_z *= 2;
- }
-
- return t - 0.3;
- }
-
-
- /**
- * Create a turbulance function in 2D using the original perlin noise
- * function.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @param freq The frequency of the turbluance to create
- * @return The value at the given coordinates
- */
- public double turbulence2(double x, double y, double freq)
- {
- double t = 0;
-
- do {
- t += noise2(freq * x, freq * y) / freq;
- freq *= 0.5f;
- } while (freq >= 1);
-
- return t;
- }
-
-
- /**
- * Create a turbulance function in 3D using the original perlin noise
- * function.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @param z The Z coordinate of the location to sample
- * @param freq The frequency of the turbluance to create
- * @return The value at the given coordinates
- */
- public double turbulence3(double x, double y, double z, double freq)
- {
- double t = 0;
-
- do {
- t += noise3(freq * x, freq * y, freq * z) / freq;
- freq *= 0.5f;
- } while (freq >= 1);
-
- return t;
- }
-
-
- /**
- * Create a 1D tileable noise function for the given width.
- *
- * @param x The X coordinate to generate the noise for
- * @param w The width of the tiled block
- * @return The value of the noise at the given coordinate
- */
- public double tileableNoise1(double x, double w)
- {
- return (noise1(x) * (w - x) + noise1(x - w) * x) / w;
- }
-
-
- /**
- * Create a 2D tileable noise function for the given width and height.
- *
- * @param x The X coordinate to generate the noise for
- * @param y The Y coordinate to generate the noise for
- * @param w The width of the tiled block
- * @param h The height of the tiled block
- * @return The value of the noise at the given coordinate
- */
- public double tileableNoise2(double x, double y, double w, double h)
- {
- return (noise2(x, y) * (w - x) * (h - y) + noise2(x - w, y) * x * (h - y) + noise2(x, y - h) * (w - x) * y + noise2(x - w, y - h) * x * y) / (w * h);
- }
-
-
- /**
- * Create a 3D tileable noise function for the given width, height and
- * depth.
- *
- * @param x The X coordinate to generate the noise for
- * @param y The Y coordinate to generate the noise for
- * @param z The Z coordinate to generate the noise for
- * @param w The width of the tiled block
- * @param h The height of the tiled block
- * @param d The depth of the tiled block
- * @return The value of the noise at the given coordinate
- */
- public double tileableNoise3(double x, double y, double z, double w, double h, double d)
- {
- return (noise3(x, y, z) * (w - x) * (h - y) * (d - z) + noise3(x - w, y, z) * x * (h - y) * (d - z) + noise3(x, y - h, z) * (w - x) * y * (d - z)
- + noise3(x - w, y - h, z) * x * y * (d - z) + noise3(x, y, z - d) * (w - x) * (h - y) * z + noise3(x - w, y, z - d) * x * (h - y) * z
- + noise3(x, y - h, z - d) * (w - x) * y * z + noise3(x - w, y - h, z - d) * x * y * z)
- / (w * h * d);
- }
-
-
- /**
- * Create a turbulance function that can be tiled across a surface in 2D.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @param w The width to tile over
- * @param h The height to tile over
- * @param freq The frequency of the turbluance to create
- * @return The value at the given coordinates
- */
- public double tileableTurbulence2(double x, double y, double w, double h, double freq)
- {
- double t = 0;
-
- do {
- t += tileableNoise2(freq * x, freq * y, w * freq, h * freq) / freq;
- freq *= 0.5f;
- } while (freq >= 1);
-
- return t;
- }
-
-
- /**
- * Create a turbulance function that can be tiled across a surface in 3D.
- *
- * @param x The X coordinate of the location to sample
- * @param y The Y coordinate of the location to sample
- * @param z The Z coordinate of the location to sample
- * @param w The width to tile over
- * @param h The height to tile over
- * @param d The depth to tile over
- * @param freq The frequency of the turbluance to create
- * @return The value at the given coordinates
- */
- public double tileableTurbulence3(double x, double y, double z, double w, double h, double d, double freq)
- {
- double t = 0;
-
- do {
- t += tileableNoise3(freq * x, freq * y, freq * z, w * freq, h * freq, d * freq) / freq;
- freq *= 0.5f;
- } while (freq >= 1);
-
- return t;
- }
-
-
- /**
- * Simple lerp function using doubles.
- */
- private double lerp(double t, double a, double b)
- {
- return a + t * (b - a);
- }
-
-
- /**
- * Fade curve calculation which is 6t^5 - 15t^4 + 10t^3. This is the new
- * algorithm, where the old one used to be 3t^2 - 2t^3.
- *
- * @param t The t parameter to calculate the fade for
- * @return the drop-off amount.
- */
- private double fade(double t)
- {
- return t * t * t * (t * (t * 6 - 15) + 10);
- }
-
-
- /**
- * Calculate the gradient function based on the hash code.
- */
- private double grad(int hash, double x, double y, double z)
- {
- // Convert low 4 bits of hash code into 12 gradient directions.
- final int h = hash & 15;
- final double u = (h < 8 || h == 12 || h == 13) ? x : y;
- final double v = (h < 4 || h == 12 || h == 13) ? y : z;
-
- return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v);
- }
-
-
- /**
- * S-curve function for value distribution for Perlin-1 noise function.
- */
- private double sCurve(double t)
- {
- return (t * t * (3 - 2 * t));
- }
-
-
- /**
- * 2D-vector normalisation function.
- */
- private void normalize2(double[] v)
- {
- final double s = 1 / Math.sqrt(v[0] * v[0] + v[1] * v[1]);
- v[0] *= s;
- v[1] *= s;
- }
-
-
- /**
- * 3D-vector normalisation function.
- */
- private void normalize3(double[] v)
- {
- final double s = 1 / Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
- v[0] *= s;
- v[1] *= s;
- v[2] *= s;
- }
-
-
- /**
- * Initialise the lookup arrays used by Perlin 1 function.
- */
- private void initPerlin1()
- {
- p = new int[B + B + 2];
- g3 = new double[B + B + 2][3];
- g2 = new double[B + B + 2][2];
- g1 = new double[B + B + 2];
- int i, j, k;
-
- for (i = 0; i < B; i++) {
- p[i] = i;
-
- g1[i] = (((rand.nextDouble() * Integer.MAX_VALUE) % (B + B)) - B) / B;
-
- for (j = 0; j < 2; j++)
- g2[i][j] = (((rand.nextDouble() * Integer.MAX_VALUE) % (B + B)) - B) / B;
- normalize2(g2[i]);
-
- for (j = 0; j < 3; j++)
- g3[i][j] = (((rand.nextDouble() * Integer.MAX_VALUE) % (B + B)) - B) / B;
- normalize3(g3[i]);
- }
-
- while (--i > 0) {
- k = p[i];
- j = (int) ((rand.nextDouble() * Integer.MAX_VALUE) % B);
- p[i] = p[j];
- p[j] = k;
- }
-
- for (i = 0; i < B + 2; i++) {
- p[B + i] = p[i];
- g1[B + i] = g1[i];
- for (j = 0; j < 2; j++)
- g2[B + i][j] = g2[i][j];
- for (j = 0; j < 3; j++)
- g3[B + i][j] = g3[i][j];
- }
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/FpsMeter.java b/src/mightypork/gamecore/util/math/timing/FpsMeter.java
deleted file mode 100644
index f14840e..0000000
--- a/src/mightypork/gamecore/util/math/timing/FpsMeter.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-/**
- * Class for counting FPS in games.
- * This class can be used also as a simple frequency meter - output is in Hz.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class FpsMeter {
-
- private long frames = 0;
- private long lastTimeMillis = System.currentTimeMillis();
- private long lastSecFPS = 0;
-
-
- /**
- * @return current second's FPS
- */
- public long getFPS()
- {
- return lastSecFPS;
- }
-
-
- /**
- * Notification that frame was rendered
- */
- public void frame()
- {
- if (System.currentTimeMillis() - lastTimeMillis > 1000) {
- lastSecFPS = frames;
- frames = 0;
- final long over = System.currentTimeMillis() - lastTimeMillis - 1000;
- lastTimeMillis = System.currentTimeMillis() - over;
- }
- frames++;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/Pauseable.java b/src/mightypork/gamecore/util/math/timing/Pauseable.java
deleted file mode 100644
index 0a5f853..0000000
--- a/src/mightypork/gamecore/util/math/timing/Pauseable.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-/**
- * Can be paused & resumed
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface Pauseable {
-
- /**
- * Pause operation
- */
- public void pause();
-
-
- /**
- * Resume operation
- */
- public void resume();
-
-
- /**
- * @return paused state
- */
- public boolean isPaused();
-
-}
diff --git a/src/mightypork/gamecore/util/math/timing/TaskRepeater.java b/src/mightypork/gamecore/util/math/timing/TaskRepeater.java
deleted file mode 100644
index 8fb7e35..0000000
--- a/src/mightypork/gamecore/util/math/timing/TaskRepeater.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-import mightypork.gamecore.gui.Enableable;
-import mightypork.gamecore.util.math.timing.animation.AnimatorRewind;
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
-
-
-public abstract class TaskRepeater extends AnimatorRewind implements Runnable, Enableable {
-
- private boolean enabled = true;
-
-
- public TaskRepeater(double period)
- {
- super(period);
- }
-
-
- @Override
- protected void nextCycle(NumAnimated anim)
- {
- run();
- super.nextCycle(anim);
- }
-
-
- @Override
- public void setEnabled(boolean yes)
- {
- this.enabled = yes;
- }
-
-
- @Override
- public boolean isEnabled()
- {
- return enabled;
- }
-
-
- @Override
- public void update(double delta)
- {
- if (!enabled) return;
-
- super.update(delta);
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/timing/TimedTask.java b/src/mightypork/gamecore/util/math/timing/TimedTask.java
deleted file mode 100644
index b9c0cbe..0000000
--- a/src/mightypork/gamecore/util/math/timing/TimedTask.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
-
-
-/**
- * Delayed runnable controlled by delta timing.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public abstract class TimedTask implements Runnable, Updateable {
-
- private final NumAnimated timer = new NumAnimated(0);
- private boolean running = false;
-
-
- @Override
- public void update(double delta)
- {
- if (running) {
- timer.update(delta);
- if (timer.isFinished()) {
- running = false;
- run();
- }
- }
- }
-
-
- public boolean isRunning()
- {
- return !timer.isFinished();
- }
-
-
- public void start(double seconds)
- {
- timer.reset();
- timer.animate(1, seconds);
- running = true;
- }
-
-
- public void stop()
- {
- running = false;
- timer.reset();
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/timing/TimerDelta.java b/src/mightypork/gamecore/util/math/timing/TimerDelta.java
deleted file mode 100644
index 12b588c..0000000
--- a/src/mightypork/gamecore/util/math/timing/TimerDelta.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-/**
- * Timer for delta timing
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class TimerDelta {
-
- private long lastFrame;
-
- private static final long SECOND = 1000000000; // a million nanoseconds
-
-
- /**
- * New delta timer
- */
- public TimerDelta()
- {
- lastFrame = System.nanoTime();
- }
-
-
- /**
- * Get current time in NS
- *
- * @return current time NS
- */
- public long getTime()
- {
- return System.nanoTime();
- }
-
-
- /**
- * Get time since the last "getDelta()" call.
- *
- * @return delta time (seconds)
- */
- public double getDelta()
- {
- final long time = getTime();
- final double delta = (time - lastFrame) / (double) SECOND;
- lastFrame = time;
- return delta;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/TimerFps.java b/src/mightypork/gamecore/util/math/timing/TimerFps.java
deleted file mode 100644
index 7a1c7bf..0000000
--- a/src/mightypork/gamecore/util/math/timing/TimerFps.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-/**
- * Timer for interpolated timing
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class TimerFps {
-
- private long lastFrame = 0;
- private long nextFrame = 0;
- private long skipped = 0;
- private long lastSkipped = 0;
-
- private static final long SECOND = 1000000000; // a million nanoseconds
- private final long FRAME; // a time of one frame in nanoseconds
-
-
- /**
- * New interpolated timer
- *
- * @param fps target FPS
- */
- public TimerFps(long fps)
- {
- FRAME = Math.round(SECOND / (double) fps);
-
- lastFrame = System.nanoTime();
- nextFrame = System.nanoTime() + FRAME;
- }
-
-
- /**
- * Sync and calculate dropped frames etc.
- */
- public void sync()
- {
- final long time = getTime();
- if (time >= nextFrame) {
- final long skippedNow = (long) Math.floor((time - nextFrame) / (double) FRAME) + 1;
- skipped += skippedNow;
- lastFrame = nextFrame + (1 - skippedNow) * FRAME;
- nextFrame += skippedNow * FRAME;
- }
- }
-
-
- /**
- * Get nanotime
- *
- * @return nanotime
- */
- public long getTime()
- {
- return System.nanoTime();
- }
-
-
- /**
- * Get fraction of next frame
- *
- * @return fraction
- */
- public double getFraction()
- {
- if (getSkipped() >= 1) {
- return 1;
- }
-
- final long time = getTime();
-
- if (time <= nextFrame) {
- return (double) (time - lastFrame) / (double) FRAME;
- }
-
- return 1;
- }
-
-
- /**
- * Get number of elapsed ticks
- *
- * @return ticks
- */
- public int getSkipped()
- {
- final long change = skipped - lastSkipped;
- lastSkipped = skipped;
- return (int) change;
- }
-
-
- /**
- * Clear timer and start counting new tick.
- */
- public void startNewFrame()
- {
- final long time = getTime();
- lastFrame = time;
- nextFrame = time + FRAME;
- lastSkipped = skipped;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/Updateable.java b/src/mightypork/gamecore/util/math/timing/Updateable.java
deleted file mode 100644
index 1e25dd6..0000000
--- a/src/mightypork/gamecore/util/math/timing/Updateable.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package mightypork.gamecore.util.math.timing;
-
-
-/**
- * Uses delta timing
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface Updateable {
-
- /**
- * Update item state based on elapsed time
- *
- * @param delta time elapsed since last update, in seconds
- */
- public void update(double delta);
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/Animator.java b/src/mightypork/gamecore/util/math/timing/animation/Animator.java
deleted file mode 100644
index 27b9b7f..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/Animator.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.dynmath.num.Num;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.timing.Pauseable;
-import mightypork.gamecore.util.math.timing.Updateable;
-
-
-public abstract class Animator extends Num implements Updateable, Pauseable {
-
- private final NumAnimated numAnim;
- private final Num num;
- private final double highValue;
- private final double lowValue;
-
-
- public Animator(double period)
- {
- this(0, 1, period, Easing.LINEAR);
- }
-
-
- public Animator(double start, double end, double period)
- {
- this(start, end, period, Easing.LINEAR);
- }
-
-
- public Animator(double period, Easing easing)
- {
- this(0, 1, period, easing);
- }
-
-
- public Animator(double start, double end, double period, Easing easing)
- {
- numAnim = new NumAnimated(0, easing);
- numAnim.setDefaultDuration(period);
-
- this.lowValue = start;
- this.highValue = end;
-
- this.num = numAnim.mul(end - start).add(start);
- }
-
-
- @Override
- public void pause()
- {
- numAnim.pause();
- }
-
-
- public void start()
- {
- resume();
- }
-
-
- @Override
- public void resume()
- {
- numAnim.resume();
- }
-
-
- @Override
- public boolean isPaused()
- {
- return numAnim.isPaused();
- }
-
-
- public void reset()
- {
- numAnim.reset();
- }
-
-
- public void restart()
- {
- reset();
- resume();
- }
-
-
- public void setDuration(double secs)
- {
- numAnim.setDefaultDuration(secs);
- }
-
-
- public double getDuration()
- {
- return numAnim.getDefaultDuration();
- }
-
-
- @Override
- public void update(double delta)
- {
- numAnim.update(delta);
- if (numAnim.isFinished()) nextCycle(numAnim);
- }
-
-
- @DefaultImpl
- protected abstract void nextCycle(NumAnimated anim);
-
-
- @Override
- public double value()
- {
- return num.value();
- }
-
-
- public void setProgress(double value)
- {
- final double target = numAnim.getEnd();
- numAnim.setTo(Calc.clamp(value, lowValue, highValue));
- numAnim.animate((target < value ? highValue : lowValue), target, numAnim.getDefaultDuration());
- }
-
-
- public double getProgress()
- {
- return numAnim.value();
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java b/src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java
deleted file mode 100644
index 22eb8a9..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/AnimatorBounce.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.gamecore.util.math.Easing;
-
-
-/**
- * Animator that upon reaching max, animates back down and then up again
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class AnimatorBounce extends Animator {
-
- private boolean wasUp = false;
-
-
- public AnimatorBounce(double start, double end, double period, Easing easing)
- {
- super(start, end, period, easing);
- }
-
-
- public AnimatorBounce(double start, double end, double period)
- {
- super(start, end, period);
- }
-
-
- public AnimatorBounce(double period, Easing easing)
- {
- super(period, easing);
- }
-
-
- public AnimatorBounce(double period)
- {
- super(period);
- }
-
-
- @Override
- protected void nextCycle(NumAnimated anim)
- {
- if (wasUp) {
- anim.fadeOut();
- } else {
- anim.fadeIn();
- }
-
- wasUp = !wasUp;
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java b/src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java
deleted file mode 100644
index 01736f5..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/AnimatorRewind.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.gamecore.util.math.Easing;
-
-
-/**
- * Animator that upon reaching top, jumps straight to zero and continues another
- * cycle.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class AnimatorRewind extends Animator {
-
- public AnimatorRewind(double start, double end, double period, Easing easing)
- {
- super(start, end, period, easing);
- }
-
-
- public AnimatorRewind(double start, double end, double period)
- {
- super(start, end, period);
- }
-
-
- public AnimatorRewind(double period, Easing easing)
- {
- super(period, easing);
- }
-
-
- public AnimatorRewind(double period)
- {
- super(period);
- }
-
-
- @Override
- protected void nextCycle(NumAnimated anim)
- {
- anim.reset();
- anim.fadeIn();
- }
-
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java
deleted file mode 100644
index 828f23b..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/NumAnimated.java
+++ /dev/null
@@ -1,458 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.dynmath.num.mutable.NumMutable;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.timing.Pauseable;
-import mightypork.gamecore.util.math.timing.Updateable;
-
-
-/**
- * Double which supports delta timing.
- * When both in and out easings are set differently, then they'll be used for
- * fade-in and fade-out respectively. Otherwise both use the same.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class NumAnimated extends NumMutable implements Updateable, Pauseable {
-
- /** target double */
- protected double to = 0;
-
- /** last tick double */
- protected double from = 0;
-
- /** how long the transition should last */
- protected double duration = 0;
-
- /** current anim time */
- protected double elapsedTime = 0;
-
- /** True if this animator is paused */
- protected boolean paused = false;
-
- /** Easing fn */
- protected Easing easingCurrent = Easing.LINEAR;
- protected Easing easingOut = Easing.LINEAR;
- protected Easing easingIn = Easing.LINEAR;
-
- /** Default duration (seconds) */
- private double defaultDuration = 1;
-
-
- /**
- * With linear easing
- *
- * @param value initial value
- */
- public NumAnimated(double value)
- {
- setTo(value);
- }
-
-
- /**
- * Create animator with easing
- *
- * @param value initial value
- * @param easing easing function
- */
- public NumAnimated(double value, Easing easing)
- {
- this(value);
- setEasing(easing);
- }
-
-
- /**
- * Create animator with easing
- *
- * @param value initial value
- * @param easingIn easing function (fade in)
- * @param easingOut easing function (fade out)
- */
- public NumAnimated(double value, Easing easingIn, Easing easingOut)
- {
- this(value);
- setEasing(easingIn, easingOut);
- }
-
-
- /**
- * Create animator with easing
- *
- * @param value initial value
- * @param easing easing function
- * @param defaultDuration default fade duration
- */
- public NumAnimated(double value, Easing easing, double defaultDuration)
- {
- this(value);
- setEasing(easing);
- setDefaultDuration(defaultDuration);
- }
-
-
- /**
- * Create animator with easing
- *
- * @param value initial value
- * @param easingIn easing function (fade in)
- * @param easingOut easing function (fade out)
- * @param defaultDuration default fade duration
- */
- public NumAnimated(double value, Easing easingIn, Easing easingOut, double defaultDuration)
- {
- this(value);
- setEasing(easingIn, easingOut);
- setDefaultDuration(defaultDuration);
- }
-
-
- /**
- * Create as copy of another
- *
- * @param other other animator
- */
- public NumAnimated(NumAnimated other)
- {
- setTo(other);
- }
-
-
- /**
- * @param easing easing function
- */
- public void setEasing(Easing easing)
- {
- this.easingCurrent = this.easingIn = this.easingOut = easing;
- }
-
-
- /**
- * @param easingIn easing for fade in
- * @param easingOut easing for fade out
- */
- public void setEasing(Easing easingIn, Easing easingOut)
- {
- this.easingIn = easingIn;
- this.easingOut = easingOut;
- this.easingCurrent = easingIn;
- }
-
-
- /**
- * Get start value
- *
- * @return number
- */
- public double getStart()
- {
- return from;
- }
-
-
- /**
- * Get end value
- *
- * @return number
- */
- public double getEnd()
- {
- return to;
- }
-
-
- /**
- * @return current animation duration (seconds)
- */
- public double getDuration()
- {
- return duration;
- }
-
-
- /**
- * @return elapsed time in current animation (seconds)
- */
- public double getElapsed()
- {
- return elapsedTime;
- }
-
-
- /**
- * @return default animation duration (seconds)
- */
- public double getDefaultDuration()
- {
- return defaultDuration;
- }
-
-
- /**
- * @param defaultDuration default animation duration (seconds)
- */
- public void setDefaultDuration(double defaultDuration)
- {
- this.defaultDuration = defaultDuration;
- }
-
-
- /**
- * Get value at delta time
- *
- * @return the value
- */
- @Override
- public double value()
- {
- if (duration == 0) return to;
- return Calc.interpolate(from, to, (elapsedTime / duration), easingCurrent);
- }
-
-
- /**
- * Get how much of the animation is already finished
- *
- * @return completion ratio (0 to 1)
- */
- public double getProgress()
- {
- if (duration == 0) return 1;
- return elapsedTime / duration;
- }
-
-
- @Override
- public void update(double delta)
- {
- if (paused || isFinished()) return;
-
- elapsedTime = Calc.clamp(elapsedTime + delta, 0, duration);
- if (isFinished()) {
- duration = 0;
- elapsedTime = 0;
- from = to;
- }
- }
-
-
- /**
- * Get if animation is finished
- *
- * @return is finished
- */
- public boolean isFinished()
- {
- return duration == 0 || elapsedTime >= duration;
- }
-
-
- /**
- * Set to a value (without animation)
- *
- * @param value
- */
- @Override
- public void setTo(double value)
- {
- from = to = value;
- elapsedTime = 0;
- duration = 0;
- }
-
-
- /**
- * Copy other
- *
- * @param other
- */
- public void setTo(NumAnimated other)
- {
- this.from = other.from;
- this.to = other.to;
- this.duration = other.duration;
- this.elapsedTime = other.elapsedTime;
- this.paused = other.paused;
- this.easingCurrent = other.easingCurrent;
- this.easingIn = other.easingIn;
- this.easingOut = other.easingOut;
- this.defaultDuration = other.defaultDuration;
- }
-
-
- /**
- * Animate between two states, start from current value (if it's in between)
- *
- * @param from start value
- * @param to target state
- * @param time animation time (secs)
- */
- public void animate(double from, double to, double time)
- {
- final double current = value();
-
- this.from = from;
- this.to = to;
-
- final double progress = getProgressFromValue(current);
-
- this.from = (progress > 0 ? current : from);
-
- this.duration = time * (1 - progress);
- this.elapsedTime = 0;
- }
-
-
- /**
- * Get progress already elapsed based on current value.
- * Used to resume animation from current point in fading etc.
- *
- * @param value current value
- * @return progress ratio 0-1
- */
- protected double getProgressFromValue(double value)
- {
- double p = 0;
-
- if (from == to) return 0;
-
- if (value >= from && value <= to) { // up
- p = ((value - from) / (to - from));
- } else if (value >= to && value <= from) { // down
- p = ((from - value) / (from - to));
- }
-
- return p;
- }
-
-
- /**
- * Animate to a value from current value
- *
- * @param to target state
- * @param duration animation duration (speeds)
- */
- public void animate(double to, double duration)
- {
- this.from = value();
- this.to = to;
- this.duration = duration;
- this.elapsedTime = 0;
- }
-
-
- /**
- * Animate 0 to 1
- *
- * @param time animation time (secs)
- */
- public void fadeIn(double time)
- {
- easingCurrent = easingIn;
- animate(0, 1, time);
- }
-
-
- /**
- * Animate 1 to 0
- *
- * @param time animation time (secs)
- */
- public void fadeOut(double time)
- {
- easingCurrent = easingOut;
- animate(1, 0, time);
- }
-
-
- /**
- * Animate 0 to 1 with default duration
- */
- public void fadeIn()
- {
- easingCurrent = easingIn;
- animate(0, 1, defaultDuration);
- }
-
-
- /**
- * Animate 1 to 0 with default duration
- */
- public void fadeOut()
- {
- easingCurrent = easingOut;
- animate(1, 0, defaultDuration);
- }
-
-
- /**
- * Make a copy
- *
- * @return copy
- */
- @Override
- public NumAnimated clone()
- {
- return new NumAnimated(this);
- }
-
-
- @Override
- public String toString()
- {
- return "Animation(" + from + " -> " + to + ", t=" + duration + "s, elapsed=" + elapsedTime + "s)";
- }
-
-
- /**
- * Set to zero and stop animation
- */
- public void clear()
- {
- from = to = 0;
- elapsedTime = 0;
- duration = 0;
- paused = false;
- }
-
-
- /**
- * Stop animation, keep current value
- */
- public void stop()
- {
- from = to = value();
- elapsedTime = 0;
- duration = 0;
- }
-
-
- @Override
- public void pause()
- {
- paused = true;
- }
-
-
- @Override
- public void resume()
- {
- paused = false;
- }
-
-
- @Override
- public boolean isPaused()
- {
- return paused;
- }
-
-
- public boolean isInProgress()
- {
- return !isFinished() && !isPaused();
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java
deleted file mode 100644
index bd1cad9..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedDeg.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Calc.Deg;
-import mightypork.gamecore.util.math.Easing;
-
-
-/**
- * Degree animator
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class NumAnimatedDeg extends NumAnimated {
-
- public NumAnimatedDeg(NumAnimated other)
- {
- super(other);
- }
-
-
- public NumAnimatedDeg(double value)
- {
- super(value);
- }
-
-
- public NumAnimatedDeg(double value, Easing easing)
- {
- super(value, easing);
- }
-
-
- @Override
- public double value()
- {
- if (duration == 0) return Deg.norm(to);
- return Calc.interpolateDeg(from, to, (elapsedTime / duration), easingCurrent);
- }
-
-
- @Override
- protected double getProgressFromValue(double value)
- {
- final double whole = Deg.diff(from, to);
- if (Deg.diff(value, from) < whole && Deg.diff(value, to) < whole) {
- final double partial = Deg.diff(from, value);
- return partial / whole;
- }
-
- return 0;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java b/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java
deleted file mode 100644
index 423e664..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/NumAnimatedRad.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Calc.Rad;
-import mightypork.gamecore.util.math.Easing;
-
-
-/**
- * Radians animator
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class NumAnimatedRad extends NumAnimated {
-
- public NumAnimatedRad(NumAnimated other)
- {
- super(other);
- }
-
-
- public NumAnimatedRad(double value)
- {
- super(value);
- }
-
-
- public NumAnimatedRad(double value, Easing easing)
- {
- super(value, easing);
- }
-
-
- @Override
- public double value()
- {
- if (duration == 0) return Rad.norm(to);
- return Calc.interpolateRad(from, to, (elapsedTime / duration), easingCurrent);
- }
-
-
- @Override
- protected double getProgressFromValue(double value)
- {
- final double whole = Rad.diff(from, to);
- if (Rad.diff(value, from) < whole && Rad.diff(value, to) < whole) {
- final double partial = Rad.diff(from, value);
- return partial / whole;
- }
-
- return 0;
- }
-}
diff --git a/src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java b/src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java
deleted file mode 100644
index 08b47cb..0000000
--- a/src/mightypork/gamecore/util/math/timing/animation/VectAnimated.java
+++ /dev/null
@@ -1,287 +0,0 @@
-package mightypork.gamecore.util.math.timing.animation;
-
-
-import mightypork.dynmath.vect.Vect;
-import mightypork.dynmath.vect.mutable.VectMutable;
-import mightypork.gamecore.util.annot.FactoryMethod;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.timing.Pauseable;
-import mightypork.gamecore.util.math.timing.Updateable;
-
-
-/**
- * 3D coordinated with support for transitions, mutable.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class VectAnimated extends VectMutable implements Pauseable, Updateable {
-
- private final NumAnimated x, y, z;
- private double defaultDuration = 0.5;
-
-
- /**
- * Create an animated vector; This way different easing / settings can be
- * specified for each coordinate.
- *
- * @param x x animator
- * @param y y animator
- * @param z z animator
- */
- public VectAnimated(NumAnimated x, NumAnimated y, NumAnimated z)
- {
- this.x = x;
- this.y = y;
- this.z = z;
- }
-
-
- /**
- * Create an animated vector
- *
- * @param start initial positioon
- * @param easing animation easing
- */
- public VectAnimated(Vect start, Easing easing)
- {
- x = new NumAnimated(start.x(), easing);
- y = new NumAnimated(start.y(), easing);
- z = new NumAnimated(start.z(), easing);
- }
-
-
- @Override
- public double x()
- {
- return x.value();
- }
-
-
- @Override
- public double y()
- {
- return y.value();
- }
-
-
- @Override
- public double z()
- {
- return z.value();
- }
-
-
- @Override
- public void setTo(double x, double y, double z)
- {
- setX(x);
- setY(y);
- setZ(z);
- }
-
-
- @Override
- public void setX(double x)
- {
- this.x.setTo(x);
- }
-
-
- @Override
- public void setY(double y)
- {
- this.y.setTo(y);
- }
-
-
- @Override
- public void setZ(double z)
- {
- this.z.setTo(z);
- }
-
-
- public void add(Vect offset, double duration)
- {
- animate(this.add(offset), duration);
- }
-
-
- public VectAnimated animate(double x, double y, double z, double duration)
- {
- this.x.animate(x, duration);
- this.y.animate(y, duration);
- this.z.animate(z, duration);
- return this;
- }
-
-
- public VectAnimated animate(Vect target, double duration)
- {
- animate(target.x(), target.y(), target.z(), duration);
- return this;
- }
-
-
- public VectAnimated animate(double x, double y, double z)
- {
- this.x.animate(x, defaultDuration);
- this.y.animate(y, defaultDuration);
- this.z.animate(z, defaultDuration);
- return this;
- }
-
-
- public VectAnimated animate(Vect target)
- {
- animate(target.x(), target.y(), target.z());
- return this;
- }
-
-
- /**
- * @return the default duration (seconds)
- */
- public double getDefaultDuration()
- {
- return defaultDuration;
- }
-
-
- /**
- * Set default animation duration (when changed without using animate())
- *
- * @param defaultDuration default duration (seconds)
- */
- public void setDefaultDuration(double defaultDuration)
- {
- this.defaultDuration = defaultDuration;
- }
-
-
- @Override
- public void update(double delta)
- {
- x.update(delta);
- y.update(delta);
- z.update(delta);
- }
-
-
- @Override
- public void pause()
- {
- x.pause();
- y.pause();
- z.pause();
- }
-
-
- @Override
- public void resume()
- {
- x.resume();
- y.resume();
- z.resume();
- }
-
-
- @Override
- public boolean isPaused()
- {
- return x.isPaused(); // BÚNO
- }
-
-
- /**
- * @return true if the animation is finished
- */
- public boolean isFinished()
- {
- return x.isFinished(); // BÚNO
- }
-
-
- /**
- * @return current animation duration
- */
- public double getDuration()
- {
- return x.getDuration(); // BÚNO
- }
-
-
- /**
- * @return elapsed time since the start of the animation
- */
- public double getElapsed()
- {
- return x.getElapsed(); // BÚNO
- }
-
-
- /**
- * @return animation progress (elapsed / duration)
- */
- public double getProgress()
- {
- return x.getProgress(); // BÚNO
- }
-
-
- /**
- * Set easing for all three coordinates
- *
- * @param easing
- */
- public void setEasing(Easing easing)
- {
- x.setEasing(easing);
- y.setEasing(easing);
- z.setEasing(easing);
- }
-
-
- /**
- * Create an animated vector; This way different easing / settings can be
- * specified for each coordinate.
- *
- * @param x x animator
- * @param y y animator
- * @param z z animator
- * @return animated mutable vector
- */
- @FactoryMethod
- public static VectAnimated makeVar(NumAnimated x, NumAnimated y, NumAnimated z)
- {
- return new VectAnimated(x, y, z);
- }
-
-
- /**
- * Create an animated vector
- *
- * @param start initial positioon
- * @param easing animation easing
- * @return animated mutable vector
- */
- @FactoryMethod
- public static VectAnimated makeVar(Vect start, Easing easing)
- {
- return new VectAnimated(start, easing);
- }
-
-
- /**
- * Create an animated vector, initialized at 0,0,0
- *
- * @param easing animation easing
- * @return animated mutable vector
- */
- @FactoryMethod
- public static VectAnimated makeVar(Easing easing)
- {
- return new VectAnimated(Vect.ZERO, easing);
- }
-
-}
diff --git a/src/mightypork/gamecore/util/objects/Convert.java b/src/mightypork/gamecore/util/objects/Convert.java
deleted file mode 100644
index 6b844f1..0000000
--- a/src/mightypork/gamecore/util/objects/Convert.java
+++ /dev/null
@@ -1,334 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import mightypork.dynmath.vect.Vect;
-import mightypork.dynmath.vect.VectConst;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Range;
-
-
-/**
- * Utility for converting Object to data types; Can also convert strings to data
- * types.
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class Convert {
-
- /**
- * Get INTEGER
- *
- * @param o object
- * @param def default value
- * @return integer
- */
- public static int toInteger(Object o, Integer def)
- {
- try {
- if (o == null) return def;
- if (o instanceof Number) return ((Number) o).intValue();
- if (o instanceof String) return (int) Math.round(Double.parseDouble((String) o));
- if (o instanceof Range) return ((Range) o).randInt();
- if (o instanceof Boolean) return ((Boolean) o) ? 1 : 0;
- } catch (final NumberFormatException e) {}
- return def;
- }
-
-
- /**
- * Get DOUBLE
- *
- * @param o object
- * @param def default value
- * @return double
- */
- public static double toDouble(Object o, Double def)
- {
- try {
- if (o == null) return def;
- if (o instanceof Number) return ((Number) o).doubleValue();
- if (o instanceof String) return Double.parseDouble((String) o);
- if (o instanceof Range) return ((Range) o).randDouble();
- if (o instanceof Boolean) return ((Boolean) o) ? 1 : 0;
- } catch (final NumberFormatException e) {}
- return def;
- }
-
-
- /**
- * Get FLOAT
- *
- * @param o object
- * @param def default value
- * @return float
- */
- public static double toFloat(Object o, Float def)
- {
- try {
- if (o == null) return def;
- if (o instanceof Number) return ((Number) o).floatValue();
- } catch (final NumberFormatException e) {}
- return def;
- }
-
-
- /**
- * Get BOOLEAN
- *
- * @param o object
- * @param def default value
- * @return boolean
- */
- public static boolean toBoolean(Object o, Boolean def)
- {
- if (o == null) return def;
- if (o instanceof Boolean) return ((Boolean) o).booleanValue();
- if (o instanceof Number) return ((Number) o).intValue() != 0;
-
- if (o instanceof String) {
- final String s = ((String) o).trim().toLowerCase();
- if (s.equals("0")) return false;
- if (s.equals("1")) return true;
- try {
- final double n = Double.parseDouble(s);
- return n != 0;
- } catch (final NumberFormatException e) {}
-
- if (s.equals("true")) return true;
- if (s.equals("yes")) return true;
- if (s.equals("y")) return true;
- if (s.equals("a")) return true;
- if (s.equals("enabled")) return true;
-
- if (s.equals("false")) return false;
- if (s.equals("no")) return false;
- if (s.equals("n")) return false;
- if (s.equals("disabled")) return true;
- }
-
- return def;
- }
-
-
- /**
- * Get STRING
- *
- * @param o object
- * @param def default value
- * @return String
- */
- public static String toString(Object o, String def)
- {
- if (o == null) return def;
- if (o instanceof String) return ((String) o);
-
- if (o instanceof Float) return Calc.toString((float) o);
-
- if (o instanceof Double) return Calc.toString((double) o);
-
- if (o instanceof Vect) {
- final Vect c = (Vect) o;
- return String.format("(%f|%f|%f)", c.x(), c.y(), c.z());
- }
-
- if (o instanceof Range) {
- final Range c = (Range) o;
- return String.format("{%f|%f}", c.getMin(), c.getMax());
- }
-
- if (o instanceof Class>) {
- return Log.str(o);
- }
-
- return o.toString();
- }
-
-
- /**
- * Get a vector
- *
- * @param o object
- * @param def default value
- * @return vector
- */
- public static VectConst toVect(Object o, Vect def)
- {
- try {
- if (o == null) return def.freeze();
- if (o instanceof Vect) return ((Vect) o).freeze();
- if (o instanceof String) {
- String s = ((String) o).trim();
-
- // drop whitespace
- s = s.replaceAll("\\s", "");
-
- // drop brackets
- s = s.replaceAll("[\\(\\[\\{\\)\\]\\}]", "");
-
- // norm separators
- s = s.replaceAll("[:;]", "|");
-
- // norm floating point
- s = s.replaceAll("[,]", ".");
-
- final String[] parts = s.split("[|]");
-
- if (parts.length >= 2) {
-
- final double x = Double.parseDouble(parts[0].trim());
- final double y = Double.parseDouble(parts[1].trim());
-
- if (parts.length == 2) {
- return Vect.make(x, y);
- }
-
- final double z = Double.parseDouble(parts[2].trim());
-
- return Vect.make(x, y, z);
- }
- }
- } catch (final NumberFormatException | ArrayIndexOutOfBoundsException e) {
- // ignore
- }
-
- return def.freeze();
- }
-
-
- /**
- * Get RANGE
- *
- * @param o object
- * @param def default value
- * @return AiCoord
- */
- public static Range toRange(Object o, Range def)
- {
- try {
- if (o == null) return def;
- if (o instanceof Range) return (Range) o;
- if (o instanceof Number) return new Range(((Number) o).doubleValue(), ((Number) o).doubleValue());
- if (o instanceof String) {
- String s = ((String) o).trim();
-
- // drop whitespace
- s = s.replaceAll("\\s", "");
-
- // drop brackets
- s = s.replaceAll("[\\(\\[\\{\\)\\]\\}]", "");
-
- // norm separators
- s = s.replaceAll("[:;]", "|").replace("..", "|");
-
- // norm floating point
- s = s.replaceAll("[,]", ".");
-
- // dash to pipe, if not a minus sign
- s = s.replaceAll("([0-9])\\s?[\\-]", "$1|");
-
- final String[] parts = s.split("[|]");
-
- if (parts.length >= 1) {
-
- final double low = Double.parseDouble(parts[0].trim());
-
- if (parts.length == 2) {
- final double high = Double.parseDouble(parts[1].trim());
- return Range.make(low, high);
- }
-
- return Range.make(low, low);
- }
- }
- } catch (final NumberFormatException e) {
- // ignore
- }
- return def;
- }
-
-
- /**
- * Get INTEGER
- *
- * @param o object
- * @return integer
- */
- public static int toInteger(Object o)
- {
- return toInteger(o, 0);
- }
-
-
- /**
- * Get DOUBLE
- *
- * @param o object
- * @return double
- */
- public static double toDouble(Object o)
- {
- return toDouble(o, 0d);
- }
-
-
- /**
- * Get FLOAT
- *
- * @param o object
- * @return float
- */
- public static double toFloat(Object o)
- {
- return toFloat(o, 0f);
- }
-
-
- /**
- * Get BOOLEAN
- *
- * @param o object
- * @return boolean
- */
- public static boolean toBoolean(Object o)
- {
- return toBoolean(o, false);
- }
-
-
- /**
- * Get STRING
- *
- * @param o object
- * @return String
- */
- public static String toString(Object o)
- {
- return toString(o, "");
- }
-
-
- /**
- * Get a vector of two or three coordinates
- *
- * @param o object
- * @return Coord
- */
- public static VectConst toVect(Object o)
- {
- return toVect(o, Vect.ZERO);
- }
-
-
- /**
- * Get RANGE
- *
- * @param o object
- * @return AiCoord
- */
- public static Range toRange(Object o)
- {
- return toRange(o, new Range());
- }
-
-}
diff --git a/src/mightypork/gamecore/util/objects/EnumerationIterator.java b/src/mightypork/gamecore/util/objects/EnumerationIterator.java
deleted file mode 100644
index f8632ac..0000000
--- a/src/mightypork/gamecore/util/objects/EnumerationIterator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import java.util.Enumeration;
-import java.util.Iterator;
-
-
-/**
- * Helper class for iterationg over an {@link Enumeration}
- *
- * @author Ondřej Hruška (MightyPork)
- * @param target element type (will be cast)
- */
-public class EnumerationIterator implements Iterable {
-
- private final Enumeration extends T> enumeration;
-
-
- public EnumerationIterator(Enumeration extends T> enumeration)
- {
- this.enumeration = enumeration;
- }
-
-
- @Override
- public Iterator iterator()
- {
- return new Iterator() {
-
- @Override
- public boolean hasNext()
- {
- return enumeration.hasMoreElements();
- }
-
-
- @Override
- public T next()
- {
- return enumeration.nextElement();
- }
-
-
- @Override
- public void remove()
- {
- throw new UnsupportedOperationException("Operation not supported.");
- }
- };
- }
-
-}
diff --git a/src/mightypork/gamecore/util/objects/MapSort.java b/src/mightypork/gamecore/util/objects/MapSort.java
deleted file mode 100644
index e0e28b0..0000000
--- a/src/mightypork/gamecore/util/objects/MapSort.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import java.util.*;
-import java.util.Map.Entry;
-
-
-/**
- * Map sorting utils
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class MapSort {
-
- /**
- * Sort a map by keys, maintaining key-value pairs.
- *
- * @param map map to be sorted
- * @param comparator a comparator, or null for natural ordering
- * @return linked hash map with sorted entries
- */
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public static Map sortByKeys(Map map, final Comparator comparator)
- {
- final List keys = new LinkedList<>(map.keySet());
-
- if (comparator == null) {
- Collections.sort(keys);
- } else {
- Collections.sort(keys, comparator);
- }
-
- // LinkedHashMap will keep the keys in the order they are inserted
- // which is currently sorted on natural ordering
- final Map sortedMap = new LinkedHashMap<>();
- for (final K key : keys) {
- sortedMap.put(key, map.get(key));
- }
-
- return sortedMap;
- }
-
-
- /**
- * Sort a map by values, maintaining key-value pairs.
- *
- * @param map map to be sorted
- * @param comparator a comparator, or null for natural ordering
- * @return linked hash map with sorted entries
- */
- @SuppressWarnings("rawtypes")
- public static Map sortByValues(Map map, final Comparator comparator)
- {
- final List> entries = new LinkedList<>(map.entrySet());
-
- Collections.sort(entries, new Comparator>() {
-
- @Override
- public int compare(Entry o1, Entry o2)
- {
- if (comparator == null) return o1.getValue().compareTo(o2.getValue());
- return comparator.compare(o1.getValue(), o2.getValue());
- }
- });
-
- // LinkedHashMap will keep the keys in the order they are inserted
- // which is currently sorted on natural ordering
- final Map sortedMap = new LinkedHashMap<>();
-
- for (final Map.Entry entry : entries) {
- sortedMap.put(entry.getKey(), entry.getValue());
- }
-
- return sortedMap;
- }
-}
diff --git a/src/mightypork/gamecore/util/objects/Mutable.java b/src/mightypork/gamecore/util/objects/Mutable.java
deleted file mode 100644
index 127efe6..0000000
--- a/src/mightypork/gamecore/util/objects/Mutable.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-/**
- * Mutable object
- *
- * @author Ondřej Hruška (MightyPork)
- * @param type
- */
-public class Mutable {
-
- /** The wrapped value */
- private T o = null;
-
-
- /**
- * New mutable object
- *
- * @param o value
- */
- public Mutable(T o)
- {
- this.o = o;
- }
-
-
- /**
- * Get the wrapped value
- *
- * @return value
- */
- public T get()
- {
- return o;
- }
-
-
- /**
- * Set value
- *
- * @param o new value to set
- */
- public void set(T o)
- {
- this.o = o;
- }
-
-
- @Override
- public String toString()
- {
- if (o == null) return "";
- return o.toString();
- }
-
-
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((o == null) ? 0 : o.hashCode());
- return result;
- }
-
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj) return true;
- if (obj == null) return false;
- if (!(obj instanceof Mutable)) return false;
- final Mutable> other = (Mutable>) obj;
- if (o == null) {
- if (other.o != null) return false;
- } else if (!o.equals(other.o)) return false;
- return true;
- }
-}
diff --git a/src/mightypork/gamecore/util/objects/Pair.java b/src/mightypork/gamecore/util/objects/Pair.java
deleted file mode 100644
index 35e8cbf..0000000
--- a/src/mightypork/gamecore/util/objects/Pair.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import mightypork.gamecore.util.math.Calc;
-
-
-/**
- * Structure of 2 objects.
- *
- * @author Ondřej Hruška (MightyPork)
- * @copy (c) 2012
- * @param 1st object class
- * @param 2nd object class
- */
-public class Pair {
-
- /**
- * 1st object
- */
- public T1 first;
-
- /**
- * 2nd object
- */
- public T2 second;
-
-
- /**
- * Make structure of 2 objects
- *
- * @param first 1st object
- * @param second 2nd object
- */
- public Pair(T1 first, T2 second)
- {
- this.first = first;
- this.second = second;
- }
-
-
- /**
- * @return 1st object
- */
- public T1 getFirst()
- {
- return first;
- }
-
-
- /**
- * @return 2nd object
- */
- public T2 getSecond()
- {
- return second;
- }
-
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == null) {
- return false;
- }
-
- if (!this.getClass().equals(obj.getClass())) {
- return false;
- }
-
- final Pair, ?> t = (Pair, ?>) obj;
-
- return Calc.areEqual(first, t.first) && Calc.areEqual(second, t.second);
-
- }
-
-
- @Override
- public int hashCode()
- {
- int hash = 71;
- hash += (first == null ? 0 : first.hashCode());
- hash += (second == null ? 0 : second.hashCode());
- return hash;
- }
-
-
- @Override
- public String toString()
- {
- return "PAIR{" + first + "," + second + "}";
- }
-
-}
diff --git a/src/mightypork/gamecore/util/objects/Triad.java b/src/mightypork/gamecore/util/objects/Triad.java
deleted file mode 100644
index bab1706..0000000
--- a/src/mightypork/gamecore/util/objects/Triad.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import mightypork.gamecore.util.math.Calc;
-
-
-/**
- * Structure of 3 objects.
- *
- * @author Ondřej Hruška (MightyPork)
- * @copy (c) 2012
- * @param 1st object class
- * @param 2nd object class
- * @param 3rd object class
- */
-public class Triad extends Pair {
-
- /**
- * 3rd object
- */
- public T3 third;
-
-
- /**
- * Make structure of 3 objects
- *
- * @param objA 1st object
- * @param objB 2nd object
- * @param objC 3rd object
- */
- public Triad(T1 objA, T2 objB, T3 objC)
- {
- super(objA, objB);
- third = objC;
- }
-
-
- /**
- * @return 3rd object
- */
- public T3 getThird()
- {
- return third;
- }
-
-
- /**
- * Set 1st object
- *
- * @param obj 1st object
- */
- public void setThird(T3 obj)
- {
- third = obj;
- }
-
-
- @Override
- public boolean equals(Object obj)
- {
- if (!super.equals(obj)) return false;
-
- return Calc.areEqual(third, ((Triad, ?, ?>) obj).third);
- }
-
-
- @Override
- public int hashCode()
- {
- return super.hashCode() + (third == null ? 0 : third.hashCode());
- }
-
-
- @Override
- public String toString()
- {
- return "TRIAD{" + first + "," + second + "," + third + "}";
- }
-
-}
diff --git a/src/mightypork/gamecore/util/objects/VarargsParser.java b/src/mightypork/gamecore/util/objects/VarargsParser.java
deleted file mode 100644
index f1f32e7..0000000
--- a/src/mightypork/gamecore/util/objects/VarargsParser.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package mightypork.gamecore.util.objects;
-
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-
-/**
- * Varargs parser
- * Converts an array of repeated "key, value" pairs to a LinkedHashMap.
- * example:
- *
- *
- * Object[] array = { "one", 1, "two", 4, "three", 9, "four", 16 };
- * Map<String, Integer> args = new VarargsParser<String, Integer>().parse(array);
- *
- *
- * @author Ondřej Hruška (MightyPork)
- * @param Type for Map keys
- * @param Type for Map values
- */
-public class VarargsParser {
-
- /**
- * Parse array of vararg key, value pairs to a LinkedHashMap.
- *
- * @param args varargs
- * @return LinkedHashMap
- * @throws ClassCastException in case of incompatible type in the array
- * @throws IllegalArgumentException in case of invalid array length (odd)
- */
- @SuppressWarnings("unchecked")
- public Map parse(Object... args) throws ClassCastException, IllegalArgumentException
- {
- final LinkedHashMap attrs = new LinkedHashMap<>();
-
- if (args.length % 2 != 0) {
- throw new IllegalArgumentException("Odd number of elements in varargs map!");
- }
-
- K key = null;
- for (final Object o : args) {
- if (key == null) {
- if (o == null) throw new RuntimeException("Key cannot be NULL in varargs map.");
- key = (K) o;
- } else {
- attrs.put(key, (V) o);
- key = null;
- }
- }
-
- return attrs;
- }
-}
diff --git a/src/mightypork/gamecore/util/strings/AlphanumComparator.java b/src/mightypork/gamecore/util/strings/AlphanumComparator.java
deleted file mode 100644
index b9c4f73..0000000
--- a/src/mightypork/gamecore/util/strings/AlphanumComparator.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The Alphanum Algorithm is an improved sorting algorithm for strings
- * containing numbers. Instead of sorting numbers in ASCII order like
- * a standard sort, this algorithm sorts numbers in numeric order.
- *
- * The Alphanum Algorithm is discussed at http://www.DaveKoelle.com
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-package mightypork.gamecore.util.strings;
-
-
-import java.util.Comparator;
-
-
-/**
- * String comparator taking care of strings with numbers.
- *
- * @author Daniel Migowski
- * @author Andre Bogus
- * @author David Koelle
- * @author Ondřej Hruška (MightyPork)
- */
-public class AlphanumComparator implements Comparator {
-
- public static final AlphanumComparator instance = new AlphanumComparator();
-
-
- private final boolean isDigit(char ch)
- {
- return ch >= '0' && ch <= '9';
- }
-
-
- /**
- * Length of string is passed in for improved efficiency (only need to
- * calculate it once)
- **/
- private final String getChunk(String s, int slength, int marker)
- {
- final StringBuilder chunk = new StringBuilder();
- char c = s.charAt(marker);
- chunk.append(c);
- marker++;
-
- if (isDigit(c)) {
- while (marker < slength) {
- c = s.charAt(marker);
- if (!isDigit(c)) break;
- chunk.append(c);
- marker++;
- }
- } else {
- while (marker < slength) {
- c = s.charAt(marker);
- if (isDigit(c)) break;
- chunk.append(c);
- marker++;
- }
- }
- return chunk.toString();
- }
-
-
- @Override
- public int compare(String s1, String s2)
- {
- int thisMarker = 0;
- int thatMarker = 0;
- final int s1Length = s1.length();
- final int s2Length = s2.length();
-
- while (thisMarker < s1Length && thatMarker < s2Length) {
- final String thisChunk = getChunk(s1, s1Length, thisMarker);
- thisMarker += thisChunk.length();
-
- final String thatChunk = getChunk(s2, s2Length, thatMarker);
- thatMarker += thatChunk.length();
-
- // If both chunks contain numeric characters, sort them numerically
- int result = 0;
- if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) {
- // Simple chunk comparison by length.
- final int thisChunkLength = thisChunk.length();
- result = thisChunkLength - thatChunk.length();
- // If equal, the first different number counts
- if (result == 0) {
- for (int i = 0; i < thisChunkLength; i++) {
- result = thisChunk.charAt(i) - thatChunk.charAt(i);
- if (result != 0) {
- return result;
- }
- }
- }
- } else {
- result = thisChunk.compareTo(thatChunk);
- }
-
- if (result != 0) return result;
- }
-
- return s1Length - s2Length;
- }
-}
diff --git a/src/mightypork/gamecore/util/strings/StringProvider.java b/src/mightypork/gamecore/util/strings/StringProvider.java
deleted file mode 100644
index fd0d2c8..0000000
--- a/src/mightypork/gamecore/util/strings/StringProvider.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package mightypork.gamecore.util.strings;
-
-
-/**
- * Can be used for dynamic string generating
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface StringProvider {
-
- String getString();
-}
diff --git a/src/mightypork/gamecore/util/strings/StringUtils.java b/src/mightypork/gamecore/util/strings/StringUtils.java
deleted file mode 100644
index 1151472..0000000
--- a/src/mightypork/gamecore/util/strings/StringUtils.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package mightypork.gamecore.util.strings;
-
-
-/**
- * General purpose string utilities
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class StringUtils {
-
- /**
- * Get if string is in array
- *
- * @param needle checked string
- * @param case_sensitive case sensitive comparision
- * @param haystack array of possible values
- * @return is in array
- */
- public static boolean isInArray(String needle, boolean case_sensitive, String... haystack)
- {
- if (case_sensitive) {
- for (final String s : haystack) {
- if (needle.equals(s)) return true;
- }
- return false;
- } else {
- for (final String s : haystack) {
- if (needle.equalsIgnoreCase(s)) return true;
- }
- return false;
- }
- }
-
-
- public static String fromLastDot(String s)
- {
- return fromLastChar(s, '.');
- }
-
-
- public static String toLastDot(String s)
- {
- return toLastChar(s, '.');
- }
-
-
- public static String fromLastChar(String s, char c)
- {
- if (s == null) return null;
- return s.substring(s.lastIndexOf(c) + 1, s.length());
- }
-
-
- public static String toLastChar(String s, char c)
- {
- if (s == null) return null;
- if (s.lastIndexOf(c) == -1) return s;
- return s.substring(0, s.lastIndexOf(c));
- }
-
-
- /**
- * Repeat a string
- *
- * @param repeated string
- * @param count
- * @return output
- */
- public static String repeat(String repeated, int count)
- {
- String s = "";
- for (int i = 0; i < count; i++)
- s += repeated;
- return s;
- }
-
-
- /**
- * convert string to a same-length sequence of # marks
- *
- * @param password password
- * @return encoded
- */
- public static String passwordify(String password)
- {
- return passwordify(password, "*");
- }
-
-
- /**
- * convert string to a same-length sequence of chars
- *
- * @param password password
- * @param replacing character used in output
- * @return encoded
- */
- public static String passwordify(String password, String replacing)
- {
- return repeat(replacing, password.length());
- }
-
-
- public static boolean isValidFilenameChar(char ch)
- {
- return isValidFilenameString(Character.toString(ch));
- }
-
-
- public static boolean isValidFilenameString(String filename)
- {
- return filename.matches("[a-zA-Z0-9 +\\-.,_%@#!]+");
- }
-
-
- public static boolean isValidIdentifierChar(char ch)
- {
- return isValidIdentifierString(Character.toString(ch));
- }
-
-
- public static boolean isValidIdentifierString(String filename)
- {
- return filename.matches("[a-zA-Z0-9._]+");
- }
-
-
- public static String ellipsisStart(String orig, int length)
- {
- if (orig.length() > length) {
- orig = "\u2026" + orig.substring(length, orig.length());
- }
- return orig;
- }
-
-
- public static String ellipsisEnd(String orig, int length)
- {
- if (orig.length() > length) {
- orig = orig.substring(0, length - 1) + "\u2026";
- }
- return orig;
- }
-}
diff --git a/src/mightypork/gamecore/util/strings/StringWrapper.java b/src/mightypork/gamecore/util/strings/StringWrapper.java
deleted file mode 100644
index 7ea994f..0000000
--- a/src/mightypork/gamecore/util/strings/StringWrapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package mightypork.gamecore.util.strings;
-
-
-/**
- * String provider with constant string
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public class StringWrapper implements StringProvider {
-
- private final String value;
-
-
- public StringWrapper(String value)
- {
- this.value = value;
- }
-
-
- @Override
- public String getString()
- {
- return value;
- }
-
-}
diff --git a/src/mightypork/gamecore/util/strings/filtering/CharFilter.java b/src/mightypork/gamecore/util/strings/filtering/CharFilter.java
deleted file mode 100644
index 6585de7..0000000
--- a/src/mightypork/gamecore/util/strings/filtering/CharFilter.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package mightypork.gamecore.util.strings.filtering;
-
-
-public interface CharFilter {
-
- public boolean isValid(char c);
-}
diff --git a/src/mightypork/gamecore/util/strings/filtering/CharFilterRegex.java b/src/mightypork/gamecore/util/strings/filtering/CharFilterRegex.java
deleted file mode 100644
index a74ba68..0000000
--- a/src/mightypork/gamecore/util/strings/filtering/CharFilterRegex.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package mightypork.gamecore.util.strings.filtering;
-
-
-public class CharFilterRegex implements CharFilter {
-
- private final String formula;
-
-
- public CharFilterRegex(String regex)
- {
- this.formula = regex;
- }
-
-
- @Override
- public boolean isValid(char c)
- {
- return Character.toString(c).matches(formula);
- }
-
-}
diff --git a/src/mightypork/gamecore/util/strings/filtering/CharFilterWhitelist.java b/src/mightypork/gamecore/util/strings/filtering/CharFilterWhitelist.java
deleted file mode 100644
index f7cd1d1..0000000
--- a/src/mightypork/gamecore/util/strings/filtering/CharFilterWhitelist.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package mightypork.gamecore.util.strings.filtering;
-
-
-public class CharFilterWhitelist implements CharFilter {
-
- private final String whitelist;
-
-
- public CharFilterWhitelist(String allowed)
- {
- this.whitelist = allowed;
- }
-
-
- @Override
- public boolean isValid(char c)
- {
- return whitelist.contains(Character.toString(c));
- }
-
-}
diff --git a/src/mightypork/gamecore/util/strings/filtering/StringFilter.java b/src/mightypork/gamecore/util/strings/filtering/StringFilter.java
deleted file mode 100644
index bf07eb4..0000000
--- a/src/mightypork/gamecore/util/strings/filtering/StringFilter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package mightypork.gamecore.util.strings.filtering;
-
-
-/**
- * Utility interface for string filters (accepting filepaths and similar)
- *
- * @author Ondřej Hruška (MightyPork)
- */
-public interface StringFilter {
-
- public boolean isValid(String entry);
-}
diff --git a/src/mightypork/rogue/Launcher.java b/src/mightypork/rogue/Launcher.java
index 3f577d0..46f7dd8 100644
--- a/src/mightypork/rogue/Launcher.java
+++ b/src/mightypork/rogue/Launcher.java
@@ -5,7 +5,7 @@ import java.io.File;
import java.util.logging.Level;
import mightypork.gamecore.core.modules.BaseApp;
-import mightypork.gamecore.util.files.OsUtils;
+import mightypork.utils.files.OsUtils;
public class Launcher {
diff --git a/src/mightypork/rogue/RogueApp.java b/src/mightypork/rogue/RogueApp.java
index da154a8..0165fcd 100644
--- a/src/mightypork/rogue/RogueApp.java
+++ b/src/mightypork/rogue/RogueApp.java
@@ -8,11 +8,9 @@ import mightypork.gamecore.core.events.MainLoopRequest;
import mightypork.gamecore.core.events.ShudownRequest;
import mightypork.gamecore.core.events.UserQuitRequest;
import mightypork.gamecore.core.modules.BaseApp;
-import mightypork.gamecore.eventbus.BusEvent;
import mightypork.gamecore.gui.screens.ScreenRegistry;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.input.KeyStroke.Edge;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.render.DisplaySystem;
import mightypork.gamecore.render.events.FullscreenToggleRequest;
import mightypork.gamecore.render.events.ScreenshotRequest;
@@ -20,7 +18,6 @@ import mightypork.gamecore.render.events.ScreenshotRequestListener;
import mightypork.gamecore.render.events.ViewportChangeEvent;
import mightypork.gamecore.render.events.ViewportChangeListener;
import mightypork.gamecore.resources.Res;
-import mightypork.ion.Ion;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.screens.FpsOverlay;
@@ -32,6 +29,9 @@ import mightypork.rogue.screens.story.ScreenStory;
import mightypork.rogue.world.Inventory;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.eventbus.BusEvent;
+import mightypork.utils.ion.Ion;
+import mightypork.utils.logging.Log;
/**
diff --git a/src/mightypork/rogue/RogueConfig.java b/src/mightypork/rogue/RogueConfig.java
index 86e4f08..8e08f78 100644
--- a/src/mightypork/rogue/RogueConfig.java
+++ b/src/mightypork/rogue/RogueConfig.java
@@ -2,7 +2,7 @@ package mightypork.rogue;
import mightypork.gamecore.core.Config.ConfigSetup;
-import mightypork.gamecore.util.files.config.PropertyManager;
+import mightypork.utils.files.config.PropertyManager;
public class RogueConfig implements ConfigSetup {
diff --git a/src/mightypork/rogue/RogueResources.java b/src/mightypork/rogue/RogueResources.java
index 7ca744c..b160c83 100644
--- a/src/mightypork/rogue/RogueResources.java
+++ b/src/mightypork/rogue/RogueResources.java
@@ -1,7 +1,6 @@
package mightypork.rogue;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.resources.ResourceSetup;
import mightypork.gamecore.resources.audio.SoundRegistry;
import mightypork.gamecore.resources.fonts.FontRegistry;
@@ -12,6 +11,7 @@ import mightypork.gamecore.resources.textures.GLTexture;
import mightypork.gamecore.resources.textures.QuadGrid;
import mightypork.gamecore.resources.textures.TextureRegistry;
import mightypork.gamecore.resources.textures.WrapMode;
+import mightypork.utils.math.constraints.rect.Rect;
public class RogueResources implements ResourceSetup {
diff --git a/src/mightypork/rogue/RogueStateManager.java b/src/mightypork/rogue/RogueStateManager.java
index 25cdcc0..b4743a8 100644
--- a/src/mightypork/rogue/RogueStateManager.java
+++ b/src/mightypork/rogue/RogueStateManager.java
@@ -4,7 +4,7 @@ package mightypork.rogue;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.core.modules.AppModule;
import mightypork.gamecore.gui.screens.impl.CrossfadeRequest;
-import mightypork.gamecore.logging.Log;
+import mightypork.utils.logging.Log;
public class RogueStateManager extends AppModule {
diff --git a/src/mightypork/rogue/events/LoadingOverlayRequest.java b/src/mightypork/rogue/events/LoadingOverlayRequest.java
index b42e296..e8f2fbd 100644
--- a/src/mightypork/rogue/events/LoadingOverlayRequest.java
+++ b/src/mightypork/rogue/events/LoadingOverlayRequest.java
@@ -1,9 +1,9 @@
package mightypork.rogue.events;
-import mightypork.gamecore.eventbus.BusEvent;
-import mightypork.gamecore.eventbus.event_flags.SingleReceiverEvent;
import mightypork.rogue.screens.LoadingOverlay;
+import mightypork.utils.eventbus.BusEvent;
+import mightypork.utils.eventbus.events.flags.SingleReceiverEvent;
/**
diff --git a/src/mightypork/rogue/events/RogueStateRequest.java b/src/mightypork/rogue/events/RogueStateRequest.java
index 82d6cd5..8865200 100644
--- a/src/mightypork/rogue/events/RogueStateRequest.java
+++ b/src/mightypork/rogue/events/RogueStateRequest.java
@@ -1,9 +1,9 @@
package mightypork.rogue.events;
-import mightypork.gamecore.eventbus.BusEvent;
import mightypork.rogue.RogueStateManager;
import mightypork.rogue.RogueStateManager.RogueState;
+import mightypork.utils.eventbus.BusEvent;
/**
diff --git a/src/mightypork/rogue/screens/FpsOverlay.java b/src/mightypork/rogue/screens/FpsOverlay.java
index b9a22ae..b33dd9a 100644
--- a/src/mightypork/rogue/screens/FpsOverlay.java
+++ b/src/mightypork/rogue/screens/FpsOverlay.java
@@ -1,9 +1,6 @@
package mightypork.rogue.screens;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.RectBound;
-import mightypork.dynmath.vect.Vect;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.Action;
@@ -13,8 +10,11 @@ import mightypork.gamecore.gui.screens.Overlay;
import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.strings.StringProvider;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.RectBound;
+import mightypork.utils.math.constraints.vect.Vect;
+import mightypork.utils.string.StringProvider;
/**
diff --git a/src/mightypork/rogue/screens/LoadingOverlay.java b/src/mightypork/rogue/screens/LoadingOverlay.java
index 61aff36..125df45 100644
--- a/src/mightypork/rogue/screens/LoadingOverlay.java
+++ b/src/mightypork/rogue/screens/LoadingOverlay.java
@@ -1,21 +1,21 @@
package mightypork.rogue.screens;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.painters.QuadPainter;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.Overlay;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.Utils;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.color.pal.PAL16;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.math.timing.TimedTask;
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
-import mightypork.gamecore.util.strings.StringProvider;
+import mightypork.utils.Support;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.animation.NumAnimated;
+import mightypork.utils.math.color.pal.PAL16;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.timing.TimedTask;
+import mightypork.utils.string.StringProvider;
/**
@@ -49,7 +49,7 @@ public class LoadingOverlay extends Overlay {
@Override
public void run()
{
- Utils.runAsThread(new Runnable() {
+ Support.runAsThread(new Runnable() {
@Override
public void run()
diff --git a/src/mightypork/rogue/screens/RogueScreen.java b/src/mightypork/rogue/screens/RogueScreen.java
index edb77d2..deb4215 100644
--- a/src/mightypork/rogue/screens/RogueScreen.java
+++ b/src/mightypork/rogue/screens/RogueScreen.java
@@ -5,9 +5,9 @@ import mightypork.gamecore.core.events.UserQuitRequest;
import mightypork.gamecore.core.events.UserQuitRequestListener;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.screens.LayeredScreen;
-import mightypork.gamecore.util.annot.DefaultImpl;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
+import mightypork.utils.annotations.DefaultImpl;
public class RogueScreen extends LayeredScreen implements UserQuitRequestListener {
diff --git a/src/mightypork/rogue/screens/game/HeartBar.java b/src/mightypork/rogue/screens/game/HeartBar.java
index 81ac3f9..d000636 100644
--- a/src/mightypork/rogue/screens/game/HeartBar.java
+++ b/src/mightypork/rogue/screens/game/HeartBar.java
@@ -1,13 +1,13 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.num.mutable.NumVar;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.BaseComponent;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.textures.TxQuad;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.num.var.NumVar;
+import mightypork.utils.math.constraints.rect.Rect;
public class HeartBar extends BaseComponent {
diff --git a/src/mightypork/rogue/screens/game/IngameNav.java b/src/mightypork/rogue/screens/game/IngameNav.java
index f7f9b2e..66f1340 100644
--- a/src/mightypork/rogue/screens/game/IngameNav.java
+++ b/src/mightypork/rogue/screens/game/IngameNav.java
@@ -1,8 +1,6 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.RectBound;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.LayoutComponent;
@@ -10,6 +8,8 @@ import mightypork.gamecore.gui.components.layout.FlowColumnLayout;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.textures.TxQuad;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.RectBound;
public class IngameNav extends LayoutComponent {
diff --git a/src/mightypork/rogue/screens/game/InvSlot.java b/src/mightypork/rogue/screens/game/InvSlot.java
index f04d794..34b493e 100644
--- a/src/mightypork/rogue/screens/game/InvSlot.java
+++ b/src/mightypork/rogue/screens/game/InvSlot.java
@@ -1,9 +1,6 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.caching.RectCache;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.input.ClickableComponent;
@@ -11,13 +8,16 @@ import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.textures.TxQuad;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.world.PlayerFacade;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.ItemType;
+import mightypork.utils.Support;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.caching.RectCache;
/**
@@ -137,7 +137,7 @@ public class InvSlot extends ClickableComponent {
}
if (itm.getType() == ItemType.FOOD) {
- rtTxP.setText(Calc.toString(itm.getFoodPoints() / 2D));
+ rtTxP.setText(Support.str(itm.getFoodPoints() / 2D));
rtTxP.setColor(RGB.GREEN);
rtTxP.render();
} else if (itm.getType() == ItemType.WEAPON) {
diff --git a/src/mightypork/rogue/screens/game/LayerAskSave.java b/src/mightypork/rogue/screens/game/LayerAskSave.java
index 78480c6..0fc10af 100644
--- a/src/mightypork/rogue/screens/game/LayerAskSave.java
+++ b/src/mightypork/rogue/screens/game/LayerAskSave.java
@@ -3,7 +3,6 @@ package mightypork.rogue.screens.game;
import java.io.IOException;
-import mightypork.dynmath.num.Num;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.AlignX;
@@ -14,12 +13,13 @@ import mightypork.gamecore.gui.components.painters.QuadPainter;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.impl.FadingLayer;
import mightypork.gamecore.input.KeyStroke.Edge;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.screens.game.ScreenGame.GScrState;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
public class LayerAskSave extends FadingLayer {
diff --git a/src/mightypork/rogue/screens/game/LayerDeath.java b/src/mightypork/rogue/screens/game/LayerDeath.java
index fb6b1c8..db2c14f 100644
--- a/src/mightypork/rogue/screens/game/LayerDeath.java
+++ b/src/mightypork/rogue/screens/game/LayerDeath.java
@@ -3,7 +3,6 @@ package mightypork.rogue.screens.game;
import java.io.IOException;
-import mightypork.dynmath.num.Num;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.AlignX;
@@ -16,14 +15,15 @@ import mightypork.gamecore.gui.components.painters.QuadPainter;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.impl.FadingLayer;
import mightypork.gamecore.input.KeyStroke.Edge;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.screens.game.ScreenGame.GScrState;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
public class LayerDeath extends FadingLayer {
diff --git a/src/mightypork/rogue/screens/game/LayerGameUi.java b/src/mightypork/rogue/screens/game/LayerGameUi.java
index f462dd6..ab36839 100644
--- a/src/mightypork/rogue/screens/game/LayerGameUi.java
+++ b/src/mightypork/rogue/screens/game/LayerGameUi.java
@@ -1,18 +1,18 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.strings.StringProvider;
import mightypork.rogue.world.World;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.gui.Minimap;
import mightypork.rogue.world.gui.WorldConsoleRenderer;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.string.StringProvider;
public class LayerGameUi extends ScreenLayer {
diff --git a/src/mightypork/rogue/screens/game/LayerInv.java b/src/mightypork/rogue/screens/game/LayerInv.java
index fe12f75..7d91c0f 100644
--- a/src/mightypork/rogue/screens/game/LayerInv.java
+++ b/src/mightypork/rogue/screens/game/LayerInv.java
@@ -1,8 +1,6 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.layout.ConstraintLayout;
@@ -14,14 +12,16 @@ import mightypork.gamecore.gui.screens.impl.FadingLayer;
import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.strings.StringProvider;
import mightypork.rogue.screens.game.ScreenGame.GScrState;
import mightypork.rogue.world.PlayerFacade;
import mightypork.rogue.world.World;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.ItemType;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.string.StringProvider;
public class LayerInv extends FadingLayer {
diff --git a/src/mightypork/rogue/screens/game/LayerMapView.java b/src/mightypork/rogue/screens/game/LayerMapView.java
index c7ee608..cf26ec7 100644
--- a/src/mightypork/rogue/screens/game/LayerMapView.java
+++ b/src/mightypork/rogue/screens/game/LayerMapView.java
@@ -1,12 +1,12 @@
package mightypork.rogue.screens.game;
-import mightypork.dynmath.num.Num;
import mightypork.gamecore.gui.screens.Screen;
import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.rogue.world.gui.MapView;
import mightypork.rogue.world.gui.interaction.MIPKeyboard;
import mightypork.rogue.world.gui.interaction.MIPMouse;
+import mightypork.utils.math.constraints.num.Num;
public class LayerMapView extends ScreenLayer {
diff --git a/src/mightypork/rogue/screens/game/LayerWin.java b/src/mightypork/rogue/screens/game/LayerWin.java
index 857f5b8..3bc59ab 100644
--- a/src/mightypork/rogue/screens/game/LayerWin.java
+++ b/src/mightypork/rogue/screens/game/LayerWin.java
@@ -3,7 +3,6 @@ package mightypork.rogue.screens.game;
import java.io.File;
-import mightypork.dynmath.num.Num;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.AlignX;
@@ -17,10 +16,11 @@ import mightypork.gamecore.gui.screens.impl.FadingLayer;
import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
public class LayerWin extends FadingLayer {
diff --git a/src/mightypork/rogue/screens/game/ScreenGame.java b/src/mightypork/rogue/screens/game/ScreenGame.java
index fd9591a..48ca26f 100644
--- a/src/mightypork/rogue/screens/game/ScreenGame.java
+++ b/src/mightypork/rogue/screens/game/ScreenGame.java
@@ -9,9 +9,7 @@ import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.ActionGroup;
import mightypork.gamecore.input.KeyStroke.Edge;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.color.Color;
import mightypork.rogue.Const;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
@@ -22,6 +20,8 @@ import mightypork.rogue.world.events.GameWinHandler;
import mightypork.rogue.world.events.PlayerDeathHandler;
import mightypork.rogue.world.events.WorldPauseRequest;
import mightypork.rogue.world.events.WorldPauseRequest.PauseAction;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.Color;
public class ScreenGame extends RogueScreen implements PlayerDeathHandler, GameWinHandler {
diff --git a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java
index 19869d5..b992654 100644
--- a/src/mightypork/rogue/screens/menu/ScreenMainMenu.java
+++ b/src/mightypork/rogue/screens/menu/ScreenMainMenu.java
@@ -1,8 +1,6 @@
package mightypork.rogue.screens.menu;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.core.events.UserQuitRequest;
import mightypork.gamecore.core.modules.AppAccess;
@@ -18,11 +16,13 @@ import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.PAL16;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.screens.RogueScreen;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.PAL16;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
/**
diff --git a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java
index 61a15b6..593dbfe 100644
--- a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java
+++ b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java
@@ -1,7 +1,6 @@
package mightypork.rogue.screens.select_world;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.core.WorkDir;
import mightypork.gamecore.core.modules.AppAccess;
@@ -12,14 +11,15 @@ import mightypork.gamecore.gui.components.painters.TextPainter;
import mightypork.gamecore.gui.screens.Screen;
import mightypork.gamecore.gui.screens.ScreenLayer;
import mightypork.gamecore.input.KeyStroke.Edge;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.PAL16;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.screens.RogueScreen;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.PAL16;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.rect.Rect;
/**
diff --git a/src/mightypork/rogue/screens/select_world/WorldSlot.java b/src/mightypork/rogue/screens/select_world/WorldSlot.java
index 1fb94cc..5e1c551 100644
--- a/src/mightypork/rogue/screens/select_world/WorldSlot.java
+++ b/src/mightypork/rogue/screens/select_world/WorldSlot.java
@@ -3,8 +3,6 @@ package mightypork.rogue.screens.select_world;
import java.io.File;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.Action;
import mightypork.gamecore.gui.AlignX;
@@ -13,16 +11,18 @@ import mightypork.gamecore.gui.components.layout.ConstraintLayout;
import mightypork.gamecore.gui.components.layout.GridLayout;
import mightypork.gamecore.gui.components.painters.QuadPainter;
import mightypork.gamecore.gui.events.ScreenRequest;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.GLFont;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.strings.StringProvider;
-import mightypork.ion.Ion;
-import mightypork.ion.IonBundle;
import mightypork.rogue.events.LoadingOverlayRequest;
import mightypork.rogue.world.World;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.ion.Ion;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.string.StringProvider;
public class WorldSlot extends ConstraintLayout {
@@ -39,7 +39,7 @@ public class WorldSlot extends ConstraintLayout {
private File file;
private String label;
- private IonBundle worldBundle;
+ private IonDataBundle worldBundle;
private TextButton loadBtn;
@@ -119,7 +119,7 @@ public class WorldSlot extends ConstraintLayout {
try {
w = new World();
w.setSaveFile(file);
- w.load((IonBundle) worldBundle.get("world"));
+ w.load((IonDataBundle) worldBundle.get("world"));
WorldProvider.get().setWorld(w);
getEventBus().send(new ScreenRequest("game"));
diff --git a/src/mightypork/rogue/screens/story/ScreenStory.java b/src/mightypork/rogue/screens/story/ScreenStory.java
index 40c3ae7..c26b1a6 100644
--- a/src/mightypork/rogue/screens/story/ScreenStory.java
+++ b/src/mightypork/rogue/screens/story/ScreenStory.java
@@ -1,8 +1,6 @@
package mightypork.rogue.screens.story;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.core.Config;
import mightypork.gamecore.core.modules.AppAccess;
import mightypork.gamecore.gui.Action;
@@ -20,14 +18,16 @@ import mightypork.gamecore.input.Keys;
import mightypork.gamecore.input.events.MouseButtonEvent;
import mightypork.gamecore.input.events.MouseButtonHandler;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.math.timing.TimedTask;
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
import mightypork.rogue.RogueStateManager.RogueState;
import mightypork.rogue.events.RogueStateRequest;
import mightypork.rogue.screens.RogueScreen;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.animation.NumAnimated;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.timing.TimedTask;
public class ScreenStory extends RogueScreen implements MouseButtonHandler {
diff --git a/src/mightypork/rogue/world/Inventory.java b/src/mightypork/rogue/world/Inventory.java
index 7e3751c..030eff2 100644
--- a/src/mightypork/rogue/world/Inventory.java
+++ b/src/mightypork/rogue/world/Inventory.java
@@ -3,14 +3,14 @@ package mightypork.rogue.world;
import java.io.IOException;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonObjBinary;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.Items;
+import mightypork.utils.ion.IonBinary;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
-public class Inventory implements IonObjBinary {
+public class Inventory implements IonBinary {
public static final short ION_MARK = 54;
private Item[] items;
diff --git a/src/mightypork/rogue/world/PlayerControl.java b/src/mightypork/rogue/world/PlayerControl.java
index beff05b..d990721 100644
--- a/src/mightypork/rogue/world/PlayerControl.java
+++ b/src/mightypork/rogue/world/PlayerControl.java
@@ -4,14 +4,14 @@ package mightypork.rogue.world;
import java.util.HashSet;
import java.util.Set;
-import mightypork.dynmath.vect.Vect;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.modules.EntityMoveListener;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.constraints.vect.Vect;
public abstract class PlayerControl {
diff --git a/src/mightypork/rogue/world/PlayerData.java b/src/mightypork/rogue/world/PlayerData.java
index 913b725..9db30e6 100644
--- a/src/mightypork/rogue/world/PlayerData.java
+++ b/src/mightypork/rogue/world/PlayerData.java
@@ -1,9 +1,9 @@
package mightypork.rogue.world;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
import mightypork.rogue.world.item.Item;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
/**
@@ -11,7 +11,7 @@ import mightypork.rogue.world.item.Item;
*
* @author Ondřej Hruška (MightyPork)
*/
-public class PlayerData implements IonObjBundled {
+public class PlayerData implements IonBundled {
/** Player inventory size */
private static final int INV_SIZE = 8;
@@ -29,7 +29,7 @@ public class PlayerData implements IonObjBundled {
@Override
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
eid = bundle.get("eid", -1);
level = bundle.get("floor", -1);
@@ -40,7 +40,7 @@ public class PlayerData implements IonObjBundled {
@Override
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
bundle.put("eid", eid);
bundle.put("floor", level);
diff --git a/src/mightypork/rogue/world/PlayerFacade.java b/src/mightypork/rogue/world/PlayerFacade.java
index 08f5c5d..1585360 100644
--- a/src/mightypork/rogue/world/PlayerFacade.java
+++ b/src/mightypork/rogue/world/PlayerFacade.java
@@ -6,13 +6,13 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import mightypork.dynmath.vect.Vect;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.ItemType;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.constraints.vect.Vect;
/**
diff --git a/src/mightypork/rogue/world/World.java b/src/mightypork/rogue/world/World.java
index 29131ff..233a416 100644
--- a/src/mightypork/rogue/world/World.java
+++ b/src/mightypork/rogue/world/World.java
@@ -6,21 +6,20 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Random;
-import mightypork.gamecore.eventbus.BusAccess;
-import mightypork.gamecore.eventbus.EventBus;
-import mightypork.gamecore.eventbus.clients.DelegatingClient;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.error.CorruptDataException;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.timing.Pauseable;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
import mightypork.rogue.world.entity.Entities;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.events.GameWinHandler;
import mightypork.rogue.world.events.PlayerDeathHandler;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.eventbus.BusAccess;
+import mightypork.utils.eventbus.EventBus;
+import mightypork.utils.eventbus.clients.DelegatingClient;
+import mightypork.utils.interfaces.Pauseable;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.algo.Coord;
/**
@@ -28,7 +27,7 @@ import mightypork.rogue.world.level.Level;
*
* @author Ondřej Hruška (MightyPork)
*/
-public class World implements DelegatingClient, BusAccess, IonObjBundled, Pauseable, Updateable, PlayerDeathHandler, GameWinHandler {
+public class World implements DelegatingClient, BusAccess, IonBundled, Pauseable, Updateable, PlayerDeathHandler, GameWinHandler {
// not saved stuffs
private final PlayerFacade playerFacade = new PlayerFacade(this);
@@ -70,7 +69,7 @@ public class World implements DelegatingClient, BusAccess, IonObjBundled, Pausea
@Override
- public void load(IonBundle in)
+ public void load(IonDataBundle in)
{
seed = in.get("seed", seed);
eid = in.get("next_eid", eid);
@@ -99,13 +98,13 @@ public class World implements DelegatingClient, BusAccess, IonObjBundled, Pausea
}
}
- throw new CorruptDataException("Player not found in world.");
+ throw new RuntimeException("Player not found in world.");
}
}
@Override
- public void save(IonBundle out)
+ public void save(IonDataBundle out)
{
out.put("seed", seed);
out.put("next_eid", eid);
diff --git a/src/mightypork/rogue/world/WorldConsole.java b/src/mightypork/rogue/world/WorldConsole.java
index c413c10..a324c5e 100644
--- a/src/mightypork/rogue/world/WorldConsole.java
+++ b/src/mightypork/rogue/world/WorldConsole.java
@@ -6,11 +6,11 @@ import java.util.Deque;
import java.util.Iterator;
import java.util.concurrent.LinkedBlockingDeque;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.item.Item;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.animation.NumAnimated;
/**
diff --git a/src/mightypork/rogue/world/WorldProvider.java b/src/mightypork/rogue/world/WorldProvider.java
index d49c74a..c59a5f0 100644
--- a/src/mightypork/rogue/world/WorldProvider.java
+++ b/src/mightypork/rogue/world/WorldProvider.java
@@ -4,13 +4,13 @@ package mightypork.rogue.world;
import java.io.File;
import java.io.IOException;
-import mightypork.gamecore.eventbus.BusAccess;
-import mightypork.gamecore.eventbus.clients.RootBusNode;
-import mightypork.gamecore.logging.Log;
-import mightypork.ion.Ion;
-import mightypork.ion.IonBundle;
import mightypork.rogue.world.gen.WorldCreator;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.eventbus.BusAccess;
+import mightypork.utils.eventbus.clients.RootBusNode;
+import mightypork.utils.ion.Ion;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.logging.Log;
/**
@@ -94,7 +94,7 @@ public class WorldProvider extends RootBusNode {
{
Log.f2("Loading world from: " + file);
- final IonBundle bu = Ion.fromFile(file);
+ final IonDataBundle bu = Ion.fromFile(file);
setWorld(bu.loadBundled("world", new World()));
world.setSaveFile(file);
}
@@ -115,7 +115,7 @@ public class WorldProvider extends RootBusNode {
Log.f2("Saving world to: " + file);
- final IonBundle bu = new IonBundle();
+ final IonDataBundle bu = new IonDataBundle();
bu.put("level", world.getPlayer().getLevelNumber());
bu.putBundled("world", world);
diff --git a/src/mightypork/rogue/world/WorldRenderer.java b/src/mightypork/rogue/world/WorldRenderer.java
index 21aadc1..4597e33 100644
--- a/src/mightypork/rogue/world/WorldRenderer.java
+++ b/src/mightypork/rogue/world/WorldRenderer.java
@@ -1,20 +1,20 @@
package mightypork.rogue.world;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.RectConst;
-import mightypork.dynmath.rect.proxy.RectProxy;
-import mightypork.dynmath.vect.Vect;
-import mightypork.dynmath.vect.VectConst;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.Res;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.Const;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.level.render.TileRenderContext;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.RectConst;
+import mightypork.utils.math.constraints.rect.proxy.RectProxy;
+import mightypork.utils.math.constraints.vect.Vect;
+import mightypork.utils.math.constraints.vect.VectConst;
/**
diff --git a/src/mightypork/rogue/world/entity/AiTimer.java b/src/mightypork/rogue/world/entity/AiTimer.java
index 0f1c2b1..2e4545a 100644
--- a/src/mightypork/rogue/world/entity/AiTimer.java
+++ b/src/mightypork/rogue/world/entity/AiTimer.java
@@ -1,12 +1,12 @@
package mightypork.rogue.world.entity;
-import mightypork.gamecore.util.math.timing.TaskRepeater;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.timing.TaskRepeater;
-public abstract class AiTimer extends TaskRepeater implements IonObjBundled {
+public abstract class AiTimer extends TaskRepeater implements IonBundled {
public AiTimer(double duration)
{
@@ -19,7 +19,7 @@ public abstract class AiTimer extends TaskRepeater implements IonObjBundled {
@Override
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
final boolean wasPaused = bundle.get("paused", isPaused());
if (wasPaused) {
@@ -34,7 +34,7 @@ public abstract class AiTimer extends TaskRepeater implements IonObjBundled {
@Override
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
bundle.put("paused", isPaused());
bundle.put("progress", getProgress());
diff --git a/src/mightypork/rogue/world/entity/Entities.java b/src/mightypork/rogue/world/entity/Entities.java
index 8c19b22..7d7d7fd 100644
--- a/src/mightypork/rogue/world/entity/Entities.java
+++ b/src/mightypork/rogue/world/entity/Entities.java
@@ -4,12 +4,12 @@ package mightypork.rogue.world.entity;
import java.io.IOException;
import java.util.Collection;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.entity.impl.EntityBossRat;
import mightypork.rogue.world.entity.impl.EntityBrownRat;
import mightypork.rogue.world.entity.impl.EntityGrayRat;
import mightypork.rogue.world.entity.impl.EntityPlayer;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
/**
diff --git a/src/mightypork/rogue/world/entity/Entity.java b/src/mightypork/rogue/world/entity/Entity.java
index 52af7e7..3014b4a 100644
--- a/src/mightypork/rogue/world/entity/Entity.java
+++ b/src/mightypork/rogue/world/entity/Entity.java
@@ -6,19 +6,19 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
-import mightypork.gamecore.eventbus.clients.DelegatingClient;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.error.IllegalValueException;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
import mightypork.rogue.world.World;
import mightypork.rogue.world.entity.modules.EntityModuleHealth;
import mightypork.rogue.world.entity.modules.EntityModulePosition;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.level.render.MapRenderContext;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.eventbus.clients.DelegatingClient;
+import mightypork.utils.exceptions.IllegalValueException;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
/**
@@ -26,7 +26,7 @@ import mightypork.rogue.world.level.render.MapRenderContext;
*
* @author Ondřej Hruška (MightyPork)
*/
-public abstract class Entity implements IonObjBundled, Updateable, DelegatingClient {
+public abstract class Entity implements IonBundled, Updateable, DelegatingClient {
private Level level;
private final EntityModel model;
@@ -56,47 +56,47 @@ public abstract class Entity implements IonObjBundled, Updateable, DelegatingCli
@Override
- public final void save(IonBundle bundle)
+ public final void save(IonDataBundle bundle)
{
bundle.put("eid", entityId);
- final IonBundle modulesBundle = new IonBundle();
+ final IonDataBundle modulesBundle = new IonDataBundle();
for (final Entry entry : modules.entrySet()) {
modulesBundle.putBundled(entry.getKey(), entry.getValue());
}
bundle.put("modules", modulesBundle);
- final IonBundle extra = new IonBundle();
+ final IonDataBundle extra = new IonDataBundle();
saveExtra(extra);
bundle.put("extra", extra);
}
@DefaultImpl
- protected void saveExtra(IonBundle bundle)
+ protected void saveExtra(IonDataBundle bundle)
{
}
@Override
- public final void load(IonBundle bundle)
+ public final void load(IonDataBundle bundle)
{
entityId = bundle.get("eid", -1);
if (entityId < 0) throw new IllegalValueException("Bad entity id: " + entityId);
- final IonBundle modulesBundle = bundle.get("modules", new IonBundle());
+ final IonDataBundle modulesBundle = bundle.get("modules", new IonDataBundle());
for (final Entry entry : modules.entrySet()) {
modulesBundle.loadBundled(entry.getKey(), entry.getValue());
}
- final IonBundle extra = bundle.get("extra", new IonBundle());
+ final IonDataBundle extra = bundle.get("extra", new IonDataBundle());
loadExtra(extra);
}
@DefaultImpl
- protected void loadExtra(IonBundle bundle)
+ protected void loadExtra(IonDataBundle bundle)
{
}
diff --git a/src/mightypork/rogue/world/entity/EntityModel.java b/src/mightypork/rogue/world/entity/EntityModel.java
index c996375..db533f3 100644
--- a/src/mightypork/rogue/world/entity/EntityModel.java
+++ b/src/mightypork/rogue/world/entity/EntityModel.java
@@ -3,10 +3,10 @@ package mightypork.rogue.world.entity;
import java.io.IOException;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.World;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
/**
@@ -59,7 +59,7 @@ public final class EntityModel {
public Entity loadEntity(IonInput in) throws IOException
{
- final IonBundle bundle = in.readBundle();
+ final IonDataBundle bundle = in.readBundle();
final Entity ent = createEntity(-1);
ent.load(bundle);
return ent;
@@ -68,7 +68,7 @@ public final class EntityModel {
public void saveEntity(IonOutput out, Entity entity) throws IOException
{
- final IonBundle bundle = new IonBundle();
+ final IonDataBundle bundle = new IonDataBundle();
entity.save(bundle);
out.writeBundle(bundle);
}
diff --git a/src/mightypork/rogue/world/entity/EntityModule.java b/src/mightypork/rogue/world/entity/EntityModule.java
index 9ec6349..6b217b0 100644
--- a/src/mightypork/rogue/world/entity/EntityModule.java
+++ b/src/mightypork/rogue/world/entity/EntityModule.java
@@ -1,10 +1,10 @@
package mightypork.rogue.world.entity;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
/**
@@ -13,7 +13,7 @@ import mightypork.ion.IonObjBundled;
*
* @author Ondřej Hruška (MightyPork)
*/
-public abstract class EntityModule implements IonObjBundled, Updateable {
+public abstract class EntityModule implements IonBundled, Updateable {
protected final Entity entity;
@@ -32,14 +32,14 @@ public abstract class EntityModule implements IonObjBundled, Updateable {
@Override
@DefaultImpl
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
}
@Override
@DefaultImpl
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
}
diff --git a/src/mightypork/rogue/world/entity/EntityPathFinder.java b/src/mightypork/rogue/world/entity/EntityPathFinder.java
index 7f5f446..95a0d0f 100644
--- a/src/mightypork/rogue/world/entity/EntityPathFinder.java
+++ b/src/mightypork/rogue/world/entity/EntityPathFinder.java
@@ -3,11 +3,11 @@ package mightypork.rogue.world.entity;
import java.util.List;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.algo.pathfinding.Heuristic;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.algo.pathfinding.Heuristic;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
/**
diff --git a/src/mightypork/rogue/world/entity/impl/BossRatAi.java b/src/mightypork/rogue/world/entity/impl/BossRatAi.java
index c078146..3ec6525 100644
--- a/src/mightypork/rogue/world/entity/impl/BossRatAi.java
+++ b/src/mightypork/rogue/world/entity/impl/BossRatAi.java
@@ -1,9 +1,9 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.Calc;
import mightypork.rogue.world.entity.AiTimer;
import mightypork.rogue.world.entity.Entity;
+import mightypork.utils.math.Calc;
public class BossRatAi extends GrayRatAi {
diff --git a/src/mightypork/rogue/world/entity/impl/BrownRatAi.java b/src/mightypork/rogue/world/entity/impl/BrownRatAi.java
index 81b94f1..70e7a91 100644
--- a/src/mightypork/rogue/world/entity/impl/BrownRatAi.java
+++ b/src/mightypork/rogue/world/entity/impl/BrownRatAi.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.Calc;
import mightypork.rogue.world.entity.Entity;
+import mightypork.utils.math.Calc;
public class BrownRatAi extends GrayRatAi {
diff --git a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java
index b77fef8..67a09c4 100644
--- a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java
+++ b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java
@@ -1,7 +1,6 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModel;
import mightypork.rogue.world.entity.EntityPathFinder;
@@ -9,6 +8,7 @@ import mightypork.rogue.world.entity.EntityRenderer;
import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.render.EntityRendererMobLR;
import mightypork.rogue.world.events.GameWinEvent;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
public class EntityBossRat extends Entity {
diff --git a/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java b/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java
index 8ff9040..5dcc581 100644
--- a/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java
+++ b/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java
@@ -1,8 +1,6 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModel;
import mightypork.rogue.world.entity.EntityPathFinder;
@@ -10,6 +8,8 @@ import mightypork.rogue.world.entity.EntityRenderer;
import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.render.EntityRendererMobLR;
import mightypork.rogue.world.item.Items;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
public class EntityBrownRat extends Entity {
diff --git a/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java b/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java
index 966bdd3..28a96ff 100644
--- a/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java
+++ b/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java
@@ -1,8 +1,6 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModel;
import mightypork.rogue.world.entity.EntityPathFinder;
@@ -10,6 +8,8 @@ import mightypork.rogue.world.entity.EntityRenderer;
import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.render.EntityRendererMobLR;
import mightypork.rogue.world.item.Items;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
public class EntityGrayRat extends Entity {
diff --git a/src/mightypork/rogue/world/entity/impl/EntityPlayer.java b/src/mightypork/rogue/world/entity/impl/EntityPlayer.java
index 390f6b2..9bdb395 100644
--- a/src/mightypork/rogue/world/entity/impl/EntityPlayer.java
+++ b/src/mightypork/rogue/world/entity/impl/EntityPlayer.java
@@ -1,15 +1,20 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
-import mightypork.rogue.world.entity.*;
+import mightypork.rogue.world.entity.Entity;
+import mightypork.rogue.world.entity.EntityModel;
+import mightypork.rogue.world.entity.EntityModule;
+import mightypork.rogue.world.entity.EntityPathFinder;
+import mightypork.rogue.world.entity.EntityRenderer;
+import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.modules.EntityMoveListener;
import mightypork.rogue.world.entity.render.EntityRendererMobLR;
import mightypork.rogue.world.events.PlayerKilledEvent;
import mightypork.rogue.world.events.PlayerStepEndEvent;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
public class EntityPlayer extends Entity {
diff --git a/src/mightypork/rogue/world/entity/impl/GrayRatAi.java b/src/mightypork/rogue/world/entity/impl/GrayRatAi.java
index 3a88e80..0f8bf61 100644
--- a/src/mightypork/rogue/world/entity/impl/GrayRatAi.java
+++ b/src/mightypork/rogue/world/entity/impl/GrayRatAi.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.entity.impl;
-import mightypork.gamecore.util.math.Calc;
import mightypork.rogue.world.entity.Entity;
+import mightypork.utils.math.Calc;
public class GrayRatAi extends MonsterAi {
diff --git a/src/mightypork/rogue/world/entity/impl/MonsterAi.java b/src/mightypork/rogue/world/entity/impl/MonsterAi.java
index 3ddf5b8..50cef70 100644
--- a/src/mightypork/rogue/world/entity/impl/MonsterAi.java
+++ b/src/mightypork/rogue/world/entity/impl/MonsterAi.java
@@ -3,20 +3,20 @@ package mightypork.rogue.world.entity.impl;
import java.util.List;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinderProxy;
-import mightypork.ion.IonBundle;
import mightypork.rogue.world.entity.AiTimer;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModule;
import mightypork.rogue.world.entity.EntityType;
import mightypork.rogue.world.entity.modules.EntityMoveListener;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
+import mightypork.utils.math.algo.pathfinding.PathFinderProxy;
public class MonsterAi extends EntityModule implements EntityMoveListener {
@@ -131,7 +131,7 @@ public class MonsterAi extends EntityModule implements EntityMoveListener {
@Override
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
bundle.putBundled("tscan", timerFindPrey);
bundle.putBundled("tattack", timerAttack);
@@ -143,7 +143,7 @@ public class MonsterAi extends EntityModule implements EntityMoveListener {
@Override
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
bundle.loadBundled("tscan", timerFindPrey);
bundle.loadBundled("tattack", timerAttack);
diff --git a/src/mightypork/rogue/world/entity/modules/EntityModuleHealth.java b/src/mightypork/rogue/world/entity/modules/EntityModuleHealth.java
index d3b1e05..0ba29f8 100644
--- a/src/mightypork/rogue/world/entity/modules/EntityModuleHealth.java
+++ b/src/mightypork/rogue/world/entity/modules/EntityModuleHealth.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.entity.modules;
-import mightypork.gamecore.util.error.IllegalValueException;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.ion.IonBundle;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModule;
+import mightypork.utils.exceptions.IllegalValueException;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.Calc;
public class EntityModuleHealth extends EntityModule {
@@ -24,7 +24,7 @@ public class EntityModuleHealth extends EntityModule {
@Override
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
health = bundle.get("health", health);
maxHealth = bundle.get("max_health", maxHealth);
@@ -33,7 +33,7 @@ public class EntityModuleHealth extends EntityModule {
@Override
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
bundle.put("health", health);
bundle.put("max_health", maxHealth);
diff --git a/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java b/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java
index 6831a5c..80c5b1d 100644
--- a/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java
+++ b/src/mightypork/rogue/world/entity/modules/EntityModulePosition.java
@@ -7,18 +7,18 @@ import java.util.List;
import java.util.Queue;
import java.util.Set;
-import mightypork.dynmath.vect.VectConst;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.ion.IonBundle;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityModule;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.constraints.vect.VectConst;
public class EntityModulePosition extends EntityModule {
/** Last pos, will be freed upon finishing move */
- private final Coord lastPos = new Coord(0, 0);
+ private Coord lastPos = new Coord(0, 0);
private boolean walking = false;
private final Queue path = new LinkedList<>();
@@ -39,20 +39,20 @@ public class EntityModulePosition extends EntityModule {
@Override
- public void save(IonBundle bundle)
+ public void save(IonDataBundle bundle)
{
bundle.putSequence("path", path);
- bundle.putBundled("lpos", lastPos);
+ bundle.put("lpos", lastPos);
bundle.putBundled("pos", entityPos);
bundle.put("step_time", stepTime);
}
@Override
- public void load(IonBundle bundle)
+ public void load(IonDataBundle bundle)
{
bundle.loadSequence("path", path);
- bundle.loadBundled("lpos", lastPos);
+ lastPos = bundle.get("lpos", lastPos);
bundle.loadBundled("pos", entityPos);
stepTime = bundle.get("step_time", stepTime);
diff --git a/src/mightypork/rogue/world/entity/modules/EntityPos.java b/src/mightypork/rogue/world/entity/modules/EntityPos.java
index 8a297c8..9af9005 100644
--- a/src/mightypork/rogue/world/entity/modules/EntityPos.java
+++ b/src/mightypork/rogue/world/entity/modules/EntityPos.java
@@ -1,15 +1,15 @@
package mightypork.rogue.world.entity.modules;
-import mightypork.dynmath.vect.Vect;
-import mightypork.dynmath.vect.VectConst;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.gamecore.util.math.timing.animation.VectAnimated;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.animation.VectAnimated;
+import mightypork.utils.math.constraints.vect.Vect;
+import mightypork.utils.math.constraints.vect.VectConst;
/**
@@ -17,9 +17,9 @@ import mightypork.ion.IonObjBundled;
*
* @author Ondřej Hruška (MightyPork)
*/
-class EntityPos implements IonObjBundled, Updateable {
+class EntityPos implements IonBundled, Updateable {
- private final Coord coord = new Coord(0, 0);
+ private Coord coord = new Coord(0, 0);
private final VectAnimated walkOffset = new VectAnimated(Vect.ZERO, Easing.LINEAR);
@@ -47,17 +47,17 @@ class EntityPos implements IonObjBundled, Updateable {
@Override
- public void load(IonBundle in)
+ public void load(IonDataBundle in)
{
- in.loadBundled("pos", coord);
+ coord = in.get("pos", coord);
walkOffset.reset();
}
@Override
- public void save(IonBundle out)
+ public void save(IonDataBundle out)
{
- out.putBundled("pos", coord);
+ out.put("pos", coord);
}
diff --git a/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java b/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java
index c36e375..a70dcdb 100644
--- a/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java
+++ b/src/mightypork/rogue/world/entity/render/EntityRendererMobLR.java
@@ -1,20 +1,20 @@
package mightypork.rogue.world.entity.render;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.num.mutable.NumVar;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.vect.Vect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.textures.TxQuad;
import mightypork.gamecore.resources.textures.TxSheet;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.color.Color;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.entity.EntityRenderer;
import mightypork.rogue.world.level.render.MapRenderContext;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.num.var.NumVar;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.vect.Vect;
/**
diff --git a/src/mightypork/rogue/world/events/GameWinEvent.java b/src/mightypork/rogue/world/events/GameWinEvent.java
index 35bbb53..4d544fc 100644
--- a/src/mightypork/rogue/world/events/GameWinEvent.java
+++ b/src/mightypork/rogue/world/events/GameWinEvent.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
+import mightypork.utils.eventbus.BusEvent;
public class GameWinEvent extends BusEvent {
diff --git a/src/mightypork/rogue/world/events/PlayerKilledEvent.java b/src/mightypork/rogue/world/events/PlayerKilledEvent.java
index 322cfde..50c00e2 100644
--- a/src/mightypork/rogue/world/events/PlayerKilledEvent.java
+++ b/src/mightypork/rogue/world/events/PlayerKilledEvent.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.eventbus.BusEvent;
public class PlayerKilledEvent extends BusEvent {
diff --git a/src/mightypork/rogue/world/events/PlayerStepEndEvent.java b/src/mightypork/rogue/world/events/PlayerStepEndEvent.java
index 3dffd9e..a6dc4d1 100644
--- a/src/mightypork/rogue/world/events/PlayerStepEndEvent.java
+++ b/src/mightypork/rogue/world/events/PlayerStepEndEvent.java
@@ -1,9 +1,9 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
-import mightypork.gamecore.eventbus.event_flags.NotLoggedEvent;
import mightypork.rogue.world.entity.impl.EntityPlayer;
+import mightypork.utils.eventbus.BusEvent;
+import mightypork.utils.eventbus.events.flags.NotLoggedEvent;
@NotLoggedEvent
diff --git a/src/mightypork/rogue/world/events/WorldAscendRequest.java b/src/mightypork/rogue/world/events/WorldAscendRequest.java
index e7ddcfe..3a35b87 100644
--- a/src/mightypork/rogue/world/events/WorldAscendRequest.java
+++ b/src/mightypork/rogue/world/events/WorldAscendRequest.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
+import mightypork.utils.eventbus.BusEvent;
/**
diff --git a/src/mightypork/rogue/world/events/WorldDescendRequest.java b/src/mightypork/rogue/world/events/WorldDescendRequest.java
index 1d00852..0a18dc8 100644
--- a/src/mightypork/rogue/world/events/WorldDescendRequest.java
+++ b/src/mightypork/rogue/world/events/WorldDescendRequest.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
+import mightypork.utils.eventbus.BusEvent;
public class WorldDescendRequest extends BusEvent {
diff --git a/src/mightypork/rogue/world/events/WorldPauseRequest.java b/src/mightypork/rogue/world/events/WorldPauseRequest.java
index 7280e0d..33a951b 100644
--- a/src/mightypork/rogue/world/events/WorldPauseRequest.java
+++ b/src/mightypork/rogue/world/events/WorldPauseRequest.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.events;
-import mightypork.gamecore.eventbus.BusEvent;
import mightypork.rogue.world.World;
+import mightypork.utils.eventbus.BusEvent;
/**
diff --git a/src/mightypork/rogue/world/gen/LevelBuilder.java b/src/mightypork/rogue/world/gen/LevelBuilder.java
index 00c51e7..04da72c 100644
--- a/src/mightypork/rogue/world/gen/LevelBuilder.java
+++ b/src/mightypork/rogue/world/gen/LevelBuilder.java
@@ -7,12 +7,12 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Random;
-import mightypork.gamecore.util.math.Range;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.World;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.math.Range;
+import mightypork.utils.math.algo.Coord;
public class LevelBuilder {
diff --git a/src/mightypork/rogue/world/gen/RoomBuilder.java b/src/mightypork/rogue/world/gen/RoomBuilder.java
index 1f52c4e..5fec41b 100644
--- a/src/mightypork/rogue/world/gen/RoomBuilder.java
+++ b/src/mightypork/rogue/world/gen/RoomBuilder.java
@@ -3,7 +3,7 @@ package mightypork.rogue.world.gen;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
+import mightypork.utils.math.algo.Coord;
/**
diff --git a/src/mightypork/rogue/world/gen/RoomEntry.java b/src/mightypork/rogue/world/gen/RoomEntry.java
index fc5735e..5418a97 100644
--- a/src/mightypork/rogue/world/gen/RoomEntry.java
+++ b/src/mightypork/rogue/world/gen/RoomEntry.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.gen;
-import mightypork.gamecore.util.math.algo.Coord;
+import mightypork.utils.math.algo.Coord;
/**
diff --git a/src/mightypork/rogue/world/gen/Rooms.java b/src/mightypork/rogue/world/gen/Rooms.java
index 86a399a..f363849 100644
--- a/src/mightypork/rogue/world/gen/Rooms.java
+++ b/src/mightypork/rogue/world/gen/Rooms.java
@@ -1,7 +1,14 @@
package mightypork.rogue.world.gen;
-import mightypork.rogue.world.gen.rooms.*;
+import mightypork.rogue.world.gen.rooms.BasicRoom;
+import mightypork.rogue.world.gen.rooms.BossRoom;
+import mightypork.rogue.world.gen.rooms.DeadEndRoom;
+import mightypork.rogue.world.gen.rooms.EntranceRoom;
+import mightypork.rogue.world.gen.rooms.ExitRoom;
+import mightypork.rogue.world.gen.rooms.ItemShrineRoom;
+import mightypork.rogue.world.gen.rooms.StorageRoom;
+import mightypork.rogue.world.gen.rooms.TreasureChestRoom;
import mightypork.rogue.world.item.Item;
diff --git a/src/mightypork/rogue/world/gen/ScratchMap.java b/src/mightypork/rogue/world/gen/ScratchMap.java
index 1da8bed..98dc3af 100644
--- a/src/mightypork/rogue/world/gen/ScratchMap.java
+++ b/src/mightypork/rogue/world/gen/ScratchMap.java
@@ -7,19 +7,20 @@ import java.util.List;
import java.util.Random;
import java.util.Set;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.algo.pathfinding.Heuristic;
-import mightypork.gamecore.util.math.algo.pathfinding.PathFinder;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.tile.Tile;
import mightypork.rogue.world.tile.TileModel;
import mightypork.rogue.world.tile.Tiles;
+import mightypork.utils.Support;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.algo.pathfinding.Heuristic;
+import mightypork.utils.math.algo.pathfinding.PathFinder;
/**
@@ -620,7 +621,7 @@ public class ScratchMap {
//@formatter:off
throw new WorldGenError(
"Could not put entity into a level map: e_pos=" + pos
- + ", tile: " + Log.str(t)
+ + ", tile: " + Support.str(t)
+ ", t.wa " + t.isWalkable()
+ ", t.oc " + t.isOccupied()
+ ", ent.. " + e.getVisualName());
diff --git a/src/mightypork/rogue/world/gen/WorldCreator.java b/src/mightypork/rogue/world/gen/WorldCreator.java
index f03d442..bb5e763 100644
--- a/src/mightypork/rogue/world/gen/WorldCreator.java
+++ b/src/mightypork/rogue/world/gen/WorldCreator.java
@@ -5,9 +5,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Range;
import mightypork.rogue.world.World;
import mightypork.rogue.world.entity.Entities;
import mightypork.rogue.world.entity.Entity;
@@ -16,6 +13,9 @@ import mightypork.rogue.world.gen.themes.ThemeBrick;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.ItemModel;
import mightypork.rogue.world.item.Items;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.Range;
public class WorldCreator {
diff --git a/src/mightypork/rogue/world/gen/rooms/AbstractRectRoom.java b/src/mightypork/rogue/world/gen/rooms/AbstractRectRoom.java
index 04caaa2..a14fbcb 100644
--- a/src/mightypork/rogue/world/gen/rooms/AbstractRectRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/AbstractRectRoom.java
@@ -3,15 +3,15 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Moves;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.RoomBuilder;
import mightypork.rogue.world.gen.RoomEntry;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Moves;
public abstract class AbstractRectRoom implements RoomBuilder {
diff --git a/src/mightypork/rogue/world/gen/rooms/BasicRoom.java b/src/mightypork/rogue/world/gen/rooms/BasicRoom.java
index 2a4a9e0..d5c26c8 100644
--- a/src/mightypork/rogue/world/gen/rooms/BasicRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/BasicRoom.java
@@ -3,10 +3,10 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.algo.Coord;
public class BasicRoom extends AbstractRectRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/BossRoom.java b/src/mightypork/rogue/world/gen/rooms/BossRoom.java
index 97108a6..5fcbd7e 100644
--- a/src/mightypork/rogue/world/gen/rooms/BossRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/BossRoom.java
@@ -3,12 +3,12 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.entity.Entities;
import mightypork.rogue.world.entity.Entity;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.WorldGenError;
+import mightypork.utils.math.algo.Coord;
public class BossRoom extends SecretRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/DeadEndRoom.java b/src/mightypork/rogue/world/gen/rooms/DeadEndRoom.java
index b345c26..e1644a5 100644
--- a/src/mightypork/rogue/world/gen/rooms/DeadEndRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/DeadEndRoom.java
@@ -3,10 +3,10 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.algo.Coord;
public class DeadEndRoom extends AbstractRectRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/EntranceRoom.java b/src/mightypork/rogue/world/gen/rooms/EntranceRoom.java
index b40a232..854cf0f 100644
--- a/src/mightypork/rogue/world/gen/rooms/EntranceRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/EntranceRoom.java
@@ -3,12 +3,12 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
public class EntranceRoom extends AbstractRectRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/ExitRoom.java b/src/mightypork/rogue/world/gen/rooms/ExitRoom.java
index ec908e2..8b7b967 100644
--- a/src/mightypork/rogue/world/gen/rooms/ExitRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/ExitRoom.java
@@ -3,11 +3,11 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.algo.Coord;
public class ExitRoom extends AbstractRectRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/ItemShrineRoom.java b/src/mightypork/rogue/world/gen/rooms/ItemShrineRoom.java
index 51fa884..9683122 100644
--- a/src/mightypork/rogue/world/gen/rooms/ItemShrineRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/ItemShrineRoom.java
@@ -3,12 +3,12 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.WorldGenError;
import mightypork.rogue.world.item.Item;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
public class ItemShrineRoom extends SecretRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/SecretRoom.java b/src/mightypork/rogue/world/gen/rooms/SecretRoom.java
index cc1dacc..90eba68 100644
--- a/src/mightypork/rogue/world/gen/rooms/SecretRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/SecretRoom.java
@@ -3,11 +3,11 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
public abstract class SecretRoom extends AbstractRectRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/StorageRoom.java b/src/mightypork/rogue/world/gen/rooms/StorageRoom.java
index 9515808..5e58e79 100644
--- a/src/mightypork/rogue/world/gen/rooms/StorageRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/StorageRoom.java
@@ -3,11 +3,11 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.item.Items;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
public class StorageRoom extends SecretRoom {
diff --git a/src/mightypork/rogue/world/gen/rooms/TreasureChestRoom.java b/src/mightypork/rogue/world/gen/rooms/TreasureChestRoom.java
index 0e46f57..cf551e8 100644
--- a/src/mightypork/rogue/world/gen/rooms/TreasureChestRoom.java
+++ b/src/mightypork/rogue/world/gen/rooms/TreasureChestRoom.java
@@ -3,11 +3,11 @@ package mightypork.rogue.world.gen.rooms;
import java.util.Random;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.gen.MapTheme;
import mightypork.rogue.world.gen.ScratchMap;
import mightypork.rogue.world.gen.TileProtectLevel;
import mightypork.rogue.world.item.Item;
+import mightypork.utils.math.algo.Coord;
public class TreasureChestRoom extends ItemShrineRoom {
diff --git a/src/mightypork/rogue/world/gui/MapView.java b/src/mightypork/rogue/world/gui/MapView.java
index 2e962ca..0b160a7 100644
--- a/src/mightypork/rogue/world/gui/MapView.java
+++ b/src/mightypork/rogue/world/gui/MapView.java
@@ -5,19 +5,10 @@ import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.vect.Vect;
-import mightypork.gamecore.eventbus.clients.DelegatingClient;
import mightypork.gamecore.gui.components.InputComponent;
import mightypork.gamecore.input.events.MouseButtonEvent;
import mightypork.gamecore.input.events.MouseButtonHandler;
import mightypork.gamecore.render.Render;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
-import mightypork.gamecore.util.math.timing.TimedTask;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.gamecore.util.math.timing.animation.NumAnimated;
import mightypork.rogue.world.PlayerControl;
import mightypork.rogue.world.World;
import mightypork.rogue.world.WorldProvider;
@@ -25,6 +16,15 @@ import mightypork.rogue.world.WorldRenderer;
import mightypork.rogue.world.events.WorldAscendRequestListener;
import mightypork.rogue.world.events.WorldDescendRequestListener;
import mightypork.rogue.world.gui.interaction.MapInteractionPlugin;
+import mightypork.utils.eventbus.clients.DelegatingClient;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.animation.NumAnimated;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.vect.Vect;
+import mightypork.utils.math.timing.TimedTask;
/**
diff --git a/src/mightypork/rogue/world/gui/Minimap.java b/src/mightypork/rogue/world/gui/Minimap.java
index 5a81134..2e137a7 100644
--- a/src/mightypork/rogue/world/gui/Minimap.java
+++ b/src/mightypork/rogue/world/gui/Minimap.java
@@ -1,29 +1,29 @@
package mightypork.rogue.world.gui;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.mutable.RectMutable;
-import mightypork.dynmath.vect.Vect;
import mightypork.gamecore.gui.components.InputComponent;
import mightypork.gamecore.input.events.MouseButtonEvent;
import mightypork.gamecore.input.events.MouseButtonHandler;
import mightypork.gamecore.render.Render;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.Const;
import mightypork.rogue.world.PlayerFacade;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.var.RectVar;
+import mightypork.utils.math.constraints.vect.Vect;
import org.lwjgl.opengl.GL11;
public class Minimap extends InputComponent implements MouseButtonHandler {
- private final RectMutable bounds = Rect.makeVar();
+ private final RectVar bounds = Rect.makeVar();
private int unit = 0;
private final Num translucency = Num.make(0.8);
private final Color playerColor = RGB.RED;
diff --git a/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java b/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java
index 3419f9f..575521c 100644
--- a/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java
+++ b/src/mightypork/rogue/world/gui/WorldConsoleRenderer.java
@@ -4,20 +4,20 @@ package mightypork.rogue.world.gui;
import java.util.Collection;
import java.util.ConcurrentModificationException;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.num.mutable.NumVar;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.BaseComponent;
-import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.fonts.FontRenderer;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
import mightypork.rogue.world.WorldConsole;
import mightypork.rogue.world.WorldProvider;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.num.var.NumVar;
+import mightypork.utils.math.constraints.rect.Rect;
public class WorldConsoleRenderer extends BaseComponent {
diff --git a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java
index 582d9b0..916f112 100644
--- a/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java
+++ b/src/mightypork/rogue/world/gui/interaction/MIPKeyboard.java
@@ -5,20 +5,20 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import mightypork.dynmath.vect.Vect;
import mightypork.gamecore.core.Config;
-import mightypork.gamecore.eventbus.clients.DelegatingClient;
import mightypork.gamecore.input.InputSystem;
import mightypork.gamecore.input.KeyBindingPool;
import mightypork.gamecore.input.KeyStroke;
import mightypork.gamecore.input.KeyStroke.Edge;
import mightypork.gamecore.input.Keys;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.timing.Updateable;
import mightypork.rogue.world.entity.impl.EntityPlayer;
import mightypork.rogue.world.events.PlayerStepEndListener;
import mightypork.rogue.world.gui.MapView;
+import mightypork.utils.eventbus.clients.DelegatingClient;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.constraints.vect.Vect;
public class MIPKeyboard extends MapInteractionPlugin implements DelegatingClient, PlayerStepEndListener, Updateable {
diff --git a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java
index a4f14c1..8bac7c6 100644
--- a/src/mightypork/rogue/world/gui/interaction/MIPMouse.java
+++ b/src/mightypork/rogue/world/gui/interaction/MIPMouse.java
@@ -1,17 +1,17 @@
package mightypork.rogue.world.gui.interaction;
-import mightypork.dynmath.vect.Vect;
import mightypork.gamecore.input.InputSystem;
-import mightypork.gamecore.util.math.Calc.Deg;
-import mightypork.gamecore.util.math.Polar;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.timing.Updateable;
import mightypork.rogue.world.entity.impl.EntityPlayer;
import mightypork.rogue.world.events.PlayerStepEndListener;
import mightypork.rogue.world.gui.MapView;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.math.Polar;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.angles.Deg;
+import mightypork.utils.math.constraints.vect.Vect;
public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListener, Updateable {
@@ -93,7 +93,7 @@ public class MIPMouse extends MapInteractionPlugin implements PlayerStepEndListe
final Polar p = Polar.fromCoord(clicked.x - plpos.x, clicked.y - plpos.y);
- final int dir = Deg.round90(p.getAngleDeg()) / 90;
+ final int dir = Deg.roundTo90(p.getAngleDeg()) / 90;
switch (dir) {
case 0:
diff --git a/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java b/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java
index 42eb2a8..5d24107 100644
--- a/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java
+++ b/src/mightypork/rogue/world/gui/interaction/MapInteractionPlugin.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.gui.interaction;
-import mightypork.dynmath.vect.Vect;
import mightypork.rogue.world.PlayerFacade;
import mightypork.rogue.world.World;
import mightypork.rogue.world.WorldProvider;
import mightypork.rogue.world.gui.MapView;
+import mightypork.utils.math.constraints.vect.Vect;
public abstract class MapInteractionPlugin {
diff --git a/src/mightypork/rogue/world/item/Item.java b/src/mightypork/rogue/world/item/Item.java
index 8767e8b..6527142 100644
--- a/src/mightypork/rogue/world/item/Item.java
+++ b/src/mightypork/rogue/world/item/Item.java
@@ -1,16 +1,16 @@
package mightypork.rogue.world.item;
-import mightypork.dynmath.rect.Rect;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonObjBundled;
import mightypork.rogue.world.PlayerFacade;
+import mightypork.utils.Support;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.ion.IonBundled;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.constraints.rect.Rect;
-public abstract class Item implements IonObjBundled {
+public abstract class Item implements IonBundled {
private final ItemModel model;
private ItemRenderer renderer;
@@ -39,7 +39,7 @@ public abstract class Item implements IonObjBundled {
@Override
@DefaultImpl
- public void save(IonBundle out)
+ public void save(IonDataBundle out)
{
out.put("c", amount);
out.put("u", uses);
@@ -48,7 +48,7 @@ public abstract class Item implements IonObjBundled {
@Override
@DefaultImpl
- public void load(IonBundle in)
+ public void load(IonDataBundle in)
{
amount = in.get("c", amount);
uses = in.get("u", uses);
@@ -156,7 +156,7 @@ public abstract class Item implements IonObjBundled {
@Override
public String toString()
{
- return Log.str(getClass()) + " x " + getAmount();
+ return Support.str(getClass()) + " x " + getAmount();
}
diff --git a/src/mightypork/rogue/world/item/ItemModel.java b/src/mightypork/rogue/world/item/ItemModel.java
index fe434ff..972954e 100644
--- a/src/mightypork/rogue/world/item/ItemModel.java
+++ b/src/mightypork/rogue/world/item/ItemModel.java
@@ -3,8 +3,8 @@ package mightypork.rogue.world.item;
import java.io.IOException;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.ion.IonBundle;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.math.Calc;
/**
@@ -45,7 +45,7 @@ public final class ItemModel {
}
- public Item loadItem(IonBundle in) throws IOException
+ public Item loadItem(IonDataBundle in) throws IOException
{
final Item t = createItem();
t.load(in);
@@ -53,7 +53,7 @@ public final class ItemModel {
}
- public void saveItem(IonBundle out, Item item) throws IOException
+ public void saveItem(IonDataBundle out, Item item) throws IOException
{
if (itemClass != item.getClass()) throw new RuntimeException("Item class mismatch.");
item.save(out);
diff --git a/src/mightypork/rogue/world/item/ItemRenderer.java b/src/mightypork/rogue/world/item/ItemRenderer.java
index 511abda..4c85492 100644
--- a/src/mightypork/rogue/world/item/ItemRenderer.java
+++ b/src/mightypork/rogue/world/item/ItemRenderer.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.item;
-import mightypork.dynmath.rect.Rect;
+import mightypork.utils.math.constraints.rect.Rect;
public abstract class ItemRenderer {
diff --git a/src/mightypork/rogue/world/item/Items.java b/src/mightypork/rogue/world/item/Items.java
index 9591032..acb2255 100644
--- a/src/mightypork/rogue/world/item/Items.java
+++ b/src/mightypork/rogue/world/item/Items.java
@@ -4,14 +4,20 @@ package mightypork.rogue.world.item;
import java.io.IOException;
import java.util.Collection;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.item.impl.active.ItemHeartPiece;
import mightypork.rogue.world.item.impl.food.ItemCheese;
import mightypork.rogue.world.item.impl.food.ItemMeat;
import mightypork.rogue.world.item.impl.food.ItemSandwich;
-import mightypork.rogue.world.item.impl.weapons.*;
+import mightypork.rogue.world.item.impl.weapons.ItemAxe;
+import mightypork.rogue.world.item.impl.weapons.ItemBone;
+import mightypork.rogue.world.item.impl.weapons.ItemClub;
+import mightypork.rogue.world.item.impl.weapons.ItemKnife;
+import mightypork.rogue.world.item.impl.weapons.ItemRock;
+import mightypork.rogue.world.item.impl.weapons.ItemSword;
+import mightypork.rogue.world.item.impl.weapons.ItemTwig;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
/**
@@ -76,7 +82,7 @@ public final class Items {
out.writeIntByte(model.id);
- final IonBundle ib = new IonBundle();
+ final IonDataBundle ib = new IonDataBundle();
model.saveItem(ib, item);
out.writeBundle(ib);
}
diff --git a/src/mightypork/rogue/world/item/render/QuadItemRenderer.java b/src/mightypork/rogue/world/item/render/QuadItemRenderer.java
index 66dd319..12239d5 100644
--- a/src/mightypork/rogue/world/item/render/QuadItemRenderer.java
+++ b/src/mightypork/rogue/world/item/render/QuadItemRenderer.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.item.render;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.textures.TxQuad;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.ItemRenderer;
+import mightypork.utils.math.constraints.rect.Rect;
public class QuadItemRenderer extends ItemRenderer {
diff --git a/src/mightypork/rogue/world/level/Level.java b/src/mightypork/rogue/world/level/Level.java
index c0cea5a..a1eca23 100644
--- a/src/mightypork/rogue/world/level/Level.java
+++ b/src/mightypork/rogue/world/level/Level.java
@@ -2,25 +2,17 @@ package mightypork.rogue.world.level;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
-import mightypork.dynmath.vect.Vect;
-import mightypork.gamecore.eventbus.BusAccess;
-import mightypork.gamecore.eventbus.EventBus;
-import mightypork.gamecore.eventbus.clients.DelegatingClient;
-import mightypork.gamecore.eventbus.clients.ToggleableClient;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.math.Calc;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.algo.floodfill.FloodFill;
-import mightypork.gamecore.util.math.noise.NoiseGen;
-import mightypork.gamecore.util.math.timing.Updateable;
-import mightypork.ion.IonBundle;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonObjBinary;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.World;
import mightypork.rogue.world.entity.Entities;
import mightypork.rogue.world.entity.Entity;
@@ -30,6 +22,23 @@ import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.tile.Tile;
import mightypork.rogue.world.tile.TileModel;
import mightypork.rogue.world.tile.Tiles;
+import mightypork.utils.eventbus.BusAccess;
+import mightypork.utils.eventbus.EventBus;
+import mightypork.utils.eventbus.clients.DelegatingClient;
+import mightypork.utils.eventbus.clients.ToggleableClient;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.ion.IonBinary;
+import mightypork.utils.ion.IonDataBundle;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.Calc;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.algo.floodfill.FloodFill;
+import mightypork.utils.math.constraints.vect.Vect;
+import mightypork.utils.math.noise.NoiseGen;
/**
@@ -37,28 +46,8 @@ import mightypork.rogue.world.tile.Tiles;
*
* @author Ondřej Hruška (MightyPork)
*/
-public class Level implements BusAccess, Updateable, DelegatingClient, ToggleableClient, IonObjBinary {
+public class Level implements BusAccess, Updateable, DelegatingClient, ToggleableClient, IonBinary {
- private static class EntityRenderComparator implements Comparator {
-
- @Override
- public int compare(Entity o1, Entity o2)
- {
- if (o1.isDead() && !o2.isDead()) {
- return -1;
- }
-
- if (!o1.isDead() && o2.isDead()) {
- return 1;
- }
-
- int c = Double.compare(o1.pos.getVisualPos().y(), o1.pos.getVisualPos().y());
- if (c == 0) c = Double.compare(o1.pos.getVisualPos().x(), o1.pos.getVisualPos().x());
-
- return c;
- }
-
- }
private final FloodFill exploreFiller = new FloodFill() {
@@ -102,11 +91,11 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl
public static final int ION_MARK = 53;
private static final Comparator ENTITY_RENDER_CMP = new EntityRenderComparator();
- private final Coord size = Coord.zero();
+ private Coord size = Coord.zero();
private World world;
- private final Coord enterPoint = Coord.zero();
- private final Coord exitPoint = Coord.zero();
+ private Coord enterPoint = Coord.zero();
+ private Coord exitPoint = Coord.zero();
/** Array of tiles [y][x] */
private Tile[][] tiles;
@@ -232,11 +221,11 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl
public void load(IonInput in) throws IOException
{
// -- metadata --
- final IonBundle ib = in.readBundle();
+ final IonDataBundle ib = in.readBundle();
seed = ib.get("seed", 0L);
- ib.loadBundled("size", size);
- ib.loadBundled("enter_point", enterPoint);
- ib.loadBundled("exit_point", exitPoint);
+ size = ib.get("size");
+ enterPoint = ib.get("enter_point", enterPoint);
+ exitPoint = ib.get("exit_point", exitPoint);
// -- binary data --
@@ -268,11 +257,11 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl
public void save(IonOutput out) throws IOException
{
// -- metadata --
- final IonBundle ib = new IonBundle();
+ final IonDataBundle ib = new IonDataBundle();
ib.put("seed", seed);
- ib.putBundled("size", size);
- ib.putBundled("enter_point", enterPoint);
- ib.putBundled("exit_point", exitPoint);
+ ib.put("size", size);
+ ib.put("enter_point", enterPoint);
+ ib.put("exit_point", exitPoint);
out.writeBundle(ib);
// -- binary data --
@@ -700,4 +689,25 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl
return false;
}
+
+ private static class EntityRenderComparator implements Comparator {
+
+ @Override
+ public int compare(Entity o1, Entity o2)
+ {
+ if (o1.isDead() && !o2.isDead()) {
+ return -1;
+ }
+
+ if (!o1.isDead() && o2.isDead()) {
+ return 1;
+ }
+
+ int c = Double.compare(o1.pos.getVisualPos().y(), o1.pos.getVisualPos().y());
+ if (c == 0) c = Double.compare(o1.pos.getVisualPos().x(), o1.pos.getVisualPos().x());
+
+ return c;
+ }
+
+ }
}
diff --git a/src/mightypork/rogue/world/level/render/EntityRenderContext.java b/src/mightypork/rogue/world/level/render/EntityRenderContext.java
index f2e8636..edb3b33 100644
--- a/src/mightypork/rogue/world/level/render/EntityRenderContext.java
+++ b/src/mightypork/rogue/world/level/render/EntityRenderContext.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.level.render;
-import mightypork.dynmath.rect.Rect;
import mightypork.rogue.world.level.Level;
+import mightypork.utils.math.constraints.rect.Rect;
public class EntityRenderContext extends MapRenderContext {
diff --git a/src/mightypork/rogue/world/level/render/MapRenderContext.java b/src/mightypork/rogue/world/level/render/MapRenderContext.java
index 3b092f0..82e2a0e 100644
--- a/src/mightypork/rogue/world/level/render/MapRenderContext.java
+++ b/src/mightypork/rogue/world/level/render/MapRenderContext.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.level.render;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.builders.TiledRect;
-import mightypork.gamecore.util.math.algo.Coord;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.builders.TiledRect;
public abstract class MapRenderContext {
diff --git a/src/mightypork/rogue/world/level/render/TileRenderContext.java b/src/mightypork/rogue/world/level/render/TileRenderContext.java
index 98e699d..1f637f8 100644
--- a/src/mightypork/rogue/world/level/render/TileRenderContext.java
+++ b/src/mightypork/rogue/world/level/render/TileRenderContext.java
@@ -1,13 +1,13 @@
package mightypork.rogue.world.level.render;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.RectBound;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.algo.Move;
-import mightypork.gamecore.util.math.noise.NoiseGen;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.tile.Tile;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.algo.Move;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.RectBound;
+import mightypork.utils.math.noise.NoiseGen;
/**
diff --git a/src/mightypork/rogue/world/tile/DroppedItemRenderer.java b/src/mightypork/rogue/world/tile/DroppedItemRenderer.java
index e96833d..d8a3bda 100644
--- a/src/mightypork/rogue/world/tile/DroppedItemRenderer.java
+++ b/src/mightypork/rogue/world/tile/DroppedItemRenderer.java
@@ -3,15 +3,15 @@ package mightypork.rogue.world.tile;
import java.util.Collection;
-import mightypork.dynmath.num.Num;
-import mightypork.dynmath.num.proxy.NumProxy;
-import mightypork.dynmath.rect.Rect;
-import mightypork.dynmath.rect.proxy.RectProxy;
-import mightypork.gamecore.util.math.Easing;
-import mightypork.gamecore.util.math.timing.animation.Animator;
-import mightypork.gamecore.util.math.timing.animation.AnimatorBounce;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.level.render.TileRenderContext;
+import mightypork.utils.math.animation.Animator;
+import mightypork.utils.math.animation.AnimatorBounce;
+import mightypork.utils.math.animation.Easing;
+import mightypork.utils.math.constraints.num.Num;
+import mightypork.utils.math.constraints.num.proxy.NumProxy;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.constraints.rect.proxy.RectProxy;
public class DroppedItemRenderer {
@@ -30,7 +30,7 @@ public class DroppedItemRenderer {
int cnt = 0;
for (final Item i : items) {
- offsAdapter.setNum(Num.make((itemAnim.value() + (cnt % 3) * 0.1)));
+ offsAdapter.setNum(Num.make((itemAnim.getValue() + (cnt % 3) * 0.1)));
i.render(itemRect);
diff --git a/src/mightypork/rogue/world/tile/Tile.java b/src/mightypork/rogue/world/tile/Tile.java
index 027f790..ca6bd1b 100644
--- a/src/mightypork/rogue/world/tile/Tile.java
+++ b/src/mightypork/rogue/world/tile/Tile.java
@@ -3,19 +3,20 @@ package mightypork.rogue.world.tile;
import java.io.IOException;
-import mightypork.gamecore.eventbus.BusAccess;
-import mightypork.gamecore.eventbus.EventBus;
-import mightypork.gamecore.logging.Log;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonObjBinary;
-import mightypork.ion.IonOutput;
import mightypork.rogue.Const;
import mightypork.rogue.world.World;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.level.Level;
import mightypork.rogue.world.level.render.TileRenderContext;
+import mightypork.utils.Support;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.eventbus.BusAccess;
+import mightypork.utils.eventbus.EventBus;
+import mightypork.utils.ion.IonBinary;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
+import mightypork.utils.logging.Log;
+import mightypork.utils.math.color.Color;
/**
@@ -23,7 +24,7 @@ import mightypork.rogue.world.level.render.TileRenderContext;
*
* @author Ondřej Hruška (MightyPork)
*/
-public abstract class Tile implements BusAccess, IonObjBinary {
+public abstract class Tile implements BusAccess, IonBinary {
// tmp extras
public final TileGenData genData = new TileGenData();
@@ -78,7 +79,7 @@ public abstract class Tile implements BusAccess, IonObjBinary {
renderer = makeRenderer();
if (renderer == /*still*/null) {
- Log.w("No renderer for tile " + Log.str(this));
+ Log.w("No renderer for tile " + Support.str(this));
renderer = TileRenderer.NONE;
return;
}
diff --git a/src/mightypork/rogue/world/tile/TileColors.java b/src/mightypork/rogue/world/tile/TileColors.java
index 0ba6a27..973ac19 100644
--- a/src/mightypork/rogue/world/tile/TileColors.java
+++ b/src/mightypork/rogue/world/tile/TileColors.java
@@ -1,8 +1,8 @@
package mightypork.rogue.world.tile;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.gamecore.util.math.color.pal.RGB;
+import mightypork.utils.math.color.Color;
+import mightypork.utils.math.color.pal.RGB;
public class TileColors {
diff --git a/src/mightypork/rogue/world/tile/TileModel.java b/src/mightypork/rogue/world/tile/TileModel.java
index 1cef97b..f02922b 100644
--- a/src/mightypork/rogue/world/tile/TileModel.java
+++ b/src/mightypork/rogue/world/tile/TileModel.java
@@ -3,8 +3,8 @@ package mightypork.rogue.world.tile;
import java.io.IOException;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
/**
diff --git a/src/mightypork/rogue/world/tile/TileRenderer.java b/src/mightypork/rogue/world/tile/TileRenderer.java
index 5daac34..81c1572 100644
--- a/src/mightypork/rogue/world/tile/TileRenderer.java
+++ b/src/mightypork/rogue/world/tile/TileRenderer.java
@@ -1,15 +1,15 @@
package mightypork.rogue.world.tile;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.Res;
import mightypork.gamecore.resources.textures.TxQuad;
-import mightypork.gamecore.util.annot.DefaultImpl;
-import mightypork.gamecore.util.math.algo.Moves;
-import mightypork.gamecore.util.math.timing.Updateable;
import mightypork.rogue.world.level.render.TileRenderContext;
import mightypork.rogue.world.tile.render.NullTileRenderer;
+import mightypork.utils.annotations.DefaultImpl;
+import mightypork.utils.interfaces.Updateable;
+import mightypork.utils.math.algo.Moves;
+import mightypork.utils.math.constraints.rect.Rect;
/**
diff --git a/src/mightypork/rogue/world/tile/TileType.java b/src/mightypork/rogue/world/tile/TileType.java
index e8e4b9b..eba8593 100644
--- a/src/mightypork/rogue/world/tile/TileType.java
+++ b/src/mightypork/rogue/world/tile/TileType.java
@@ -1,7 +1,7 @@
package mightypork.rogue.world.tile;
-import mightypork.gamecore.util.math.color.Color;
+import mightypork.utils.math.color.Color;
/**
diff --git a/src/mightypork/rogue/world/tile/Tiles.java b/src/mightypork/rogue/world/tile/Tiles.java
index 37b7cbe..a2b85b6 100644
--- a/src/mightypork/rogue/world/tile/Tiles.java
+++ b/src/mightypork/rogue/world/tile/Tiles.java
@@ -3,10 +3,17 @@ package mightypork.rogue.world.tile;
import java.io.IOException;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.tile.impl.NullTile;
-import mightypork.rogue.world.tile.impl.brick.*;
+import mightypork.rogue.world.tile.impl.brick.TileBrickChest;
+import mightypork.rogue.world.tile.impl.brick.TileBrickDoor;
+import mightypork.rogue.world.tile.impl.brick.TileBrickEntrance;
+import mightypork.rogue.world.tile.impl.brick.TileBrickExit;
+import mightypork.rogue.world.tile.impl.brick.TileBrickFloor;
+import mightypork.rogue.world.tile.impl.brick.TileBrickPassage;
+import mightypork.rogue.world.tile.impl.brick.TileBrickSecretDoor;
+import mightypork.rogue.world.tile.impl.brick.TileBrickWall;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
/**
diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseChest.java b/src/mightypork/rogue/world/tile/impl/TileBaseChest.java
index eafbf6e..9ce45c0 100644
--- a/src/mightypork/rogue/world/tile/impl/TileBaseChest.java
+++ b/src/mightypork/rogue/world/tile/impl/TileBaseChest.java
@@ -3,10 +3,10 @@ package mightypork.rogue.world.tile.impl;
import java.io.IOException;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.tile.TileModel;
import mightypork.rogue.world.tile.TileType;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
public abstract class TileBaseChest extends TileWithItems {
diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseDoor.java b/src/mightypork/rogue/world/tile/impl/TileBaseDoor.java
index b887c7a..34b9bfc 100644
--- a/src/mightypork/rogue/world/tile/impl/TileBaseDoor.java
+++ b/src/mightypork/rogue/world/tile/impl/TileBaseDoor.java
@@ -4,12 +4,12 @@ package mightypork.rogue.world.tile.impl;
import java.io.IOException;
import mightypork.gamecore.resources.textures.TxSheet;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.tile.TileModel;
import mightypork.rogue.world.tile.TileRenderer;
import mightypork.rogue.world.tile.TileType;
import mightypork.rogue.world.tile.render.DoorTileRenderer;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
public abstract class TileBaseDoor extends TileSolid {
diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java b/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java
index ed089dd..0242620 100644
--- a/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java
+++ b/src/mightypork/rogue/world/tile/impl/TileBaseEntrance.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.tile.impl;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.color.Color;
import mightypork.rogue.world.events.WorldAscendRequest;
import mightypork.rogue.world.tile.TileColors;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.color.Color;
public abstract class TileBaseEntrance extends TileBaseStairs {
diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseExit.java b/src/mightypork/rogue/world/tile/impl/TileBaseExit.java
index 47e8388..69e5768 100644
--- a/src/mightypork/rogue/world/tile/impl/TileBaseExit.java
+++ b/src/mightypork/rogue/world/tile/impl/TileBaseExit.java
@@ -1,11 +1,11 @@
package mightypork.rogue.world.tile.impl;
-import mightypork.gamecore.util.math.algo.Coord;
-import mightypork.gamecore.util.math.color.Color;
import mightypork.rogue.world.events.WorldDescendRequest;
import mightypork.rogue.world.tile.TileColors;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.math.algo.Coord;
+import mightypork.utils.math.color.Color;
public abstract class TileBaseExit extends TileBaseStairs {
diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java b/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java
index ae5b9ef..941367b 100644
--- a/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java
+++ b/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java
@@ -4,11 +4,11 @@ package mightypork.rogue.world.tile.impl;
import java.io.IOException;
import mightypork.gamecore.resources.textures.TxSheet;
-import mightypork.gamecore.util.math.color.Color;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.world.tile.TileColors;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
+import mightypork.utils.math.color.Color;
public abstract class TileBaseSecretDoor extends TileBaseDoor {
diff --git a/src/mightypork/rogue/world/tile/impl/TileWithItems.java b/src/mightypork/rogue/world/tile/impl/TileWithItems.java
index 54a4051..44c3d9d 100644
--- a/src/mightypork/rogue/world/tile/impl/TileWithItems.java
+++ b/src/mightypork/rogue/world/tile/impl/TileWithItems.java
@@ -4,8 +4,6 @@ package mightypork.rogue.world.tile.impl;
import java.io.IOException;
import java.util.Stack;
-import mightypork.ion.IonInput;
-import mightypork.ion.IonOutput;
import mightypork.rogue.Const;
import mightypork.rogue.world.item.Item;
import mightypork.rogue.world.item.Items;
@@ -13,6 +11,8 @@ import mightypork.rogue.world.level.render.TileRenderContext;
import mightypork.rogue.world.tile.DroppedItemRenderer;
import mightypork.rogue.world.tile.Tile;
import mightypork.rogue.world.tile.TileModel;
+import mightypork.utils.ion.IonInput;
+import mightypork.utils.ion.IonOutput;
public abstract class TileWithItems extends Tile {
diff --git a/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java b/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java
index c280f70..2edc79f 100644
--- a/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java
+++ b/src/mightypork/rogue/world/tile/render/BasicTileRenderer.java
@@ -1,12 +1,12 @@
package mightypork.rogue.world.tile.render;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.textures.TxSheet;
import mightypork.rogue.world.level.render.TileRenderContext;
import mightypork.rogue.world.tile.Tile;
import mightypork.rogue.world.tile.TileRenderer;
+import mightypork.utils.math.constraints.rect.Rect;
public class BasicTileRenderer extends TileRenderer {
diff --git a/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java b/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java
index b3398e6..9020ea9 100644
--- a/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java
+++ b/src/mightypork/rogue/world/tile/render/DoorTileRenderer.java
@@ -1,13 +1,13 @@
package mightypork.rogue.world.tile.render;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.textures.TxSheet;
-import mightypork.gamecore.util.math.timing.TimedTask;
import mightypork.rogue.world.level.render.TileRenderContext;
import mightypork.rogue.world.tile.TileRenderer;
import mightypork.rogue.world.tile.impl.TileBaseDoor;
+import mightypork.utils.math.constraints.rect.Rect;
+import mightypork.utils.math.timing.TimedTask;
public class DoorTileRenderer extends TileRenderer {
diff --git a/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java b/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java
index 096edb5..f01d703 100644
--- a/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java
+++ b/src/mightypork/rogue/world/tile/render/TwoHighTileRenderer.java
@@ -1,12 +1,12 @@
package mightypork.rogue.world.tile.render;
-import mightypork.dynmath.rect.Rect;
import mightypork.gamecore.render.Render;
import mightypork.gamecore.resources.textures.TxQuad;
import mightypork.rogue.world.level.render.TileRenderContext;
import mightypork.rogue.world.tile.Tile;
import mightypork.rogue.world.tile.TileRenderer;
+import mightypork.utils.math.constraints.rect.Rect;
/**