summaryrefslogtreecommitdiff
path: root/core/src/com/ilotterytea/maxoning/utils
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/com/ilotterytea/maxoning/utils')
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/AssetLoading.java191
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/GameUpdater.java127
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/I18N.java53
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/OsUtils.java109
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/ScreenshotFactory.java51
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/colors/HexToARGB.java14
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/formatters/NumberFormatter.java36
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/math/Math.java17
-rw-r--r--core/src/com/ilotterytea/maxoning/utils/serialization/GameDataSystem.java120
9 files changed, 0 insertions, 718 deletions
diff --git a/core/src/com/ilotterytea/maxoning/utils/AssetLoading.java b/core/src/com/ilotterytea/maxoning/utils/AssetLoading.java
deleted file mode 100644
index 0225e48..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/AssetLoading.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package com.ilotterytea.maxoning.utils;
-
-import com.badlogic.gdx.assets.AssetManager;
-import com.badlogic.gdx.assets.loaders.SkinLoader;
-import com.badlogic.gdx.audio.Music;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.TextureAtlas;
-import com.badlogic.gdx.scenes.scene2d.ui.Skin;
-import com.ilotterytea.maxoning.anim.SpriteUtils;
-import com.ilotterytea.maxoning.player.MaxonItemEnum;
-import com.ilotterytea.maxoning.player.MaxonItemRegister;
-import com.ilotterytea.maxoning.ui.AnimatedImage;
-import net.mgsx.gltf.loaders.glb.GLBAssetLoader;
-import net.mgsx.gltf.scene3d.scene.SceneAsset;
-
-public class AssetLoading {
- public static void setup(AssetManager am) {
- am.setLoader(SceneAsset.class, ".glb", new GLBAssetLoader());
- }
-
- public static void queue(AssetManager am) {
- // Texture atlases:
- am.load("sprites/env/environment.atlas", TextureAtlas.class);
- am.load("sprites/gui/brand.atlas", TextureAtlas.class);
- am.load("sprites/gui/icons.atlas", TextureAtlas.class);
- am.load("sprites/gui/ilotterytea.atlas", TextureAtlas.class);
- am.load("sprites/gui/widgets.atlas", TextureAtlas.class);
- am.load("sprites/gui/widgets.skin", Skin.class, new SkinLoader.SkinParameter("sprites/gui/widgets.atlas"));
-
- am.load("sprites/gui/widgeticons.atlas", TextureAtlas.class);
- am.load("sprites/gui/friends.atlas", TextureAtlas.class);
- am.load("sprites/gui/friends.skin", Skin.class, new SkinLoader.SkinParameter("sprites/gui/friends.atlas"));
-
- am.load("MainSpritesheet.atlas", TextureAtlas.class);
- am.load("MainSpritesheet.skin", Skin.class, new SkinLoader.SkinParameter("MainSpritesheet.atlas"));
-
- // Models:
- am.load("models/scenes/living_room.glb", SceneAsset.class);
-
- // Cat item textures:
- am.load("sprites/sheet/loadingCircle.png", Texture.class);
- am.load("sprites/sheet/bror.png", Texture.class);
- am.load("sprites/sheet/manlooshka.png", Texture.class);
- am.load("sprites/sheet/furios_cat.png", Texture.class);
- am.load("sprites/sheet/sandwich_cat.png", Texture.class);
- am.load("sprites/sheet/thirsty_cat.png", Texture.class);
- am.load("sprites/sheet/tvcat.png", Texture.class);
- am.load("sprites/sheet/progcat.png", Texture.class);
- am.load("sprites/sheet/screamcat.png", Texture.class);
- am.load("sprites/sheet/hellcat.png", Texture.class);
- am.load("sprites/sheet/lurker.png", Texture.class);
- am.load("sprites/sheet/piano_cat.png", Texture.class);
- am.load("sprites/sheet/bee_cat.png", Texture.class);
- am.load("sprites/sheet/busy.png", Texture.class);
- am.load("sprites/sheet/aeae.png", Texture.class);
- am.load("sprites/sheet/succat.png", Texture.class);
-
- // Music:
- am.load("mus/menu/mus_menu_intro.ogg", Music.class);
- am.load("mus/menu/mus_menu_loop.ogg", Music.class);
- am.load("mus/game/onwards.wav", Music.class);
- am.load("mus/game/paris.wav", Music.class);
- am.load("mus/game/adieu.wav", Music.class);
- am.load("mus/game/shopping_spree.wav", Music.class);
- // Sounds:
- }
-
- public static void registerItems(AssetManager am, I18N i18n) {
- MaxonItemRegister.clear();
-
- MaxonItemRegister.register(
- 0, i18n.TranslatableText("pet.bror.name"), i18n.TranslatableText("pet.bror.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/bror.png", Texture.class), 112, 112, 11, 7)),
- MaxonItemEnum.SLAVE,
- 100,
- 1f
- );
-
- MaxonItemRegister.register(
- 1, i18n.TranslatableText("pet.sandwich.name"), i18n.TranslatableText("pet.sandwich.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/sandwich_cat.png", Texture.class), 112, 112, 4, 7)),
- MaxonItemEnum.SLAVE,
- 1000,
- 12f
- );
-
- MaxonItemRegister.register(
- 2, i18n.TranslatableText("pet.manlooshka.name"), i18n.TranslatableText("pet.manlooshka.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/manlooshka.png", Texture.class), 112, 112, 10, 4)),
- MaxonItemEnum.SLAVE,
- 5000,
- 36f
- );
-
- MaxonItemRegister.register(
- 3, i18n.TranslatableText("pet.thirsty.name"), i18n.TranslatableText("pet.thirsty.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/thirsty_cat.png", Texture.class), 112, 112, 6, 3)),
- MaxonItemEnum.SLAVE,
- 10000,
- 100f
- );
-
- MaxonItemRegister.register(
- 4, i18n.TranslatableText("pet.furios.name"), i18n.TranslatableText("pet.furios.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/furios_cat.png", Texture.class), 112, 112, 7, 4)),
- MaxonItemEnum.SLAVE,
- 750000,
- 320f
- );
-
- MaxonItemRegister.register(
- 5, i18n.TranslatableText("pet.tvcat.name"), i18n.TranslatableText("pet.tvcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/tvcat.png", Texture.class), 112, 112, 5, 5)),
- MaxonItemEnum.SLAVE,
- 1500000,
- 950f
- );
-
- MaxonItemRegister.register(
- 6, i18n.TranslatableText("pet.progcat.name"), i18n.TranslatableText("pet.progcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/progcat.png", Texture.class), 112, 112, 7, 6)),
- MaxonItemEnum.SLAVE,
- 3000000,
- 2900f
- );
-
- MaxonItemRegister.register(
- 7, i18n.TranslatableText("pet.screamcat.name"), i18n.TranslatableText("pet.screamcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/screamcat.png", Texture.class), 112, 112, 10, 10)),
- MaxonItemEnum.SLAVE,
- 7000000,
- 8700f
- );
-
- MaxonItemRegister.register(
- 8, i18n.TranslatableText("pet.hellcat.name"), i18n.TranslatableText("pet.hellcat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/hellcat.png", Texture.class), 128, 128, 10, 8)),
- MaxonItemEnum.SLAVE,
- 13000000,
- 26100f
- );
-
- MaxonItemRegister.register(
- 9, i18n.TranslatableText("pet.lurker.name"), i18n.TranslatableText("pet.lurker.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/lurker.png", Texture.class), 112, 112, 10, 7)),
- MaxonItemEnum.SLAVE,
- 20000000,
- 78300f
- );
-
- MaxonItemRegister.register(
- 10, i18n.TranslatableText("pet.piano.name"), i18n.TranslatableText("pet.piano.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/piano_cat.png", Texture.class), 128, 128, 5, 3)),
- MaxonItemEnum.SLAVE,
- 40000000,
- 234900f
- );
-
- MaxonItemRegister.register(
- 11, i18n.TranslatableText("pet.bee.name"), i18n.TranslatableText("pet.bee.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/bee_cat.png", Texture.class), 112, 112, 10, 10)),
- MaxonItemEnum.SLAVE,
- 70000000,
- 704700f
- );
-
- MaxonItemRegister.register(
- 12, i18n.TranslatableText("pet.busy.name"), i18n.TranslatableText("pet.busy.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/busy.png", Texture.class), 112, 112, 5, 5)),
- MaxonItemEnum.SLAVE,
- 150000000,
- 2114100f
- );
-
- MaxonItemRegister.register(
- 13, i18n.TranslatableText("pet.aeae.name"), i18n.TranslatableText("pet.aeae.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/aeae.png", Texture.class), 112, 112, 11, 10)),
- MaxonItemEnum.SLAVE,
- 250000000,
- 6342300f
- );
-
- MaxonItemRegister.register(
- 14, i18n.TranslatableText("pet.succat.name"), i18n.TranslatableText("pet.succat.desc"),
- new AnimatedImage(SpriteUtils.splitToTextureRegions(am.get("sprites/sheet/succat.png", Texture.class), 128, 128, 13, 10)),
- MaxonItemEnum.SLAVE,
- 500000000,
- 19026900f
- );
- }
-} \ No newline at end of file
diff --git a/core/src/com/ilotterytea/maxoning/utils/GameUpdater.java b/core/src/com/ilotterytea/maxoning/utils/GameUpdater.java
deleted file mode 100644
index d72b9be..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/GameUpdater.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.ilotterytea.maxoning.utils;
-
-import com.google.gson.Gson;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.Objects;
-
-
-public class GameUpdater {
- static class Release {
- String url;
- String html_url;
- String assets_url;
- String upload_url;
- String tarball_url;
- String zipball_url;
- String discussion_url;
- int id;
- String node_id;
- String tag_name;
- String target_commitish;
- String name;
- String body;
- boolean draft;
- boolean prerelease;
- String created_at;
- String published_at;
- Author author;
- Assets[] assets;
- }
-
- static class Author {
- String login;
- int id;
- String node_id;
- String avatar_url;
- String gravatar_id;
- String url;
- String html_url;
- String followers_url;
- String following_url;
- String gists_url;
- String starred_url;
- String subscriptions_url;
- String organizations_url;
- String repos_url;
- String events_url;
- String received_events_url;
- String type;
- boolean site_admin;
- }
-
- static class Assets {
- String url;
- String browser_download_url;
- int id;
- String node_id;
- String name;
- String label;
- String state;
- String content_type;
- int size;
- int download_count;
- String created_at;
- String updated_at;
- Uploader uploader;
- }
-
- static class Uploader {
- String login;
- int id;
- String node_id;
- String avatar_url;
- String gravatar_id;
- String url;
- String html_url;
- String followers_url;
- String following_url;
- String gists_url;
- String starred_url;
- String subscriptions_url;
- String organizations_url;
- String repos_url;
- String events_url;
- String received_events_url;
- String type;
- boolean site_admin;
- }
-
- private static String readUrl(String urlString) throws Exception {
- BufferedReader reader = null;
- try {
- URL url = new URL(urlString);
- reader = new BufferedReader(new InputStreamReader(url.openStream()));
- StringBuffer buffer = new StringBuffer();
- int read;
- char[] chars = new char[1024];
- while ((read = reader.read(chars)) != -1)
- buffer.append(chars, 0, read);
-
- return buffer.toString();
- } finally {
- if (reader != null)
- reader.close();
- }
- }
-
- public static boolean isLatestRelease(String githubTag) throws Exception {
- return Objects.equals(githubTag, getLatestRelease().tag_name);
- }
-
- public static String getLatestVersion() throws Exception {
- return getLatestRelease().tag_name;
- }
-
- public static Release getLatestRelease() throws Exception {
- String url_link = "https://api.github.com/repos/NotDankEnough/MaxonPettingSim/releases/latest";
-
- String json = readUrl(url_link);
-
- Gson gson = new Gson();
-
- return gson.fromJson(json, Release.class);
- }
-}
diff --git a/core/src/com/ilotterytea/maxoning/utils/I18N.java b/core/src/com/ilotterytea/maxoning/utils/I18N.java
deleted file mode 100644
index e5e4efc..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/I18N.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.ilotterytea.maxoning.utils;
-
-import com.badlogic.gdx.files.FileHandle;
-import com.badlogic.gdx.utils.JsonReader;
-import com.badlogic.gdx.utils.JsonValue;
-
-import java.lang.StringBuilder;
-import java.util.*;
-
-public class I18N {
- private Map<String, String> language = new HashMap<>();
- private FileHandle fileHandle;
-
- public I18N(FileHandle fh) {
- fileHandle = fh;
-
- JsonValue json = new JsonReader().parse(fileHandle);
-
- for (JsonValue val : json.iterator()) {
- this.language.put(val.name, json.getString(val.name));
- }
- }
-
- public FileHandle getFileHandle() { return fileHandle; }
- public Map<String, String> getLanguage() { return language; }
-
- public String TranslatableText(String id) {
- if (language.containsKey(id)) {
- return language.get(id);
- }
- return null;
- }
-
- public String FormattedText(String id, CharSequence... params) {
- if (!language.containsKey(id)) { return null; }
- Scanner scan = new Scanner(language.get(id));
- StringBuilder result = new StringBuilder();
- int index = 0;
-
- while (scan.hasNext()) {
- String next = scan.next();
-
- if (next.contains("%s")) {
- next = next.replace("%s", params[index]);
- if (index + 1 < params.length) { index++; }
- }
-
- result.append(next).append(' ');
- }
-
- return result.toString();
- }
-}
diff --git a/core/src/com/ilotterytea/maxoning/utils/OsUtils.java b/core/src/com/ilotterytea/maxoning/utils/OsUtils.java
deleted file mode 100644
index 7359a8a..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/OsUtils.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.ilotterytea.maxoning.utils;
-
-public class OsUtils {
- private static String OS = System.getProperty("os.name").toLowerCase();
-
- static public boolean isAndroid = System.getProperty("java.runtime.name").contains("Android");
- static public boolean isMac = !isAndroid && OS.contains("mac");
- static public boolean isWindows = !isAndroid && OS.contains("windows");
- static public boolean isLinux = !isAndroid && OS.contains("linux");
- static public boolean isIos = !isAndroid && (!(isWindows || isLinux || isMac)) || OS.startsWith("ios");
-
- static public boolean isARM = System.getProperty("os.arch").startsWith("arm") || System.getProperty("os.arch").startsWith("aarch64");
- static public boolean is64Bit = System.getProperty("os.arch").contains("64") || System.getProperty("os.arch").startsWith("armv8");
-
- public static boolean isGwt = false;
-
- static {
- try {
- Class.forName("com.google.gwt.core.client.GWT");
- isGwt = true;
- }
- catch(Exception ignored) { /* IGNORED */ }
-
- boolean isMOEiOS = "iOS".equals(System.getProperty("moe.platform.name"));
- if (isMOEiOS || (!isAndroid && !isWindows && !isLinux && !isMac)) {
- isIos = true;
- isAndroid = false;
- isWindows = false;
- isLinux = false;
- isMac = false;
- is64Bit = false;
- }
- }
-
- public static String getUserConfigDirectory()
- {
- return getUserConfigDirectory(null);
- }
-
- public static String getUserConfigDirectory(String applicationName)
- {
- String CONFIG_HOME = null;
-
- if((CONFIG_HOME = System.getenv("XDG_CONFIG_HOME"))==null)
- {
- if(isLinux || isAndroid)
- {
- CONFIG_HOME = System.getProperty("user.home")+"/.config";
- }
- else if(isMac)
- {
- CONFIG_HOME = System.getProperty("user.home")+"/Library/Preferences";
- }
- else if(isIos)
- {
- CONFIG_HOME = System.getProperty("user.home")+"/Documents";
- }
- else if(isWindows)
- {
- if((CONFIG_HOME = System.getenv("APPDATA"))==null)
- {
- CONFIG_HOME = System.getProperty("user.home")+"/Documents/My Games";
- }
- }
- }
-
- if(applicationName==null || CONFIG_HOME==null) return CONFIG_HOME;
-
- return CONFIG_HOME+"/"+applicationName;
- }
-
- public static String getUserDataDirectory()
- {
- return getUserDataDirectory(null);
- }
-
- public static String getUserDataDirectory(String applicationName)
- {
- String DATA_HOME = null;
-
- if((DATA_HOME = System.getenv("XDG_DATA_HOME"))==null)
- {
- if(isLinux || isAndroid)
- {
- DATA_HOME = System.getProperty("user.home")+"/.local/share";
- }
- else if(isMac)
- {
- DATA_HOME = System.getProperty("user.home")+"/Library/Application Support";
- }
- else if(isIos)
- {
- DATA_HOME = System.getProperty("user.home")+"/Documents";
- }
- else if(isWindows)
- {
- if((DATA_HOME = System.getenv("APPDATA"))==null)
- {
- DATA_HOME = System.getProperty("user.home")+"/Documents/My Games";
- }
- }
- }
-
- if(applicationName==null || DATA_HOME==null) return DATA_HOME;
-
- return DATA_HOME+"/"+applicationName;
- }
-
-} \ No newline at end of file
diff --git a/core/src/com/ilotterytea/maxoning/utils/ScreenshotFactory.java b/core/src/com/ilotterytea/maxoning/utils/ScreenshotFactory.java
deleted file mode 100644
index 033c818..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/ScreenshotFactory.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ilotterytea.maxoning.utils;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.files.FileHandle;
-import com.badlogic.gdx.graphics.Pixmap;
-import com.badlogic.gdx.graphics.PixmapIO;
-import com.ilotterytea.maxoning.MaxonConstants;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.zip.Deflater;
-
-public class ScreenshotFactory {
- /**
- * Take a screenshot.
- * Default without any compression. Y is flipped.
- */
- public static void takeScreenshot(){
- _takeScreenshot(Deflater.NO_COMPRESSION, true);
- }
-
- /**
- * Take a screenshot. It will be saved in the user data directory, it is different for each platform (Windows: %appdata%/.maxoning/screenshots/, Linux: ~/.local/share/maxoning/screenshots).
- */
- public static void takeScreenshot(int compression, boolean flipY){
- _takeScreenshot(compression, flipY);
- }
-
- private static void _takeScreenshot(int compression, boolean flipY) {
- File file = new File(MaxonConstants.GAME_SCREENSHOT_FOLDER);
-
- if (!file.exists()) {
- file.mkdirs();
- }
-
- DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy_MM_dd-HHmmss");
- LocalDateTime now = LocalDateTime.now();
- Pixmap pixmap = Pixmap.createFromFrameBuffer(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight());
- ByteBuffer pixels = pixmap.getPixels();
-
- int size = Gdx.graphics.getBackBufferWidth() * Gdx.graphics.getBackBufferHeight() * 4;
- for (int i = 3; i < size; i += 4) {
- pixels.put(i, (byte) 255);
- }
-
- PixmapIO.writePNG(new FileHandle(file.getPath() + String.format("/screenshot-%s.png", dtf.format(now))), pixmap, compression, flipY);
- pixmap.dispose();
- }
-} \ No newline at end of file
diff --git a/core/src/com/ilotterytea/maxoning/utils/colors/HexToARGB.java b/core/src/com/ilotterytea/maxoning/utils/colors/HexToARGB.java
deleted file mode 100644
index 5db8f1d..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/colors/HexToARGB.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.ilotterytea.maxoning.utils.colors;
-
-import com.badlogic.gdx.graphics.Color;
-
-public final class HexToARGB {
- public static Color convert(String hex) {
- hex = hex.charAt(0) == '#' ? hex.substring(1) : hex;
- int r = Integer.valueOf(hex.substring(0, 2), 16);
- int g = Integer.valueOf(hex.substring(2, 4), 16);
- int b = Integer.valueOf(hex.substring(4, 6), 16);
- int a = hex.length() != 8 ? 255 : Integer.valueOf(hex.substring(6, 8), 16);
- return new Color(r / 255f, g / 255f, b / 255f, a / 255f);
- }
-}
diff --git a/core/src/com/ilotterytea/maxoning/utils/formatters/NumberFormatter.java b/core/src/com/ilotterytea/maxoning/utils/formatters/NumberFormatter.java
deleted file mode 100644
index 5b35e71..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/formatters/NumberFormatter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.ilotterytea.maxoning.utils.formatters;
-
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.TreeMap;
-
-public class NumberFormatter {
- private static final NavigableMap<Long, String> suffixes = new TreeMap<>();
- static {
- suffixes.put(1_000L, "k");
- suffixes.put(1_000_000L, "M");
- suffixes.put(1_000_000_000L, "G");
- suffixes.put(1_000_000_000_000L, "T");
- suffixes.put(1_000_000_000_000_000L, "P");
- suffixes.put(1_000_000_000_000_000_000L, "E");
- }
-
- public static String format(long value) {
- //Long.MIN_VALUE == -Long.MIN_VALUE so we need an adjustment here
- if (value == Long.MIN_VALUE) return format(Long.MIN_VALUE + 1);
- if (value < 0) return "-" + format(-value);
- if (value < 1000) return Long.toString(value); //deal with easy case
-
- Map.Entry<Long, String> e = suffixes.floorEntry(value);
- Long divideBy = e.getKey();
- String suffix = e.getValue();
-
- long truncated = value / (divideBy / 10); //the number part of the output times 10
- boolean hasDecimal = truncated < 100 && (truncated / 10d) != (truncated / 10);
- return hasDecimal ? (truncated / 10d) + suffix : (truncated / 10) + suffix;
- }
-
- public static String pad(long value) {
- return value <= 9 && value >= 0 ? "0" + value : String.valueOf(value);
- }
-}
diff --git a/core/src/com/ilotterytea/maxoning/utils/math/Math.java b/core/src/com/ilotterytea/maxoning/utils/math/Math.java
deleted file mode 100644
index 0c32a89..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/math/Math.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.ilotterytea.maxoning.utils.math;
-
-public class Math {
- /**
- * Get random number from min value to max value
- * @param min Minimal value
- * @param max Maximum value
- * @return Random number between minimal and maximum values
- */
- public static int getRandomNumber(int min, int max) {
- return (int) ((java.lang.Math.random() * (max - min)) + min);
- }
-
- public static float percentFromValue(float percentage, int value) {
- return percentage / 100f * value;
- }
-}
diff --git a/core/src/com/ilotterytea/maxoning/utils/serialization/GameDataSystem.java b/core/src/com/ilotterytea/maxoning/utils/serialization/GameDataSystem.java
deleted file mode 100644
index f188bfe..0000000
--- a/core/src/com/ilotterytea/maxoning/utils/serialization/GameDataSystem.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.ilotterytea.maxoning.utils.serialization;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.utils.Null;
-import com.google.gson.Gson;
-import com.ilotterytea.maxoning.MaxonConstants;
-import com.ilotterytea.maxoning.player.MaxonSavegame;
-import com.ilotterytea.maxoning.utils.OsUtils;
-import org.jetbrains.annotations.NotNull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.*;
-import java.util.ArrayList;
-
-/**
- * External game data system control.
- * @author NotDankEnough
- * @since Alpha 1.0
- */
-public class GameDataSystem {
- private static final File dir = new File(MaxonConstants.GAME_SAVEGAME_FOLDER);
- private static final Gson gson = new Gson();
- private static final Logger log = LoggerFactory.getLogger(GameDataSystem.class.getSimpleName());
-
- /**
- * Get all savefiles from savegame directory (/.Maxoning/savegames/)
- * @return Array of MaxonSavegames
- * @see MaxonSavegame
- */
- public static ArrayList<MaxonSavegame> getSavegames() {
- if (!dir.exists()) dir.mkdirs();
-
- ArrayList<MaxonSavegame> saves = new ArrayList<>();
- File[] files = dir.listFiles();
-
- assert files != null;
- for (File file : files) {
- try {
-
- FileInputStream fis = new FileInputStream(file);
- ObjectInputStream ois = new ObjectInputStream(fis);
-
- MaxonSavegame sav = gson.fromJson(ois.readUTF(), MaxonSavegame.class);
- saves.add(sav);
-
- ois.close();
- fis.close();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- return saves;
- }
-
- /**
- * Convert <b>MaxonSavegame</b> class to <b>JSON</b> string and write in UTF-8 encoding (I'm sorry, encryption enjoyers).
- * @param savegame Save game object.
- * @param file_name File name.
- * @see MaxonSavegame
- */
- public static void save(@NotNull MaxonSavegame savegame, @NotNull String file_name) {
- if (!dir.exists()) dir.mkdirs();
-
- try {
- log.info("Saving the game...");
- FileOutputStream fos = new FileOutputStream(String.format("%s/%s", (OsUtils.isAndroid || OsUtils.isIos) ? Gdx.files.getExternalStoragePath() : dir.getAbsolutePath(), file_name));
- ObjectOutputStream oos = new ObjectOutputStream(fos);
-
- oos.writeUTF(gson.toJson(savegame));
- oos.close();
- log.info(String.format("Success! Savegame located at %s/%s", (OsUtils.isAndroid || OsUtils.isIos) ? Gdx.files.getExternalStoragePath() : dir.getAbsolutePath(), file_name));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Reading a <b>JSON</b> string from the file and convert to <b>MaxonSavegame</b> class.
- * @param file_name File name. If null - it will get the first file by last modified time.
- * @return Filled <b>MaxonSavegame</b> class
- * @see MaxonSavegame
- */
- public static MaxonSavegame load(@Null String file_name) {
- MaxonSavegame sav = null;
-
- if (new File(dir.getAbsolutePath() + "/" + file_name).exists() && !(OsUtils.isAndroid || OsUtils.isIos)) {
- try {
- log.info(String.format("Trying to get the savegame at %s/%s...", dir.getAbsolutePath(), file_name));
- FileInputStream fis = new FileInputStream(String.format("%s/%s", dir.getAbsolutePath(), file_name));
- ObjectInputStream oos = new ObjectInputStream(fis);
-
- sav = gson.fromJson(oos.readUTF(), MaxonSavegame.class);
- oos.close();
-
- log.info(String.format("Successfully loaded the savegame from %s/%s!", dir.getAbsolutePath(), file_name));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- if ((OsUtils.isAndroid || OsUtils.isIos) && new File(Gdx.files.getExternalStoragePath() + file_name).exists()) {
- try {
- log.info(String.format("Trying to get the savegame at %s%s...", Gdx.files.getExternalStoragePath(), file_name));
- FileInputStream fis = new FileInputStream(String.format("%s%s", Gdx.files.getExternalStoragePath(), file_name));
- ObjectInputStream oos = new ObjectInputStream(fis);
-
- sav = gson.fromJson(oos.readUTF(), MaxonSavegame.class);
- oos.close();
-
- log.info(String.format("Successfully loaded the savegame from %s%s!", Gdx.files.getExternalStoragePath(), file_name));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- return sav;
- }
-}