Commit Graph

282 Commits

Author SHA1 Message Date
zeromus 93e7c91ee9 clean up lua console pause/stop behaviour a little bit and add listview icons to make it more clear what's going on 2015-10-22 16:28:52 -05:00
zeromus c3ff70b864 fix gameExtraPadding coordinate translation and revise lua autodoc for the concerned functions. Presently the entire assortment of functions is confusing, but at least it does something that works. 2015-10-16 19:17:23 -05:00
zeromus 9b222653f5 fix some lua autodoc 2015-10-16 18:28:23 -05:00
zeromus 9410a6cb9d lua console - tweak output behaviour for script evaluation textbox 2015-10-15 18:32:59 -05:00
zeromus 169f36ee85 code formatting 2015-10-15 18:32:59 -05:00
zeromus 3592d1418d lua - add client.SetSoundOn and client.GetSoundOn 2015-10-13 18:54:05 -05:00
zeromus 21579c1c86 lua - add client.SetClientExtraPadding 2015-10-12 20:30:09 -05:00
zeromus cf1c53f3fb fix quicknes lua rendering being offset incorrectly sometimes. fixes #498 2015-09-16 14:02:45 -05:00
adelikat 98bc140a84 Issue #385 - Lua - add memorysavestate library for making and loading savestates in memory, with save, load, remove, and clearall methods 2015-09-09 20:47:56 -04:00
zeromus d0f56ac98d lua - add client.SetGameExtraPadding(left,top,right,bottom) 2015-08-09 13:57:45 -05:00
adelikat 64126fbad3 issue #469 - lua - forms.newform() - add an onclosed callback optional parameter 2015-08-04 20:17:04 -04:00
adelikat ad821c90d5 lua - implement client.exit() 2015-07-31 18:44:53 -04:00
zeromus 50aaa61d2c case insensitive lua functions library docs search 2015-07-22 12:13:30 -05:00
adelikat a8bf7f1828 oops 2015-07-10 10:26:51 -04:00
adelikat 7ecf96772c tastudio/lua - implement tastudio.setlag() 2015-07-09 13:16:55 -04:00
adelikat 9455aec767 Tastudio/lua - implement tastudio.onqueryitemicon() 2015-07-09 12:47:59 -04:00
adelikat 19423092cd Tastudio/lua - implement tastudio.ongreenzoneinvalidated 2015-07-02 14:51:42 -04:00
Tom Rochette a783ef75f6 Simple Lua sandbox.
Uses an EnvironmentSandbox to restore the Environment.CurrentDirectory. Will also catch any script exception and redirect them to the Lua console.

With this change, I've tried to replace all the places where Lua is executed so that if an exception occurs, it is catched, sent to the console and a callback is executed if necessary.

