diff --git a/src/main/java/noppes/npcs/controllers/AnimationController.java b/src/main/java/noppes/npcs/controllers/AnimationController.java index 3d66fa11c..e7c29f324 100644 --- a/src/main/java/noppes/npcs/controllers/AnimationController.java +++ b/src/main/java/noppes/npcs/controllers/AnimationController.java @@ -1,5 +1,6 @@ package noppes.npcs.controllers; +import kamkeel.npcs.util.Register; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -28,11 +29,7 @@ import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; +import java.util.*; import java.util.stream.Stream; import java.util.zip.GZIPInputStream; @@ -48,6 +45,8 @@ public class AnimationController implements IAnimationHandler { public static AnimationController Instance = new AnimationController(); private int lastUsedID = 0; + public LinkedHashMap registeredAnimations = new LinkedHashMap<>(); + public AnimationController() { Instance = this; bootOrder = new HashMap<>(); @@ -64,6 +63,7 @@ public class AnimationController implements IAnimationHandler { builtInAnimations = new HashMap<>(); LogWriter.info("Loading animations..."); loadBuiltInAnimations(); + loadRegisteredBuiltIns(); readAnimationMap(); loadAnimations(); LogWriter.info("Done loading animations."); @@ -200,6 +200,16 @@ public class AnimationController implements IAnimationHandler { saveAnimationMap(); } + public void addAnimationRegister(String namespace, Register.Animations register) { + registeredAnimations.put(namespace, register); + } + + private void loadRegisteredBuiltIns() { + for (Register.Animations register : registeredAnimations.values()) { + register.register(); + } + } + private File getDir() { return new File(CustomNpcs.getWorldSaveDirectory(), "animations"); }