Commit Graph

445 Commits

Author SHA1 Message Date
zeromus afda5dbb62 set a value in the switchable lua library to indicate whether it's NLua or LuaInterface; effectively undo 8bc067cbbe for LuaInterface 2017-07-15 16:36:18 -05:00
Trivial-Man 8e0926449f Fix LuaPictureBox
Got left out when fixing other files. Sorry.
2017-07-13 22:48:37 -06:00
Trivial-Man 7b8818c35b Resolve issues with Master
- Uses NLua instead of LuaInterface
- Uses LuaMethod instead of LuaMethodAttribute
- All LuaCanvas Lua calls now begin with lowercase

- Also allows LuaPictureBoxes added through forms to be compatible with addClick
2017-07-13 22:32:27 -06:00
zeromus d54fee4d91 Merge branch 'master' into master 2017-07-13 19:17:09 -05:00
adelikat 5978db7036 Lua - forms.setsize() - add a description instead of just TODO 2017-07-11 08:17:49 -05:00
adelikat 597708765a Lua canvas - use LuaMethodAttribute (if available) when registering canvas methods, also fix casing of a few methods for consistency, fixes #908 2017-07-10 14:59:05 -05:00
adelikat 9581ce6a93 rename LuaMethodAttributes to LuaMethodAttribute so as not to be a bad person 2017-07-10 14:02:08 -05:00
zeromus 0f686a0de1 * revert strict string checking behaviour from nlua Revision 10f4d0ce78a2a3cb9b727ac55c8705385f0ded7e (we dont want it, probably)
* do a better job porting old commits from bizhawk (should fix memory leaks, optional arguments)
2017-07-10 12:59:06 -05:00
adelikat 5781746251 Lua - use the proper Log method in some lua libraries 2017-07-10 11:24:32 -05:00
zeromus 3417453b43 use NLua+KopiLua instead of LuaInterface 2017-07-09 23:51:02 -05:00
Trivial-Man 8a2056193d LuaCanvas: Add SetLocation function
Allows the user to reset the location of the canvas window at will while a script is running
2017-06-29 20:16:02 -06:00
Trivial-Man 22200171e7 LuaCanvas: Include GetMouseX & Y functions
Gets the X and Y coordinates for the mouse cursor relative to the canvas
2017-06-29 20:07:21 -06:00
Trivial-Man 1a1ae98a2e EmuLuaLibrary.Gui: update createcanvas
createcanvas now takes additional parameters that specify where the canvas window should be created
2017-06-29 20:03:18 -06:00
Trivial-Man 5900f9b1ec LuaCanvas: add parameters for specifying location
Constructor now takes in arguments for setting the x and y coordinates of the canvas window
2017-06-29 20:01:31 -06:00
Trivial-Man eb6676e0ba EmuLuaLibrary.Forms: add more PictureBox functions
Adds the functions for getting the mouse x and y coordinates from PictureBox components.
2017-06-29 19:59:27 -06:00
Trivial-Man fdc30ccd12 LuaPictureBox: Add GetMouse
A simple function that gets the point the mouse cursor is at relative to the LuaPictureBox's upper left corner
2017-06-29 19:52:40 -06:00
Trivial-Man 2ddadeae24 Add PictureBox component and methods for drawing on it 2017-06-20 01:20:27 -06:00
Trivial-Man b0e39406a6 Use LuaPictureBox functions in LuaCanvas
Also add in the missing error logs and correct some typos in LuaMethodAttributes.
2017-06-20 01:18:35 -06:00
Trivial-Man 089c487f26 Use LuaPictureBox for the LuaCanvas 2017-06-20 01:16:57 -06:00
Trivial-Man 28acb602ae Create LuaPictureBox component 2017-06-20 01:12:13 -06:00
zeromus 4e1decfa21 add LuaCanvas DrawArc missing from last luacanvas PR merge 2017-06-15 15:01:50 -05:00
Trivial-Man eff9308bbf Add drawing features
Brings canvas up to feature parity with LuaLibraryBase
2017-06-15 11:41:27 -06:00
adelikat 3c7707a6a0 lua - add gui.clearImageCache, also add a param to drawImage that can force it to not be cached if desired 2017-05-29 11:09:19 -05:00
adelikat f81f745fcc Some luaconsole refactoring and moving more logic into LuaImp 2017-05-24 15:59:05 -05:00
adelikat 47f2371953 Misc cleanups 2017-05-24 09:06:31 -05:00
adelikat 4d1dd215e6 Lua Console - temp fix to fix recent regression of lua scripts disappearing on reboot core 2017-05-24 08:30:30 -05:00
adelikat 770f27dfd4 Console lua library functions - check if LuaConsole is loaded on these calls. Currently the console should always be open if a script is being called but this is a preparation commit to eventually support running lua scripts without the lua console loaded 2017-05-23 13:05:36 -05:00
adelikat 4919fc5182 don't reference GlobalWin.LuaConsole in LuaConsole! 2017-05-23 13:04:28 -05:00
adelikat facd845453 Lua Console - Move StartLuaDrawing() and EndLuaDrawing() to LuaImp since they exclusively LuaImp logic 2017-05-23 12:40:40 -05:00
adelikat 6196d81b5d Move _luaList from LuaConsole to LuaImp 2017-05-22 16:47:27 -05:00
adelikat a6414ff05c Mainform cleanup round 2 2017-05-22 14:23:13 -05:00
adelikat f89bcf4bfa cleanup of Lua some related files 2017-05-19 11:05:21 -05:00
adelikat 31e68a38f9 Cleanup EmuHawk lua library code 2017-05-19 09:47:18 -05:00
adelikat 7f269d25df Make lua library dependent services private 2017-05-19 08:58:23 -05:00
adelikat 75affd8940 Lua console code cleanup 2017-05-18 14:53:03 -05:00
adelikat 4c48542b98 fix null reference exception when LuaSandbox attempts to use the Logger 2017-05-18 14:27:22 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
zeromus 8bc067cbbe lua: fix memory leak causing crash after a few dozen script loads/resets 2017-05-10 01:58:19 -05:00
adelikat e839a1c163 Add lua canvas methods to documentation 2017-05-07 16:33:48 -05:00
zeromus ac767a2acc clarification to the saveram flushing system 2017-05-06 17:50:36 -05:00
adelikat 20d2a7d198 Lua - tastudio onquery callbacks - attempt to better clarify the expected lua function that is taken as a parameter 2017-04-30 12:05:27 -05:00
adelikat 1184e8ed05 lua - implement tastudio.getselection(), tastudio.insertframes(), tastudio.deleteframes() 2017-04-22 20:50:03 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
adelikat e23dc983f0 Merge pull request #826 from lenalia/master
Added horizalign and vertalign to DrawText
2017-04-11 16:43:20 -05:00
lenalia 117ce07aaf Added horizalign and vertalign to DrawText 2017-04-04 21:20:33 -04:00
shanehoman 58e1b52369 expose MainForm.SaveRam() method to lua 2017-04-02 23:12:38 -07:00
feos 853432da26 tastudio lua: add recording mode functions
finally fixes #793
2017-03-08 19:56:44 +03:00
adelikat 5d4c8020c2 Delete more stuff 2017-02-22 10:12:14 -06:00
adelikat f35717aae2 Remove yet more unused code 2017-02-22 10:11:08 -06:00
adelikat 7653b86f44 Remove some unused code 2017-02-22 10:09:44 -06:00
feos b5730bda3a clarify lua doc 2017-02-19 11:56:17 +03:00
zeromus ea2188dc46 make tastudio.setplayback correctly restore the recording flag after it finishes seeking from the greenzone to the target frame 2017-02-07 00:01:14 -06:00
zeromus d87a2b27a2 make lua's new tastudio.setplayback re-enable the record flag if it was set (the existing logic leaves it disabled I think as security against the GUI use case where users might stomp their video seeking while playing in record mode). future work: add lua control for the record mode flag 2017-02-05 04:20:07 -06:00
zeromus 539cdc29f3 add SetPlayback to tastudio lua library. Can't be 100% sure it works, but it seems to be working OK. it may hang everything up if you seek through a really long redzone..... 2017-02-04 21:40:29 -06:00
zeromus a70e6e2fc4 fix #790 (Scroll wheel missing from input.getMouse()) 2017-02-04 20:52:32 -06:00
adelikat 0480ea3f44 when toggling a script on, update on screen lua drawing stuff. On gui.clearGraphics() immediate update the screen 2017-02-04 15:54:04 -06:00
adelikat 3b197b8fdf lua console - roll back commit that disposes scripts when closing the window, apparnetly luainterface doesn't want you to dispose of disposable things 2017-02-04 15:30:13 -06:00
adelikat 0c7cedd2ac lua - tastudio.setmarker() - make marker message optional 2017-02-04 15:11:43 -06:00
adelikat 3d805a3541 null check for previous commit 2017-02-04 10:45:32 -06:00
adelikat 923565c350 Lua console - dispose of scripts when closing the console window 2017-02-04 10:32:36 -06:00
adelikat c050eaa8c7 lua console - fix the edit button to account for relative vs absolute pathing 2017-02-02 17:48:32 -06:00
zeromus f7638e8352 "fix" client.bufferwidth and client.bufferheight .... I dont understand why they were doing what they were doing. It seems like such a simple thing, just return the dimensions of the core's videoprovider. Someone should rethink all these (and the surface names, and the padding names) and craft a complete, new design. 2017-01-26 00:54:44 -06:00
Isotarge ab1b1877e8 Lua: Implement forms.setdropdownitems() 2016-12-26 12:13:19 +10:30
adelikat 3bfce81eae LuaConsole - have a RequiredService of IEmulator and pass it into the lua implementation instead of using Global.Emulator 2016-12-06 10:35:11 -06:00
adelikat e99bc9ba41 use the Emulator property instead of Global.Emulator in some lua library files 2016-12-04 12:37:29 -06:00
adelikat b7a6542fb6 Lua - gui.drawImage(), gui.drawImageRegion() - log an error if image can not be found, instead of throwing an exception 2016-11-19 14:10:17 -06:00
adelikat 889feeeeba fix #414 by idiot-proofing the lua console command window, if emu.frameadvance() is called, log a warning instead of blowing up 2016-11-13 11:26:09 -06:00
adelikat ddf23e4c3a Lua console - use string.IsNullOrWhiteSpace when checking the command line box 2016-11-13 11:15:30 -06:00
adelikat c27355169f lua forms - run a checkbox click callback after the event not before, fixes #545 2016-11-11 10:03:13 -06:00
adelikat ec502acd1d Lua - make a call to DrawFinish() when closing the lua console. Fixes endless locked emu surface errors when opening it back up and loading a script that draws 2016-11-08 10:37:59 -06:00
adelikat e281950902 Close a lua instance before creating a new one, fixes #455 2016-10-06 15:17:05 -05:00
feos fc66ec1b02 Lua docs: fix #703 2016-09-29 18:09:58 +03:00
adelikat 11b4f5a5b1 Lua - fix #691 - When calling client.reboot_core we still want to re-inject dependencies to the lua libraries 2016-08-28 12:07:26 -04:00
zeromus a7d2b8d7f7 * add a new IToolForm update mechanism which has extensible update points (so a tool can both pre- and post- update)
* make trace logging "core-pushes" model, to a sink installed by the frontend. This sink can go straight to the disk without wasting memory if that's what the Trace Logger tool has selected; or the Trace Logger will buffer it if it needs to.  Formerly, we had a "core-pushes-to-buffer" and "client-pulls-once-per-frame" which necessarily caused huge buffers no matter what was going on.
2016-08-13 15:31:26 -05:00
feos 1e6b3bfbee lua text: display trailing spaces 2016-08-06 15:45:07 +03:00
Isotarge 5a20a520bd Tools: Ram -> RAM #669 2016-07-22 01:32:54 +09:30
zeromus 676b5791f6 lua: add gui.DrawFinish() which will let you choose when to finish drawing; and add optional argument to gui.DrawNew which when set to false lets you keep it from being cleared. 2016-04-21 16:43:37 -05:00
zeromus 1a1a688b96 remove NeedsToPaint; client now repaints ~100fps while paused all the time. as it already did when input display was enabled. fixes #615.. probably 2016-04-20 12:17:41 -05:00
feos fcbf4adbec lua: remove bg color from gui.text function, since it's always a black halo. 2016-04-18 19:39:24 +03:00
zeromus 66683b16ed replace "Ok" with "OK" 2016-03-26 21:50:33 -05:00
adelikat 47d9432ad4 Lua - set file watchers on lua session autoload 2016-02-14 21:51:12 -05:00
feos 435323489e lua: gui.defaultPixelFont() 2016-02-10 20:06:45 +03:00
zeromus 1a123fa491 allow "#aarrggbb" as Color parameter to forms.setproperty. fixes #547 2016-02-08 02:33:58 -06:00
adelikat 36b82c3563 Lua Console - add a button that installs auto-complete for all bizhawk's lua library to Sublime Text 2's lua syntax, still todo - notepad++ 2016-02-07 08:27:57 -05:00
adelikat 907850ce02 Lua - fix exception when reloading a lua script with registered functions while the registered functions dialog is open 2016-02-06 14:22:56 -05:00
adelikat 487fce328b Lua - add option to detect changes in scripts and automatically reload them. Have this option off by default for now. Also fix reloading of scripts which was recently broken. 2016-02-06 13:50:02 -05:00
adelikat 8168031bed Make TargetZoomFactor a per systemId setting 2016-01-31 21:05:08 -05:00
zeromus 5e89e563d0 overhaul lua sandboxing so that each lua script has its own sandbox. elaborate tracking of winform/event ownership to ensure that lua doesnt receive calls without going through the owner's sandbox. add win32-specific speed hacks for currdir set/get at higher speed. There may be bugs in this commit, but I think we're on the right track now. 2016-01-31 19:54:55 -06:00
adelikat 30c7b32bc1 Lua Console - when a lua exception occurs we also want to update the script status icons 2016-01-31 19:02:02 -05:00
adelikat 0ff2db5c8d Lua - ResumeScripts - loop through only running scripts, to avoid sandbox calls for non-running scripts 2016-01-31 14:31:29 -05:00
zeromus 42c0b62261 fix some lua currdir bugs, but its all broken, dont pay any attention to it 2016-01-31 03:18:34 -06:00
zeromus da865e28b8 try sandboxing currenty directory harder 2016-01-31 02:40:48 -06:00
adelikat 0013646db5 Rip out obsolete notion of a WatchList domain, change ram watch menu item to Default Domain, who's functionality is simply to decide the default domain used when adding a new watch, also add some Visual Studio designer shenanigans for a previous commit I made that broke it 2016-01-30 22:17:31 -05:00
adelikat 894a9c2318 Rework ToolHelpers from a static object to ToolFormBase that inherits form and have a lot of tools inherit it, in hopes of moving a lot of copy pasta into a base class, move a few functions that show up a lot there 2016-01-30 20:24:53 -05:00
zeromus 0da6e745e5 move EnvironmentSandbox and LuaSandbox to Client.Common 2016-01-30 18:37:30 -06:00
adelikat 1e57a0a221 Lua Console - remember column widths 2016-01-30 19:20:52 -05:00
adelikat fdae465089 Lua - refresh the lua console when a script exits 2016-01-30 18:50:05 -05:00
feos 7409a32658 lua: attempt to use sandbox in callbacks. 2016-01-30 23:26:27 +03:00
adelikat b6406fe523 lua - client.displaymessages() 2016-01-30 12:08:37 -05:00
pjgat09 e4a4a9606c Lua forms: Added a scrollbars argument for creating a textbox. 2016-01-15 21:19:25 -05:00
feos 23b3784123 lua: gui.defaultTextBackground() 2015-12-20 14:28:31 +03:00
pjgat09 84428afc58 Lua forms textbox: Ctrl+A now selects all text 2015-12-19 22:16:29 -05:00
zeromus 260ad45a88 fix lua's reboot_core function... maybe 2015-12-19 21:14:13 -06:00
pjgat09 d54e53d329 Lua forms.setproperty: Convert the passed value to an enum if applicable 2015-12-19 00:01:06 -05:00
pgrimsrud bb327261ae Add a return value to the main function for various purposes.
Add Lua function ExitCode to allow script writers to terminate the client with an exit code.
2015-12-15 22:39:42 -07:00
Connor Olding a7dd0b2386 Adjust Registered Functions window: anchors, minimum size 2015-12-10 03:35:12 -08:00
feos eb41e8a8e0 lua: remove registered functions on toggle option. 2015-11-29 22:56:28 +03:00
feos 0be8f8c564 lua: another pixelFont tweak. 2015-11-29 22:56:26 +03:00
feos fbd1d6d8e2 Lua: autoload recent scripts too (unless there's a recent session to autoload).
pixelText bg tweak.
2015-11-29 13:29:48 +03:00
feos 128c09e7b4 progress with lua:
- added fceux and gens/snes9x pixelated fonts
- added gui.pixelFont() function for them (no resizing, so perfectly scalable)
- added background to drawText and pixelText (halo was painfully slow, so just a box)
- reordered fore and back colors for gui.text (no need to specify back every time we want to change fore). thought its back color was shadow, that is obsoleted by halo now, whose color we can't change. anyway, it's way slower than simple text functions, so they should be used mostly.
- option to toggle all scripts if none is selected. greatly reduces routine when heavily tweaking a script, and is just generally pretty.
2015-11-28 22:19:15 +03:00
feos 2ce108e310 lua: ability to SetBranchText.
doesn't make much sense to add text to existing branches from lua, but highly useful to set some text to a new branch.
and we also have a default branch text variable now.
2015-11-26 00:12:25 +03:00
zeromus 283cb4ae50 fix loading of roms from commandline 2015-11-12 17:47:39 -06:00
Isotarge 02c04d0088 Fix forms.destroyall() and call it when lua console closes
Fixes #454
2015-11-07 01:38:44 +10:30
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