-
Notifications
You must be signed in to change notification settings - Fork 450
Lua tastudio branches #4681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Lua tastudio branches #4681
Changes from all commits
68f6bde
4e7502a
91a7100
7d8eff1
dc7c820
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -448,6 +448,19 @@ public void SetBranchText(string text, int? index = null) | |||||||
| } | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample(""" | ||||||||
| tastudio.set_branch_text_by_id("97021544-2454-4483-824f-47f75e7fcb6a", "success at frame "..emu.framecount()); | ||||||||
| """)] | ||||||||
| [LuaMethod( | ||||||||
| name: "set_branch_text_by_id", | ||||||||
| description: "Loads the branch with the given ID.")] | ||||||||
| public void SetBranchTextByID(string id, string/*?*/ text) | ||||||||
| { | ||||||||
| var found = GetBranchObjByID(id: id, callerFunctionName: "set_branch_text_by_id"); | ||||||||
| if (found is not null) found.UserText = text; | ||||||||
| // else already logged error | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample("local nltasget = tastudio.getbranches( );")] | ||||||||
| [LuaMethod("getbranches", "Returns a list of the current tastudio branches. Each entry will have the Id, Frame, and Text properties of the branch")] | ||||||||
| [return: LuaZeroIndexed] | ||||||||
|
|
@@ -471,12 +484,12 @@ public LuaTable GetBranches() | |||||||
| """)] | ||||||||
| [LuaMethod( | ||||||||
| name: "get_branch_index_by_id", | ||||||||
| description: "Finds the branch with the given UUID (0-indexed). Returns nil if not found.")] | ||||||||
| description: "Finds the branch with the given ID (0-indexed). Returns nil if not found.")] | ||||||||
| public int? GetBranchIndexByID(string id) | ||||||||
| { | ||||||||
| if (!Guid.TryParseExact(id, format: "D", out var parsed)) | ||||||||
| { | ||||||||
| Log($"not a valid UUID: {id}"); | ||||||||
| Log($"[tastudio.get_branch_index_by_id] not a valid UUID: {id}"); | ||||||||
| return null; | ||||||||
| } | ||||||||
| return Tastudio.CurrentTasMovie.Branches.Index() | ||||||||
|
|
@@ -506,6 +519,31 @@ public LuaTable GetBranchInput(string branchId, int frame) | |||||||
| return table; | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample(""" | ||||||||
| tastudio.load_branch_by_id("97021544-2454-4483-824f-47f75e7fcb6a"); | ||||||||
| """)] | ||||||||
| [LuaMethod( | ||||||||
| name: "load_branch_by_id", | ||||||||
| description: "Loads the branch with the given ID.")] | ||||||||
| public void LoadBranchByID(string id) | ||||||||
| { | ||||||||
| var found = GetBranchObjByID(id: id, callerFunctionName: "load_branch_by_id"); | ||||||||
| if (found is not null) Tastudio.LoadBranch(found); | ||||||||
| // else already logged error | ||||||||
| } | ||||||||
|
|
||||||||
| private TasBranch/*?*/ GetBranchObjByID(string id, string callerFunctionName) | ||||||||
| { | ||||||||
| if (!Guid.TryParseExact(id, format: "D", out var parsed)) | ||||||||
| { | ||||||||
| Log($"[tastudio.{callerFunctionName}] not a valid UUID: {id}"); | ||||||||
| return null; | ||||||||
| } | ||||||||
| var found = Tastudio.CurrentTasMovie.Branches.FirstOrDefault(b => b.Uuid == parsed); | ||||||||
| if (found is null) Log($"[tastudio.{callerFunctionName}] no such branch: {id}"); | ||||||||
| return found; | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample("tastudio.loadbranch(0)")] | ||||||||
| [LuaMethod("loadbranch", "Loads a branch at the given index, if a branch at that index exists.")] | ||||||||
| public void LoadBranch(int index) | ||||||||
|
|
@@ -525,6 +563,36 @@ public void LoadBranch(int index) | |||||||
| } | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample(""" | ||||||||
| local branch_id = tastudio.create_branch("automated attempt"); | ||||||||
| """)] | ||||||||
| [LuaMethod( | ||||||||
| name: "create_branch", | ||||||||
| description: "Creates a new branch at the end of the list, and returns its ID.")] | ||||||||
| public string CreateBranch(string/*?*/ text = null) | ||||||||
| { | ||||||||
| Tastudio.BookMarkControl.Branch(); | ||||||||
| var index = Tastudio.CurrentTasMovie.Branches.Count - 1; | ||||||||
| var branch = Tastudio.CurrentTasMovie.Branches[index]; | ||||||||
| branch.UserText = text; | ||||||||
| Tastudio.BranchSavedCallback?.Invoke(index); | ||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd prefer changing the Also, I think the
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The other existing callsites use the index. The callback can't be moved to the end of BizHawk/src/BizHawk.Client.EmuHawk/tools/TAStudio/BookmarksBranchesBox.cs Lines 227 to 229 in a2e8eed
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
So? They don't grab the branch, and updating
Because of what? The branch not having text at the end of |
||||||||
| return branch.Uuid.ToString("D"); | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample(""" | ||||||||
| tastudio.delete_branch_by_id("97021544-2454-4483-824f-47f75e7fcb6a"); | ||||||||
| """)] | ||||||||
| [LuaMethod( | ||||||||
| name: "delete_branch_by_id", | ||||||||
| description: "Deletes the branch with the given ID." | ||||||||
| + " There is no confirmation, so remember to back up your project before botting with it.")] | ||||||||
| public void DeleteBranchByID(string id) | ||||||||
| { | ||||||||
| var found = GetBranchObjByID(id: id, callerFunctionName: "delete_branch_by_id"); | ||||||||
| if (found is not null) Tastudio.CurrentTasMovie.Branches.Remove(found); | ||||||||
| // else already logged error | ||||||||
| } | ||||||||
|
|
||||||||
| [LuaMethodExample("local sttasget = tastudio.getmarker( 500 );")] | ||||||||
| [LuaMethod( | ||||||||
| name: "getmarker", | ||||||||
|
|
||||||||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.