public static Folder folder_add_child(NeoOCI parent, string childtext) { var fold = Folder.add(childtext); fold.set_parent(parent); return(fold); }
public static Folder createFldIfNo(string txt, Folder parent, int childNum) { Folder fld; if (parent.treeNodeObject.child.Count <= childNum) { //print "create folder! %s" % txt fld = Folder.add(txt); fld.set_parent(parent); return(fld); } else { var chld = parent.treeNodeObject.child[childNum]; fld = NeoOCI.create_from_treenode(chld) as Folder; if (chld.textName != txt) { //print "hit! upd folder! %s" % txt fld.name = txt; //return fld } else { //print "hit!! no creation! %s" % txt } return(fld); } }
public static void _dump_item_tree(StreamWriter f, NeoOCI item, int level) { var txt1 = ""; if (item is Item) { txt1 = item_dump((Item)item); } else if (item is Folder) { txt1 = folder_dump((Folder)item); } if (item.treeNodeObject.childCount > 0) { txt1 += ", 'ch': ["; _print_dump(f, txt1, level); // print all child foreach (var childt in item.treeNodeObject.child) { var child = NeoOCI.create_from_treenode(childt); _dump_item_tree(f, child, level + 1); } _print_dump(f, "]},", level); } else { _print_dump(f, txt1 + "}", level); } }
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"); } }
internal void pasteSelectedStatus2() { var elem = NeoOCI.create_from_selected(); if (elem is VNActor.Actor chara) { chara.import_status((ActorData)clipboard_status2); } else if (elem is Prop prop) { if (elem is Item i) { i.import_status((ItemData)clipboard_status2); } else if (elem is VNActor.Light l) { prop.import_status((LightData)clipboard_status2); } else { prop.import_status((NEOPropData)clipboard_status2); } } else { show_blocking_message_time_sc("Can't paste status 2"); } }
// :type elem:HSNeoOCI public static void render_ui_for_tracking(string id, NeoOCI elem) { var txt = id + ": " + elem.text_name; GUILayout.BeginHorizontal(); GUILayout.Space(20); var btntext = ""; if (elem.visible_treenode) { btntext = "v"; } if (GUILayout.Button(btntext, GUILayout.Width(22))) { elem.visible_treenode = !elem.visible_treenode; } bool isSelected = Utils.treenode_check_select(elem.treeNodeObject); if (GUILayout.Button(Utils.btntext_get_if_selected(txt, isSelected))) { Instance.game.studio.treeNodeCtrl.SelectSingle(elem.treeNodeObject); } //GUILayout.Label(txt) GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); }
public static List <List <VNActor.Actor> > getSelectedChars(VNNeoController game) { var mtreeman = game.studio.treeNodeCtrl; var ar = new List <VNActor.Actor>(); foreach (var node in mtreeman.selectNodes) { var ochar = NeoOCI.create_from_treenode(node); if (ochar.objctrl is OCIChar) { VNActor.Actor chara = (VNActor.Actor)ochar; ar.Add(chara); } } var am = new List <VNActor.Actor>(); var af = new List <VNActor.Actor>(); foreach (var chara in ar) { if (chara.Sex == 0) { am.Add(chara); } else { af.Add(chara); } } return(new List <List <VNActor.Actor> > { af, am }); }
public static NeoOCI scenef_get_prop(string id) { if (AllProps.ContainsKey(id)) { NeoOCI obj = AllProps[id]; return(obj); } return(null); }
//import GameCursor, CameraControl /* * public static object vngame_window_studio(object vnButtonsStart, object vnButtonsActionsStart) * { * var game = vngameenginestudio.vngame_window_studio(vnButtonsStart, vnButtonsActionsStart); * return game; * } */ //changed by chickenman /* * public static object vngame_window_neo(object vnButtonsStart, object vnButtonsActionsStart) * { * //unity_util.clean_behaviors(); * //var game = unity_util.create_gui_behavior(NeoController); * return new NeoController; * } * * public static object vngame_window_phstudio(object vnButtonsStart, object vnButtonsActionsStart) * { * var game = vngameenginephstudio.vngame_window_phstudio(vnButtonsStart, vnButtonsActionsStart); * return game; * } */ // ---------------- --- dumping item tree ----------------- public static void dump_selected_item_tree() { NeoOCI item = NeoOCI.create_from_selected(); using (StreamWriter file = new StreamWriter(@"dump_selected_items.txt")) { _dump_item_tree(file, item, 0); } }
public static VNActor.Actor getSelectedChar(VNNeoController game) { var mtreeman = game.studio.treeNodeCtrl; var ar = new List <VNActor.Actor>(); foreach (var node in mtreeman.selectNodes) { var ochar = NeoOCI.create_from_treenode(node); if (ochar.objctrl is OCIChar) { VNActor.Actor chara = (VNActor.Actor)ochar; ar.Add(chara); } } return(ar[0]); }
public static Folder createFld(string txt, NeoOCI parent = null, bool ret = true) { var fld = Folder.add(txt); if (parent is Folder) { fld.set_parent(parent); } if (ret == true) { return(fld); } else { throw new Exception("create folder failed"); } }
internal void delSelectedFromTrack() { var elem = NeoOCI.create_from_selected(); if (elem == null) { show_blocking_message_time_sc("Nothing selected"); return; } if (elem is VNActor.Actor chara) { var actors = game.AllActors; var id = ""; foreach (var actid in actors.Keys) { if (actors[actid].objctrl == elem.objctrl) { // found id = actid; break; } } if (id == "") { show_blocking_message_time_sc("Can't delete; seems this actor is not tracking yet"); return; } delActorFromTrack(id); } else if (elem is Prop) { var props = game.AllProps; var id = ""; foreach (var propid in props.Keys) { if (props[propid].objctrl == elem.objctrl) { id = propid; // found break; } } delPropFromTrack(id); } // updating set SceneFolders.LoadTrackedActorsAndProps(); }
internal void copySelectedStatus2() { var elem = NeoOCI.create_from_selected(); if (elem is VNActor.Actor chara) { clipboard_status2 = (IDataClass <IVNObject <object> >)chara.export_full_status(); } else if (elem is Prop prop) { clipboard_status2 = (IDataClass <IVNObject <object> >)prop.export_full_status(); } else { show_blocking_message_time_sc("Can't copy status 2"); } }
public static void restrict_to_child(Folder fld, int numchilds) { if (fld.treeNodeObject.child.Count > numchilds) { var ar = fld.treeNodeObject.child; var ar2 = new List <NeoOCI>(); foreach (var treeobj in ar) { ar2.Add(NeoOCI.create_from_treenode(treeobj)); } foreach (var i in Enumerable.Range(0, ar2.Count)) { if (i >= numchilds) { Console.WriteLine(String.Format("deleted! {0}", i.ToString())); ar2[i].delete(); } } } }
internal void changeSelTrackID(string toId) { if (toId == "") { show_blocking_message_time_sc("Please, set ID to change to first"); return; } var elem = NeoOCI.create_from_selected(); if (elem == null) { show_blocking_message_time_sc("Nothing selected"); return; } if (elem is VNActor.Actor chara) { var actors = game.AllActors; string id = ""; foreach (var actid in actors.Keys) { if (actors[actid].objctrl == elem.objctrl) { // found id = actid; break; } } //self.delActorFromTrack(actid) if (id == "") { show_blocking_message_time_sc("Can't find actor to change ID"); return; } // actually changing ID changeActorTrackId(id, toId); } // updating set SceneFolders.LoadTrackedActorsAndProps(); }
public static List <NeoOCI> get_selected_objs() { var mtreeman = StudioController.Instance.studio.treeNodeCtrl; var ar = new List <NeoOCI>(); foreach (var node in mtreeman.selectNodes) { var ochar = NeoOCI.create_from_treenode(node); if (ochar is VNActor.Actor chara) { ar.Add(chara); } else if (ochar is Prop prop) { ar.Add(prop); } else { throw new Exception("Invalid object"); } } return(ar); }
public static List <Item> getSelectedItems(VNNeoController game) { var mtreeman = game.studio.treeNodeCtrl; var ar = new List <Item>(); foreach (var node in mtreeman.selectNodes) { var oitem = NeoOCI.create_from_treenode(node); if (oitem.objctrl is OCIItem) { Item prop = (Item)oitem; ar.Add(prop); } } if (ar.Count > 0) { return(ar); } else { throw new Exception("No items selected"); } }
// folders public static object add_folder_if_not_exists(string foldertxt, string folderfind, NeoOCI parentifcreate, bool overwrite = false) { var vnext = Folder.find_single_startswith(folderfind); if (vnext is Folder) { if (overwrite) { vnext.name = foldertxt; } return(vnext); } else { return(folder_add_child(parentifcreate, foldertxt)); } }
public static void LoadTrackedActorsAndProps() { List <OCIFolder> folders = scene_get_all_folders_raw(); AllActors.Clear(); AllProps.Clear(); foreach (OCIFolder fld in folders) { string fldName = fld.name; if (fldName.StartsWith(actor_folder_prefix)) { string actorAlias; string actorColor = "ffffff"; string actorTitle = null; // analysis actor tag var tagElements = fldName.Split(':'); if (tagElements.Length == 2) { actorAlias = tagElements[1]; } else if (tagElements.Length == 3) { actorAlias = tagElements[1]; actorColor = tagElements[2]; } else { actorAlias = tagElements[1]; actorColor = tagElements[2]; actorTitle = tagElements[3]; } if (!AllActors.ContainsKey(actorAlias)) { var hsociChar = NeoOCI.create_from_treenode(fld.treeNodeObject.parent.parent.parent); if (hsociChar is VNActor.Actor chara) { if (actorTitle is null) { actorTitle = hsociChar.text_name; } AllActors[actorAlias] = chara; //register_char(actorAlias, actorColor, actorTitle); StudioController.Instance.GetLogger.LogDebug("Registered actor: '" + actorAlias + "' as " + actorTitle + " (#" + actorColor + ")"); } } } else if (fldName.StartsWith(prop_folder_prefix)) { // analysis props tag string propAlias = fldName.Substring(prop_folder_prefix.Length).Trim(); // register props if (!AllProps.ContainsKey(propAlias)) { NeoOCI oci = NeoOCI.create_from_treenode(fld.treeNodeObject.parent); if (oci is Prop propOci) { AllProps[propAlias] = propOci; StudioController.Instance.GetLogger.LogDebug("Registered prop: '" + Utils.to_roman(propAlias) + "' as " + Utils.to_roman(oci.text_name)); } } } else if (fldName.StartsWith(light_folder_prefix)) { string propAlias = fldName.Substring(light_folder_prefix.Length).Trim(); // register props if (!AllProps.ContainsKey(propAlias)) { NeoOCI oci = NeoOCI.create_from_treenode(fld.treeNodeObject.child[0]); if (oci is VNActor.Light propOci) { AllProps[propAlias] = propOci; StudioController.Instance.GetLogger.LogDebug("Registered light: '" + Utils.to_roman(propAlias) + "' as " + Utils.to_roman(oci.text_name)); } } } } }
public static string sort_by_textname(NeoOCI el) { return(el.treeNodeObject.textName); }