public BTriggerSystem LoadScript(string script_name, BTriggerScriptType type = BTriggerScriptType.TriggerScript)
        {
            var ctxt = mTriggerSerializer.StreamTriggerScriptGetContext(FA.Read, type, script_name);
            var task = System.Threading.Tasks.Task <bool> .Factory.StartNew((state) => {
                var _ctxt = state as XML.BTriggerScriptSerializer.StreamTriggerScriptContext;
                return(Engine.TryStreamData(_ctxt.FileInfo, FA.Read, mTriggerSerializer.StreamTriggerScript, _ctxt));
            }, ctxt);

            return(task.Result ? ctxt.Script : null);
        }
        public static string GetFileExtSearchPattern(BTriggerScriptType type)
        {
            switch (type)
            {
            case BTriggerScriptType.TriggerScript: return("*.triggerscript");

            case BTriggerScriptType.Ability: return("*.ability");

            case BTriggerScriptType.Power: return("*.power");

            default: throw new KSoft.Debug.UnreachableException(type.ToString());
            }
        }