diff --git a/core/src/main/java/io/github/eldek0/asset/group/AssetBase.java b/core/src/main/java/io/github/eldek0/asset/group/AssetBase.java new file mode 100644 index 0000000..41c1b11 --- /dev/null +++ b/core/src/main/java/io/github/eldek0/asset/group/AssetBase.java @@ -0,0 +1,34 @@ +package io.github.eldek0.asset.group; + +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.graphics.Texture; + +public abstract class AssetBase { + public abstract static class Data {} + + public static class FrameRange { + public String base; + public int start, end; + } + + protected void queueRange(AssetManager m, FrameRange r) { + for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); + } + + protected Texture[] fetchRange(AssetManager m, FrameRange r) { + Texture[] arr = new Texture[r.end - r.start + 1]; + for (int i = r.start; i <= r.end; i++) + arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); + return arr; + } + + protected void disposeRange(AssetManager m, FrameRange r) { + for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); + } + + protected boolean isRangeLoaded(AssetManager m, FrameRange r) { + for (int i = r.start; i <= r.end; i++) + if (!m.isLoaded(r.base + i + ".png")) return false; + return true; + } +} diff --git a/core/src/main/java/io/github/eldek0/asset/group/BatteryAssets.java b/core/src/main/java/io/github/eldek0/asset/group/BatteryAssets.java index f812909..059dc84 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/BatteryAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/BatteryAssets.java @@ -3,16 +3,15 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class BatteryAssets implements AssetBundle { +public class BatteryAssets extends AssetBase implements AssetBundle { + + public BatteryAssets(){ + super(); + } public static class Data { public String flashlightLabel; public FrameRange stages; - - public static class FrameRange { - public String base; - public int start, end; - } } public Texture flashlightLabel; @@ -45,11 +44,4 @@ public class BatteryAssets implements AssetBundle { if (!manager.isLoaded(data.stages.base + i + ".png")) return false; return true; } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/CameraAssets.java b/core/src/main/java/io/github/eldek0/asset/group/CameraAssets.java index af85661..f6bafbb 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/CameraAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/CameraAssets.java @@ -7,7 +7,7 @@ import com.badlogic.gdx.utils.Array; import java.util.LinkedHashMap; import java.util.Map; -public class CameraAssets implements AssetBundle { +public class CameraAssets extends AssetBase implements AssetBundle { public static class Data { public Utils utils; @@ -31,10 +31,6 @@ public class CameraAssets implements AssetBundle { public String name, base; public int frameCount; } - public static class FrameRange { - public String base; - public int start, end; - } } public Texture map, borderline, recordSprite, signalInterrupted; @@ -165,25 +161,4 @@ public class CameraAssets implements AssetBundle { public Texture[] getLocationFrames(String name) { return locationFrames.get(name); } public Texture getLocationLabel(String name) { return locationLabels.get(name); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/CustomNightAssets.java b/core/src/main/java/io/github/eldek0/asset/group/CustomNightAssets.java index b319569..88bb287 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/CustomNightAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/CustomNightAssets.java @@ -3,7 +3,11 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class CustomNightAssets implements AssetBundle { +public class CustomNightAssets extends AssetBase implements AssetBundle{ + + public CustomNightAssets(){ + super(); + } public static class Data { public Labels labels; @@ -13,10 +17,6 @@ public class CustomNightAssets implements AssetBundle { public String title, arrowRight, arrowLeft, readyButton; public String arrowRight2, arrowLeft2, levelInfo; } - public static class FrameRange { - public String base; - public int start, end; - } } public Texture title, arrowRight, arrowLeft, readyButton; @@ -83,24 +83,5 @@ public class CustomNightAssets implements AssetBundle { && isRangeLoaded(manager, d.rewards); } - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/CutsceneAssets.java b/core/src/main/java/io/github/eldek0/asset/group/CutsceneAssets.java index d4502c5..1bdbf1b 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/CutsceneAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/CutsceneAssets.java @@ -3,16 +3,11 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class CutsceneAssets implements AssetBundle { +public class CutsceneAssets extends AssetBase implements AssetBundle { public static class Data { public String freddy, puppet, background, black, mask, errImg, itsMe; public FrameRange chica, bonnie; - - public static class FrameRange { - public String base; - public int start, end; - } } public Texture freddy, puppet, background, black, mask, errImg, itsMe; @@ -69,25 +64,4 @@ public class CutsceneAssets implements AssetBundle { && isRangeLoaded(manager, d.chica) && isRangeLoaded(manager, d.bonnie); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/JumpscareAssets.java b/core/src/main/java/io/github/eldek0/asset/group/JumpscareAssets.java index 598d6fd..4be6c29 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/JumpscareAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/JumpscareAssets.java @@ -3,17 +3,12 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class JumpscareAssets implements AssetBundle { +public class JumpscareAssets extends AssetBase implements AssetBundle { public static class Data { public FrameRange puppet, toyBonnie, toyChica, toyFreddy; public FrameRange witheredFreddy, witheredBonnie, witheredChica; public FrameRange foxy, mangle, goldenFreddy; - - public static class FrameRange { - public String base; - public int start, end; - } } public Texture[] puppet, toyBonnie, toyChica, toyFreddy; @@ -75,25 +70,4 @@ public class JumpscareAssets implements AssetBundle { && isRangeLoaded(manager, d.mangle) && isRangeLoaded(manager, d.goldenFreddy); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/MaskAssets.java b/core/src/main/java/io/github/eldek0/asset/group/MaskAssets.java index 2bbf48f..6c6e3da 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/MaskAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/MaskAssets.java @@ -3,16 +3,11 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class MaskAssets implements AssetBundle { +public class MaskAssets extends AssetBase implements AssetBundle { public static class Data { public String button; public FrameRange sprites; - - public static class FrameRange { - public String base; - public int start, end; - } } public Texture button; @@ -45,11 +40,4 @@ public class MaskAssets implements AssetBundle { if (!manager.isLoaded(data.sprites.base + i + ".png")) return false; return true; } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java b/core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java index e63cbc8..83205cc 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java @@ -3,7 +3,7 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class MenuAssets implements AssetBundle { +public class MenuAssets extends AssetBase implements AssetBundle { public static class Data { public Logos logos; @@ -33,10 +33,6 @@ public class MenuAssets implements AssetBundle { public static class Ranges { public FrameRange confettiBlue, confettiGreen, confettiYellow, confettiPink; } - public static class FrameRange { - public String base; - public int start, end; - } } public Texture title, scottCredits, selScottCredits; @@ -190,25 +186,4 @@ public class MenuAssets implements AssetBundle { && isRangeLoaded(manager, d.ranges.confettiYellow) && isRangeLoaded(manager, d.ranges.confettiPink); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/MinigameAssets.java b/core/src/main/java/io/github/eldek0/asset/group/MinigameAssets.java index 08fa9a7..dd300e5 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/MinigameAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/MinigameAssets.java @@ -3,7 +3,7 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class MinigameAssets implements AssetBundle { +public class MinigameAssets extends AssetBase implements AssetBundle { public static class Data { public GiveGifts giveGifts; @@ -30,10 +30,6 @@ public class MinigameAssets implements AssetBundle { public String deadChild, car, label; public FrameRange cakeFreddy, childCrying, child; } - public static class FrameRange { - public String base; - public int start, end; - } } // Give Gifts Give Life @@ -223,25 +219,4 @@ public class MinigameAssets implements AssetBundle { && isRangeLoaded(manager, d.rare) && isRangeLoaded(manager, d.animatronics); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/MonitorAssets.java b/core/src/main/java/io/github/eldek0/asset/group/MonitorAssets.java index 43a44ce..cb24613 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/MonitorAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/MonitorAssets.java @@ -3,25 +3,16 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class MonitorAssets implements AssetBundle { +public class MonitorAssets extends AssetBase implements AssetBundle { - // ---- JSON data class ---- public static class Data { public String button; public FrameRange sprites; - - public static class FrameRange { - public String base; - public int start, end; - } } - // ---- Typed fields ---- public Texture button; public Texture[] sprites; - // ---- AssetBundle ---- - @Override public void queue(AssetManager manager, Data data) { manager.load(data.button, Texture.class); @@ -49,13 +40,4 @@ public class MonitorAssets implements AssetBundle { if (!manager.isLoaded(data.sprites.base + i + ".png")) return false; return true; } - - // ---- Helpers ---- - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/NumbersAssets.java b/core/src/main/java/io/github/eldek0/asset/group/NumbersAssets.java index 61d4c24..04fd3b6 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/NumbersAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/NumbersAssets.java @@ -3,17 +3,12 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class NumbersAssets implements AssetBundle { +public class NumbersAssets extends AssetBase implements AssetBundle { public static class Data { public String dots, nightLabel, amLabel, bigAm; public FrameRange medium, small, big, medium2, small2; public FrameRange fiveAnimation, sixAnimation; - - public static class FrameRange { - public String base; - public int start, end; - } } public Texture dots, nightLabel, amLabel, bigAm; @@ -79,25 +74,4 @@ public class NumbersAssets implements AssetBundle { && isRangeLoaded(manager, d.fiveAnimation) && isRangeLoaded(manager, d.sixAnimation); } - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } } diff --git a/core/src/main/java/io/github/eldek0/asset/group/OfficeAssets.java b/core/src/main/java/io/github/eldek0/asset/group/OfficeAssets.java index 1cc9c71..a7b7937 100644 --- a/core/src/main/java/io/github/eldek0/asset/group/OfficeAssets.java +++ b/core/src/main/java/io/github/eldek0/asset/group/OfficeAssets.java @@ -3,9 +3,8 @@ package io.github.eldek0.asset.group; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.Texture; -public class OfficeAssets implements AssetBundle { +public class OfficeAssets extends AssetBase implements AssetBundle { - // ---- JSON data class ---- public static class Data { public String bg; public VentButtons ventButtons; @@ -23,13 +22,8 @@ public class OfficeAssets implements AssetBundle { public static class Ranges { public FrameRange inside, hallway, rightVents, leftVents, desk, warnBig, warnSmall; } - public static class FrameRange { - public String base; - public int start, end; - } } - // ---- Typed fields ---- public Texture bg; public Texture rightVentButtonOff, rightVentButtonOn; public Texture leftVentButtonOff, leftVentButtonOn; @@ -37,7 +31,6 @@ public class OfficeAssets implements AssetBundle { public Texture balloonGirl, dwarf, plastic, bunny, goldenFreddy, mangle, balloonBoy; public Texture[] inside, hallway, rightVents, leftVents, desk, warnBig, warnSmall; - // ---- AssetBundle ---- @Override public void queue(AssetManager manager, Data d) { @@ -150,29 +143,4 @@ public class OfficeAssets implements AssetBundle { && isRangeLoaded(manager, d.ranges.warnBig) && isRangeLoaded(manager, d.ranges.warnSmall); } - - // ---- Range helpers ---- - - private void queueRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - m.load(r.base + i + ".png", Texture.class); - } - - private Texture[] fetchRange(AssetManager m, Data.FrameRange r) { - Texture[] arr = new Texture[r.end - r.start + 1]; - for (int i = r.start; i <= r.end; i++) - arr[i - r.start] = m.get(r.base + i + ".png", Texture.class); - return arr; - } - - private void disposeRange(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - m.unload(r.base + i + ".png"); - } - - private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) { - for (int i = r.start; i <= r.end; i++) - if (!m.isLoaded(r.base + i + ".png")) return false; - return true; - } }