using Godot; namespace PokePurple.Library.Singletons; public class GifManager { private static GifManager? _instance; public static GifManager Instance => _instance ?? (_instance = new GifManager()); private GodotObject _gifManager; public GifManager() { _gifManager = Engine.GetSingleton("GifManager"); //_gifManager = ((SceneTree)Engine.GetMainLoop()).GetRoot().GetNode("GifManager"); } public AnimatedTexture AnimatedTextureFromBuffer(byte[] data, int max_frames = 0) => _gifManager.Call("animated_texture_from_buffer", data, max_frames).As(); public AnimatedTexture AnimatedTextureFromFile(string file, int max_frames = 0) => _gifManager.Call("animated_texture_from_file", file, max_frames).As(); public SpriteFrames SpriteFramesFromBuffer(byte[] data, int max_frames = 0) => _gifManager.Call("sprite_frames_from_buffer", data, max_frames).As(); public SpriteFrames SpriteFramesFromFile(string file, int max_frames = 0) => _gifManager.Call("sprite_frames_from_file", file, max_frames).As(); }