internal void copySelectedStatusToTracking(List <string> exclude) { var elem = NeoOCI.create_from_selected(); if (elem is VNActor.Actor chara) { var tmp_status = chara.export_full_status(); var actors = game.AllActors; foreach (var key in actors.Keys) { VNActor.Actor actor = (VNActor.Actor)actors[key]; if (actor.text_name == chara.text_name) { /* TODO * foreach (var keyEx in exclude) * { * tmp_status.Remove(keyEx); * } */ actor.import_status(tmp_status); return; } } show_blocking_message_time_sc("Can't find tracking char with same name"); } else { show_blocking_message_time_sc("Can't copy status"); } }
// def getSelectedFolder(game, all=False): // mtreeman = game.studio.treeNodeCtrl // ar = [] // for node in mtreeman.selectNodes: // ofld = HSNeoOCI.create_from_treenode(node) // if isinstance(ofld.objctrl, OCIFolder): // ar.Add(PropSC(ofld.objctrl)) // if len(ar) > 0: // if all == False: // return ar[0] // else: // return ar // # else: // # raise Exception("No folders selected") // chara functions public static void char_import_status_diff_optimized(VNActor.Actor chara, VNActor.Actor.ActorData status) { /* TODO * var ofs = chara.export_full_status(); * var dfs = new Dictionary<string, object> * { * }; * foreach (var key in status.Keys) * { * if (!ofs.ContainsKey(key) || ofs[key] != status[key]) * { * dfs[key] = status[key]; * } * } * //return dfs * //print "Optimized import status diff, ", dfs * chara.import_status(dfs); */ chara.import_status(status); }