This also fixes a small issue where any callback generating an exception would crash BizHawk.
2015-07-01 22:38:19 -04:00
adelikat c53cef6cf9 tastudio/lua - implement tastudio.onqueryitemtext 2015-07-01 19:46:14 -04:00
adelikat f847e905d2 tastudio/lua - add onqueryitembg event to the lua library, this is called during each cell's background color drawing callback, and gives the opportunity for lua to override the color. 2015-07-01 19:01:29 -04:00
Tom Rochette de98e0ed66 [#405] Set Environment.CurrentDirectory when executing Lua events within a WinForm.
Since events are not executed within the LuaConsole.ResumeScripts method, those did not have Environment.CurrentDirectory available for the executing script.

The fix is simple: when a lua script instantiates a LuaWinForm (through forms.newform), we store the current Environment.CurrentDirectory in the LuaWinForm object.
When a button or checkbox is triggered, it calls WinForm.DoLuaEvent which will set up the Environment.CurrentDirectory for the duration of the callback and then set it back to the initial Environment.CurrentDirectory.
2015-06-30 22:35:59 -04:00
Tom Rochette c03a162bc1 Add a split container to LUA console window.
With the split container, resizing the window will properly reformat the output section as well as allow users to resize it.
2015-06-29 00:28:35 -04:00
ConHuevosGuey d97d94ecbc Made size nullable...now requires a size input. 2015-06-28 13:25:28 -05:00
ConHuevosGuey 229865c443 Added a 'Draw Axis' function to lua GUI library 2015-06-28 13:23:07 -05:00
pasky1382 703dc33cc0 Small correction.
Removed the link to the key names that did not contain correct information, this list of key names is not used in Bizhawk for lua's input.get()
2015-06-22 13:40:22 +00:00
adelikat 6517178e6d lua - savestate.looad() - if path does not exist put a helpful error message rather than a vague .net error 2015-06-15 01:17:02 +00:00
adelikat a04a80bfce add "new" to LuaCanvas.Refresh() because I"m tired of seeing the warning 2015-05-17 20:33:27 +00:00
adelikat e57d15d85b oops, remove some debugging code 2015-04-12 17:47:34 +00:00
adelikat 53341ee24a Lua - add client.CreateInstance() which receives a type name available to EmuHawk and will construct and return the given object, currently it is limited to objects that have a parameterless constructor but we should be able to improve upon that limitation 2015-04-12 17:46:27 +00:00
adelikat a0d56df06b Lua - client library - change GetOpenTools() to GetAvailableTools() which returns a list of tools available to the currently loaded core, change GetTool() to receive any avaialble tool, if the tool isn't open, GetTool() opens it 2015-04-12 17:37:06 +00:00
adelikat 8d86ee012e Lua - implement client.GetOpenTools() to return a list of currently open tools. And client.GetTool(string name) which return an object to lua representing a currently loaded tool, lua then has access to any public methods of that object 2015-04-10 21:56:03 +00:00
scepheo abf1e55934 A bit of testing with Lua. 2015-04-10 14:11:01 +00:00
pjgat09 57fa633a9e Lua Forms: Fixed a bug with SetProperty 2015-04-05 04:11:00 +00:00
zeromus e12c711a0e try to manage lua memory leak prevention in a way thats safer from re-entrancy during finalization thread 2015-03-28 05:53:03 +00:00
adelikat 6982df8035 Lua console - add a null check on close, LuaImp should never be null unless something went bonkers on load 2015-03-28 01:09:50 +00:00
adelikat b74e0a3b3d Lua - apply CrazyTB's patch to fix gui.drawImageRegion() 2015-03-24 22:15:36 +00:00
adelikat 16e9bc7d38 Fix some lua documentation 2015-03-23 22:22:02 +00:00
adelikat e4b613d9f7 Lua - add gui.drawImageRegion() 2015-03-23 21:27:24 +00:00
adelikat 5a2146bde2 Lua - fix fill behavior in drawBox, drawRectangle, drawEllipse, and drawPie 2015-02-24 00:37:56 +00:00
adelikat b45d3820be Lua - gui library - make all colors optional parameters and use defaults if not provided (initially white foreground and transparent background). Add gui.defaultForeground(color) and gui.defaultBackground(color) to change those defaults 2015-02-23 03:10:38 +00:00
adelikat 1514faf300 Move PresentationPanel from GlobalWin to Mainform, since it was primarily used there (and the few other places knew about GlobaWin.MainForm anyway) 2015-02-22 03:53:07 +00:00
scepheo 48a6686f31 Lua Console: Command window gives slightly more sensible output now. 2015-02-08 23:47:15 +00:00
scepheo 152323d891 Lua Console: Console and immediate fields now use Courier New. 2015-02-08 23:09:58 +00:00
adelikat 0ee999dde4 Lua - drawImage - speed up by caching images instead of reading them from disk on every call 2015-02-07 15:39:16 +00:00
adelikat 3ebd9bb2df Lua functions list - greatly speedup drawing 2015-02-05 00:04:05 +00:00
adelikat 53cda95ca5 Lua Console - don't nag to save a session, unless a session exists 2015-01-31 01:52:29 +00:00
scepheo 860227ee66 LuaConsole: Actually stop and restart script upon tool restart. 2015-01-29 14:50:09 +00:00
adelikat 6f2488aa57 Lua - clear out lua drawing surface on restart 2015-01-29 03:36:19 +00:00
adelikat 307845b3b5 Lua - recover from a locked drawing surface exception and log to the console, rather than crash the emulator 2015-01-29 02:14:39 +00:00
adelikat 24a517d293 Lua - properly re-inject core dependencies on restart 2015-01-28 14:38:06 +00:00
adelikat 09072acb3b Lua Console - immediate box - in some situations wrap the text in a console.log(), such as if the user simply types a variable name 2015-01-27 23:27:44 +00:00
adelikat 3b13ea4a8f spaces to tabs, good ol whitespace commit 2015-01-27 23:18:48 +00:00
goyuken 82fcd0bc5e refactor IVideoProvider into a service. uses in mainform and friends are still hacky 2015-01-14 22:37:37 +00:00
christoph.boehmwalder 99f9d91671 LuaConsole - Fixed tooltip of Duplicate button. 2015-01-03 22:40:11 +00:00
jdpurcell cf7815adc9 Fix anchoring of new textbox. 2015-01-02 22:02:00 +00:00
christoph.boehmwalder 879302710e Lua Console - Attempt to fix scaling horror 2015-01-02 20:01:01 +00:00
christoph.boehmwalder e11811e2f8 Lua - Added an input box to the script console for on-the-fly command input
Set ImageScaling to None for all buttons in the toolbar in order to fix scaling issues
2015-01-02 19:36:32 +00:00
adelikat 4e0e5958ed Lua - Convert Gui library to service injection system 2015-01-01 21:44:49 +00:00
adelikat a7c91ddcdd Lua - convert to the Client library to the service injection system 2015-01-01 20:58:57 +00:00
adelikat 72893a10f3 EmuLuaLibrary - remove some commented code that should have been deleted 2015-01-01 19:19:51 +00:00
adelikat b8d667812b convert Lua Console to IToolFormAutoConfig 2015-01-01 17:48:25 +00:00
adelikat a2bee4f88a Lua Console - move "Autoload Session" to the recent session menu 2015-01-01 17:28:34 +00:00
goyuken cfaf59f887 lua: internal infrsatructure changes to nes library 2014-12-17 23:03:58 +00:00
goyuken ecf8728de6 factor out serviceinjector to emulation.common 2014-12-17 18:17:16 +00:00
goyuken 08d09bc64f a few more itoolform cleanups 2014-12-15 18:13:54 +00:00
adelikat 685756ea8e Remove LoadTraceLogger() from ToolManager since it was simply a wrapper to manage availability logic, most of those types of properties should be removed now 2014-12-14 01:39:15 +00:00
scepheo 769cbeb1a0 - IToolForm: Added RequiredServices attribute to define dependencies, and added EmulatorServices for ToolManager to supply them.
- IServiceProvider, BasicServiceProvider: Added compile-time unknown type versions of GetService and HasService.
- ToolManager: Added IsAvailable to test whether all dependencies for a tool are available.
2014-12-13 21:54:59 +00:00
adelikat 21889bba58 Lua Console - replace a NullEmulator check with a Global.Game != null check as that is more precisely why a check is happening 2014-11-30 18:44:20 +00:00
adelikat 4681fef0c2 Add an IsNull() extension method to IEmulator (checks for null and if NullEmulator) and replace EmuHawk NullEmulator checks with this method instead 2014-11-30 14:18:44 +00:00
adelikat 96b626434f Lua Console - on drag and drop, don't be case sensitive with the file extension 2014-11-26 17:42:30 +00:00
adelikat d7596684c2 Lua - Expose tastudio library in non-developer builds 2014-11-19 16:17:40 +00:00
adelikat e4cd7a3449 Lua Console - when reporting a script error, update the number of active scripts label 2014-11-18 01:09:06 +00:00
adelikat 252ea85f99 Lua Console - add a duplicate script menu and toolbar item, functions similarly to new script except it starts with the text from the highlighted script 2014-11-09 16:18:09 +00:00
adelikat 5c92adcaaa Wire up the Log callback into lua libraries, this got lost in the last refactor I did, and so errors were not getting reported 2014-11-08 14:54:00 +00:00
adelikat d0aee55059 Tastudio - a bit of simplifying some code 2014-10-20 19:04:59 +00:00
scepheo bad2bda4f4 Added Lua functions to work with the letterboxing of the emulator, and for transforming emulator space points to client space. 2014-10-10 11:02:18 +00:00
zeromus 1358294a5c ladies and gentlemen, it is my extreme pleasure to you, for tonight's entertainment to present, the lua DrawText without cleartype. May you all enjoy it as much as I have. 2014-10-04 02:09:25 +00:00
adelikat 7a1fe8d51d lua/tastudio - implement tastudio.islag() and tastudio.hasstate() 2014-09-22 21:58:45 +00:00
adelikat 8b212da594 tastudio/lua - implement tastudio.getmarker(), tastudio.setmarker(), and tastudio.removemarker() 2014-09-21 15:17:29 +00:00
adelikat 538c4632af Add a LuaLibraryAttributes attribute to lua libraries with a Released property, only register libraries that are released except in Developer Builds, set tastudio library Released flag to false 2014-09-20 01:00:50 +00:00
adelikat ad16be7712 Start a tastudio lua library 2014-09-19 21:43:16 +00:00
adelikat afdfe11c7e lua - forms.label - add an optional fixedwidth font param 2014-09-07 02:42:44 +00:00
kylelyk 321c8c64bf Added documentation to IControlMainForm, renamed a few variables, moved IControlMainForm related code in MainForm to the same region. 2014-08-19 19:24:17 +00:00
adelikat fe09023ef6 When closing the lua console - clear the lua surface 2014-08-16 20:09:57 +00:00
adelikat bcd78cc4b8 Round 1 of Movie loading system overhaul, this fixes the problem of loading sram when a movie is loaded. Still todo: some cleanup of some hacks that are no longer needed, and restoring the ability to open the play movie dialog and other things, while a movie is active 2014-08-02 15:32:48 +00:00
adelikat 43d9f77fd6 this is mostly a hack, but fixes loading a rom when a movie is still running 2014-08-01 01:34:40 +00:00
adelikat 7ec866ced5 add some extensions to the ControlExtension class for converting cruddy .NET 1.0 collection objects to IEnumerable<T>, and start removing some code in specific forms that work around cruddy .NET 1.0 stuff 2014-07-28 03:01:57 +00:00
adelikat 5d4ff76ed6 Convert a copy/pasted method in a bunch of tool dialogs to an extension method 2014-07-28 02:31:51 +00:00
adelikat ce4ce0bacc Convert some static methods in ToolHelpers to extension methods 2014-07-28 01:51:11 +00:00
adelikat 0397ea1ff4 Remove the CustomControls/Util file and move all the classes into the Form Extensions file, since they were all extension methods for window form objects 2014-07-27 15:22:30 +00:00
adelikat 22ea422530 Lua documentation - fix anchoring on a button (a dev only button, this has no impact on release builds) 2014-07-27 12:08:28 +00:00
adelikat 5f1df3224c fix some dangling references to BizHawk.Multiclient mostly in comments, but also in some client facing tooltip and lua documentation 2014-07-27 01:19:33 +00:00
adelikat 570f77cc68 Implement FastUpdate() on IToolForm. The intent here is for tools to do the minimum amount necessary when updating. This allows them to avoid slow things like drawing, but do critical activities such as Ram tools incrementing change counters, and loggers can continue logging. When Turboing, instead of bypassing tool updates, the client will run the fast update instead. Note: a few tools still need to be thought out as to what they need to do in a fast update 2014-07-25 01:55:21 +00:00
adelikat 7e768eacb1 When rewinding show << and <<<< symbols (not sure when those ever got removed). Tastudio - disable rewind on load, and restore it (if it was on) when closed 2014-07-11 17:14:45 +00:00
adelikat 1964f3754a Merge InputValidate into StringExtensions 2014-07-03 16:00:57 +00:00
adelikat ab5cfab035 remove redundant code throughout the emuhawk project 2014-06-29 02:28:48 +00:00
adelikat e4a12c58bc for Developer builds - Lua functions list - a ToTASVideosWikiMarkup button that copies to clipboard 2014-06-05 00:23:05 +00:00
zeromus 0fe74f95e7 fix LuaConsole PWD-related bugs 2014-06-03 02:39:15 +00:00
adelikat 0649d1c77e Lua - add some more documentation, add a method that generates tasvideos wiki markup of the documentation and outputs to a file (method not wired to anything, there to save me tons of time when releasing) 2014-06-03 02:19:13 +00:00
adelikat d037c6ed60 Oops 2014-06-03 01:21:49 +00:00