private void Awake()
 {
     KAnimBatchManager.DestroyInstance();
     KAnimGroupFile.DestroyInstance();
     KGlobalAnimParser.DestroyInstance();
     KAnimBatchManager.CreateInstance();
     KGlobalAnimParser.CreateInstance();
     Global.Instance.modManager.Load(Content.Animation);
     KAnimGroupFile.GetGroupFile().LoadAll();
     KAnimBatchManager.Instance().CompleteInit();
 }
    public static KAnimFile AddKAnim(string name, TextAsset anim_file, TextAsset build_file, IList <Texture2D> textures)
    {
        KAnimFile kAnimFile = ScriptableObject.CreateInstance <KAnimFile>();

        kAnimFile.Initialize(anim_file, build_file, textures);
        kAnimFile.name = name;
        AnimCommandFile animCommandFile = new AnimCommandFile();

        KAnimGroupFile.GroupFile groupFile = new KAnimGroupFile.GroupFile();
        groupFile.groupID          = animCommandFile.GetGroupName(kAnimFile);
        groupFile.commandDirectory = "assets/" + name;
        animCommandFile.AddGroupFile(groupFile);
        KAnimGroupFile groupFile2 = KAnimGroupFile.GetGroupFile();

        groupFile2.AddAnimFile(groupFile, animCommandFile, kAnimFile);
        Assets.ModLoadedKAnims.Add(kAnimFile);
        return(kAnimFile);
    }
    public static KAnimFile AddKAnimMod(string name, KAnimFile.Mod anim_mod)
    {
        KAnimFile kAnimFile = ScriptableObject.CreateInstance <KAnimFile>();

        kAnimFile.mod  = anim_mod;
        kAnimFile.name = name;
        AnimCommandFile animCommandFile = new AnimCommandFile();

        KAnimGroupFile.GroupFile groupFile = new KAnimGroupFile.GroupFile();
        groupFile.groupID          = animCommandFile.GetGroupName(kAnimFile);
        groupFile.commandDirectory = "assets/" + name;
        animCommandFile.AddGroupFile(groupFile);
        KAnimGroupFile groupFile2 = KAnimGroupFile.GetGroupFile();

        if (groupFile2.AddAnimMod(groupFile, animCommandFile, kAnimFile) == KAnimGroupFile.AddModResult.Added)
        {
            Assets.ModLoadedKAnims.Add(kAnimFile);
        }
        return(kAnimFile);
    }
Пример #4
0
            public static bool Prefix(string name, KAnimFile.Mod anim_mod)
            {
                if (!name.StartsWith(INTERACTION_ANIM_PREFIX))
                {
                    return(true);
                }
                KAnimFile instance = ScriptableObject.CreateInstance <KAnimFile>();

                instance.mod  = anim_mod;
                instance.name = name;
                KAnimGroupFile groupFile           = KAnimGroupFile.GetGroupFile();
                HashedString   groupId             = INTERACTION_ANIM_GROUP;
                List <KAnimGroupFile.Group> groups = Traverse.Create(groupFile).Field("groups").GetValue <List <KAnimGroupFile.Group> >();
                var group = groups.Find(t => t.id == groupId);

                if (group == null)
                {
                    Debug.LogError($"Could not find animation group {INTERACTION_ANIM_GROUP.HashValue} when adding animation {name}. Loading animation as normal and not as interaction. Perhaps Klei changed the name of the interaction group?");
                    return(true);
                }
                group.files.Add(instance);
                Assets.ModLoadedKAnims.Add(instance);
                return(false);
            }