Commit Graph

31 Commits

Author SHA1 Message Date
Tamás Bálint Misius
06e2836726
Fix Lua reference leaks (fixes #638) 2019-04-09 15:28:40 +02:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
ssccsscc
1355a4363e Added Lua function for working with zoom 2019-03-05 23:43:41 -05:00
Tamás Bálint Misius
531229daa9 Move EventTypes inside LuaEvents to prevent global scope pollution 2018-11-16 23:02:05 -05:00
jacob1
a8489ba6f5 add new events api, replaces legacy event functions
event.register(event.mousedown, function(...) print(...) end)
event.unregister(event.mousedown, somefunc)

mouseclick event split into mousedown, mouseup, mousemove, mousewheel
keypress event split into keypress, keyrelease, textinput. key* events only contain keycode and scancode, don't attempt to represent a letter (was very broken at this before). Also have helpful shift/ctrl/alt flags passed in. textinput just represents inserted text, can probably even handle foreign characters.
register_step replaced with event.tick event

All legacy register_* and unregister_ functions are removed. There is a compatibility lua script, might embed it later. tpt.set_shortcuts / tpt.test also removed. event.getmodifiers added, just a misc function to get the currently held modifiers

Lots of code duplication to handle each event is removed, it's not handled in a more generic way. Although the Event class / child classes could use some work.
2018-11-16 00:07:26 -05:00
jacob1
e5230b5b9f upgrade to SDL 2
Still currently in process, there are some issues:
Windows version doesn't work, mac version might not work, opengl might not work
Icon doesn't work (on Linux at least)
Lua will need some changes, there are some sdl 1.2 hacks in there
When entering fullscreen, the window loses focus
When holding down mouse out of bounds, mouse move events stop being sent
When letting go of mouse out of bounds, mouseup event doesn't take into account double scale mode
Clicking on startup without moving mouse will draw at 0,0 for a frame
Renderer probably won't compile because USE_SDL doesn't entirely work

... and maybe others

Some nice things were done though:
no more blit2, sdl can do the scaling itself
3d effect removed, no reason to support this joke any longer
No need to support copy/paste ourselves, sdl does it now
text handling done much better now, separate events for key presses and text input
when a new window is shown, all events ignored until next tick (ignore textinput event if window shown from key press event like console)
2018-05-25 21:19:44 -04:00
jacob1
36a545124e fix setting element properties in legacy lua api 2018-05-13 16:16:14 -04:00
jacob1
8a8cbb81e4 fix getting/setting description in elements api 2018-05-10 00:27:55 -04:00
mniip
ff27d69424 Switch from std::string to String/ByteString in most of the code
Also switch SimulationData from weird arrays to std::vector
2018-04-30 21:13:24 +03:00
jacob1
c34b54d974 add sim.takeSnapshot lua function 2017-08-31 23:48:00 -04:00
Tamás Bálint Misius
57f5d0f84f Add sim.brush (#350) 2016-11-07 18:00:34 -05:00
jacob1
46d096206f Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience 2016-03-31 22:08:04 -04:00
jacob1
bc112b54df initialize GoL variables, add sim.gspeed function 2015-10-10 00:03:04 -04:00
jacob1
16781bcb8e two new lua mouse up events (4 & 5) for some corner cases
Also fixes mouse held event being stuck in one of those cases
2015-09-20 21:40:00 -04:00
jacob1
bbdbb67079 fix tpt.brushx returning incorrect value when brush is updated with tpt.brushID 2015-09-19 20:01:53 -04:00
jacob1
f5774ad9b9 update tpt.getscript to use starcatcher.us 2015-09-18 13:00:01 -04:00
jacob1
476c2cce06 new sim.signs api
It is a metatable that can set/read text, x, y, and justification; and also read displayText, screenX, screenW, width, and height

There is also a function sim.signs.new, it returns the new sign id or nil if it can't create a new sign
2015-09-01 00:57:31 -04:00
jacob1
9048a3c50e new lua API: platform
you can get current OS / build information, exe name, restart tpt, open a link in the web browser, and use clipboard copy/paste functions

Also remove some older Platform.h file which wasn't really needed or used
2015-08-31 23:33:40 -04:00
jacob1
fc5f3671f1 new function sim.clearRect, plus fix rounding errors breaking ctrl+x 2015-03-12 00:54:27 -04:00
jacob1
6cb78186be sim.framerender function to simulate a certain number of frames
also remove particle debugging lua function now that there are key shortcuts
2015-02-06 20:34:07 -05:00
jacob1
577ae3400f move some stuff around (without changes) in Simulation.cpp, add sim.updateParticles function 2015-01-11 13:17:18 -05:00
jacob1
a801f0a0b4 allow lua mousepress event to cancel drawing, fixes #229 2014-11-06 20:06:45 -05:00
jacob1
7582acfb5c add sim.photons (like sim.pmap but for photons), sim.(part)neighbors also checks photons, fix sim.gravMap 2014-10-26 16:52:42 -04:00
jacob1
925ff1da3c add lua5.2 support for no particular reason 2014-08-22 01:25:34 -04:00
jacob1
f8782338d7 make tpt.selected* and tpt.brushx/y writable (replaces simstate branch) 2014-08-19 02:01:31 -04:00
jacob1
c44e734abe fix crashes when the selected element is NULL (via lua), add gfx.getHexColor (inverse of gfx.getColors) 2014-06-09 17:42:44 -04:00
jacob1
89ffa60529 New graphics api function: getColors, returns r, b, g, and a from a hex color
Also, remove generated/ and build/generated when using scons -c
2014-06-09 16:50:49 -04:00
jacob1
6749c2547f New SConscript (hopefully better)
Fixes a lot of bugs, also almost all options are no longer needed and are just auto-detected
2014-06-08 19:33:58 -04:00
jacob1
258aaedb0a add sim.reloadSave, tpt.selectedreplace 2014-03-13 14:44:39 -04:00
jacob1
71f90b5d59 new function: sim.deleteStamp
mostly for use in tpt multiplayer
2014-02-20 16:02:32 -05:00
jacob1
f66679e551 a little reorganization (maybe more later) 2014-01-20 13:52:53 -05:00