Пример #1
0
        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);
        }
Пример #2
0
            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));
            }
Пример #3
0
        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());
        }
Пример #4
0
        public Animation(YAML.Animation deserialized, string base_dir)
        {
            _DeserializedYAMLDoc = deserialized;

            _Generator  = new AnimatorGenerator(base_dir, _DeserializedYAMLDoc);
            _Collection = _Generator.Collection;
            _Clips      = _Generator.ConstructClips(_Collection.CollectionData);
        }
Пример #5
0
            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)
                    );
            }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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());
        }
Пример #9
0
        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);
        }
Пример #10
0
        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());
        }