private static tk2dSpriteCollectionData ConstructCollection(YAML.Animation mapping, GameObject go, Texture2D texture, string name = "ANIMLOADER") { var collection = go.AddComponent <tk2dSpriteCollectionData>(); collection.assetName = name; collection.allowMultipleAtlases = false; collection.buildKey = 0x0ade; collection.dataGuid = "what even is this for"; collection.spriteCollectionGUID = name; collection.spriteCollectionName = name; var texture_arr = new Texture2D[] { texture }; var material = new Material(ETGMod.Assets.DefaultSpriteShader); var material_insts = new Material[] { material }; collection.textures = texture_arr; collection.textureInsts = texture_arr; material.mainTexture = texture; collection.material = material; collection.materials = material_insts; collection.materialInsts = material_insts; collection.spriteDefinitions = ConstructDefinitions(mapping, go, texture, material); return(collection); }
public AnimatorGenerator(ModLoader.ModInfo mod_info, string base_dir, YAML.Animation mapping) { ModInfo = mod_info; Mapping = mapping; Collection = mod_info.LoadCollection(Path.Combine(base_dir, mapping.Collection)); }
private static tk2dSpriteAnimationClip[] ConstructClips(YAML.Animation mapping, GameObject go) { var clips = new List <tk2dSpriteAnimationClip>(); foreach (var mclip in mapping.Clips) { Console.WriteLine($"CONSTRUCTING CLIP {mclip.Key}"); var frames = ConstructFrames(mapping, go, mclip.Value); var clip = new tk2dSpriteAnimationClip { fps = mclip.Value.FPS, frames = frames, name = mclip.Key, loopStart = 0, wrapMode = (tk2dSpriteAnimationClip.WrapMode)Enum.Parse(typeof(tk2dSpriteAnimationClip.WrapMode), mclip.Value.WrapMode) }; if (mclip.Value.FidgetDuration != null) { clip.maxFidgetDuration = mclip.Value.FidgetDuration.Max; clip.minFidgetDuration = mclip.Value.FidgetDuration.Min; } clips.Add(clip); } return(clips.ToArray()); }
public Animation(YAML.Animation deserialized, string base_dir) { _DeserializedYAMLDoc = deserialized; _Generator = new AnimatorGenerator(base_dir, _DeserializedYAMLDoc); _Collection = _Generator.Collection; _Clips = _Generator.ConstructClips(_Collection.CollectionData); }
public AnimatorGenerator(string base_dir, YAML.Animation mapping) { Mapping = mapping; var coll_path = Path.Combine(base_dir, mapping.Collection); Collection = new Animation.Collection( File.ReadAllText(coll_path), System.IO.Path.GetDirectoryName(coll_path) ); }
private static tk2dSpriteAnimation ConstructAnimation(YAML.Animation mapping, GameObject go) { var animation = go.AddComponent <tk2dSpriteAnimation>(); var clips = ConstructClips(mapping, go); animation.enabled = true; animation.clips = clips; return(animation); }
public Animation(ModLoader.ModInfo info, YAML.Animation deserialized, string base_dir = null) { _ModInfo = info; _DeserializedYAMLDoc = deserialized; if (base_dir == null) { base_dir = info.Resources.BaseDir; } _Generator = new AnimatorGenerator(_ModInfo, base_dir, _DeserializedYAMLDoc); _Collection = _Generator.Collection; _Clips = _Generator.ConstructClips(_Collection.CollectionData); }
private static tk2dSpriteDefinition[] ConstructDefinitions(YAML.Animation mapping, GameObject go, Texture2D texture, Material material) { var defs = new List <tk2dSpriteDefinition>(); foreach (var mclip in mapping.Clips) { for (int i = 0; i < mclip.Value.Frames.Count; i++) { defs.Add(ConstructDefinition(mclip.Value, mclip.Value.Frames[i], texture, material)); mclip.Value.Frames[i].SpriteDefinitionId = defs.Count - 1; } } return(defs.ToArray()); }
private static tk2dSpriteAnimator ConstructAnimator(YAML.Animation mapping, string name = "ANIMLOADER") { var go = new GameObject(name); var animation = ConstructAnimation(mapping, go); var animator = go.AddComponent <tk2dSpriteAnimator>(); animator.enabled = true; animator.Library = animation; animator.ClipFps = mapping.FPS; return(animator); }
private static tk2dSpriteAnimationFrame[] ConstructFrames(YAML.Animation mapping, GameObject go, YAML.Clip clip) { var frames = new List <tk2dSpriteAnimationFrame>(); var collection = ConstructCollection(mapping, go, Resources.Load <Texture2D>(mapping.Spritesheet)); for (int i = 0; i < clip.Frames.Count; i++) { var mframe = clip.Frames[i]; var frame = new tk2dSpriteAnimationFrame { spriteCollection = collection, spriteId = mframe.SpriteDefinitionId, }; } return(frames.ToArray()); }