Commit Graph

296 Commits

Author SHA1 Message Date
adelikat 8132afec8b
Merge pull request #1536 from Ashafix/sleep
Added sleep functions for Lua to client module (resolves #1177)
2019-04-12 12:51:25 -05:00
Ashafix 598723266e added sleep functions for Lua to client module 2019-04-12 19:03:14 +02:00
zeromus 41c57e5217 fix repeating sound buffer when calling client.SetSoundOn 2019-04-08 16:09:26 -04:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
feos ce3e3d2ed3 lua docs: couple hints 2019-01-23 15:42:02 +03:00
James Groom 42764f0019 Add preliminary Unix compatibility (using Mono; resolves #1384) (#1380)
* Move PlatformSpecificLinkedLibs and implementations to common and rename
* Specify file ext. at LoadPlatformSpecific call site
* Move Client.Common.Global.RunningOnUnix to PlatformLinkedLibSingleton
* Inline var Resolver
* Use PlatformLinkedLibManager internally
* Move plugin load check to LinkedLibManager, use LinkedLibManager
* Interpolate
* Return exit code from dlclose/FreeLibrary
* Skip all calls to externs in BlipBufDll when using mono
* Use PlatformLinkedLibManager in SevenZipLibraryManager
* Add expected return value to workaround (from testing on Win32)
* Remove ".dll" from DllImport attr, remove temporary workaround, see desc.
The library can be built by changing the output file name in
`.../blip_buf/Makefile` to `libblip_buf.so`, and running `make`. It will be
loaded if placed in the `.../output` folder.
* Remove unused code, add TODO (this class is req. for Waterbox.PeWrapper)
The TODO is to [rewrite with
C#](https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files)
instead of importing from `kernel32.dll`.
* Update OpenTK again but better (for #1384)
* Add Mono run script
* Add libblip_buf.so (temporary)
Temporary because it should be a separate package which BizHawk depends on.
* Add distro detection, add "already running" and "unknown distro" messages
* Gray-out Lua Console on Unix
* Extract superclass from EmuLuaLibrary, add shell implementation for Unix
* Specify libdl version, Fedora doesn't have the versionless symlink
* Remove empty `ToolStripMenuItem`, null `Text` caused crash on Unix
* Transform OpenTK keyboard input into a `List<KeyEvent>` and read that
Also fixes crash on rebind
* Remove debug `using ...;`
2019-01-04 01:50:55 +03:00
adelikat 12c11eec5d lua method - client.getconfig(), returns the current config object, note that you can actually use this to set primitive config values, do so at your own risk 2018-12-01 09:20:08 -06:00
adelikat db50cfc648 Merge branch 'lua-polygon-pos' 2018-11-18 08:28:05 -06:00
adelikat 7d708029ad drawPolygon - change x,y to offsetX,offsetY, make them truely optional by fixing a subtle order of operations problem 2018-11-18 08:27:32 -06:00
adelikat ee9e21bcb2
Merge pull request #1180 from AntyMew/lua-polygon-pos
Lua: Add optional position parameters to `DrawPolygon`
2018-11-18 08:12:01 -06:00
nog5 6b3071d8a7 lua: drawText() alignment fix
The vertical alignment "top" and "bottom" was backwards
2018-09-14 23:16:35 +02:00
Asnivor 3e8326da50 Lua: client.getversion() - #1314
fix #1271
2018-09-10 19:24:36 +03:00
Callie LeFave be2085ecfb
._. 2018-04-16 16:56:56 -04:00
Callie LeFave a10d0ec6cc
Fix CI build 2018-04-16 16:44:18 -04:00
Callie LeFave 0d9ced7d83
Lua: Add optional position parameters to `DrawPolygon` 2018-04-16 16:15:37 -04:00
feos ae6ce00d7c I've heard bad things about ElementAt() 2018-03-27 19:01:17 +03:00
zeromus 0a18040aff remove pointless redundant function name from LuaMethodExampleAttributes 2018-03-13 21:05:30 -04:00
zeromus 2203270868 Merge remote-tracking branch 'remotes/origin/pr/1131'' 2018-03-13 20:37:48 -04:00
zeromus b179a30d99 Merge remote-tracking branch 'remotes/origin/pr/1080'
# Conflicts:
#	BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj

merges PR #1080
closes PR #1080
(let's see if either of these can do it)
2018-03-13 16:33:53 -04:00
Azreal 6032063518 Now looks good :) 2018-03-10 03:00:44 -08:00
Azreal 26c0b1fff2 Continuing... 2018-03-10 02:49:39 -08:00
Azreal 96a35fe71b My first commit - add file "EmuLuaLibrary.Tastudio.cs" to examples (not all have a examples yet)" 2018-03-10 02:33:41 -08:00
TASeditor 6580c2abef Tastudio: drawing stuff, selection, patterns, add column lua function (#1125)
* alt+columnclick draws pattern
* selection: taseditor logic
* shift/ctrl keys restructure to taseditor
shift + up/down: move frame courser up/down by one
shift + pageup/pagedown: move frame courser to next/prev marker
ctrl + left/right: add/remove selection at last selected row
ctrl + shift + left/right: add/remove selection at first selected row
* Alt+drawing pattern
still not working with drawing upwards
* pattern drawing
upwards drawing working except it doesn't update last row.
TODO: Disallow Alt click to focus on menu.
* pattern: last input ignoring fixed
* Lua columnms
TODO: Don't save them into tasproj
* no need to update float edit stuff or cell changes when its not needed
* Shift+clicking draws input from first selected row to clicked cell
* fixed pattern drawing on empty cells
2018-03-08 22:15:47 +03:00
Xadrophonix d91bd35a95 Second pool of examples. 2018-03-04 14:07:06 -08:00
Masterjun 605ca5816a Lua: fix client.openrom 2018-03-01 01:06:15 +01:00
TASeditor 36900b15d4 tastudio lua: setinput functions, onbranch callbacks (#1098) 2018-02-10 14:58:46 +03:00
vadosnaprimer eea6740722 lua: client.isturbo() and client.isseeking() 2018-01-06 13:30:47 +03:00
Ashafix 07da0170fa unified camelCase for Lua functions, changed Lua test script 2017-12-24 11:42:51 +01:00
Ashafix 4d063f6061 new library for communicating with other programs via Lua 2017-12-24 00:24:22 +01:00
adelikat 3f8aa0e018 Lua - implement tastudio.getbranches() and tastudio.getbranchinput(), fixes #843 2017-08-05 11:04:00 -05:00
adelikat 51eed83cce lua - tastudio.getselection() - make key of the lua table an index 2017-07-24 08:44:15 -05:00
zeromus d5770fb8a3 re-apply "keepalive" GC fixes to luainterface mode in emuhawk; maybe it will actually work now and not result in crashes. at least we should check it. 2017-07-22 23:41:30 -05:00
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 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 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 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 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 2ddadeae24 Add PictureBox component and methods for drawing on it 2017-06-20 01:20: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 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 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 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
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 0c7cedd2ac lua - tastudio.setmarker() - make marker message optional 2017-02-04 15:11:43 -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 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
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
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 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 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
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
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