peelz
8774a33914
Fix possible NRE when stopping while a patched method is running
2022-09-15 19:31:47 -04:00
peelz
13d0510d37
Make lua converters private
2022-08-20 11:32:18 -04:00
peelz
dd1b404c9b
Refactor error/exception/message handling
...
This adds:
- LuaCsSetup.ExceptionHandler so we can decide how we want to handle
exceptions for unit tests
- LuaCsSetup.MessageHandler so we can redirect logs to the XUnit output
helper
2022-08-10 05:59:41 -04:00
peelz
d9dc84425d
Make LuaCsSetup easier to integrate into unit tests
2022-08-09 17:50:00 -04:00
peelz
08836088fb
Refactor hooking API
...
This completely changes how method patching works under the hood. Unlike
the previous API (`Hook.HookMethod`), the new API (`Hook.Patch`)
generates a Harmony patch method at runtime, using IL generation.
This fixes methods with ByRef (out/ref) parameters getting silently corrupted
due to the ByRef semantics being lost when passed through the `object[] __args`
parameter.
This new API also makes it possible to:
- modify parameters (including ByRef params)
- change the return value to `null` (old API would use `return nil`
for Harmony control flow)
- prevent execution of the original method (and other harmony
patches), independently of modifying the return value
2022-08-09 17:50:00 -04:00
peelz
768abd5ce1
Remove LuaResult
2022-08-09 17:50:00 -04:00
EvilFactory
1b020ff99e
don't prevent further cs mods from being executed if one of them has a runtime error
2022-07-25 09:25:06 -03:00
Evil Factory
8153e4af0c
print out to the console if the content package Lua folder is being used or not
2022-07-08 19:44:23 -03:00
Evil Factory
e73cd0f398
fix crash if a cs mod errors in the dispose method
2022-07-07 09:52:29 -03:00
Evil Factory
e5d4a38fd7
minor refactor to CsScriptLoader plus fixed source category regex not working as expected with some paths
2022-07-05 17:47:52 -03:00
Evil Factory
4a706c504a
debug check for weird timer crash
2022-06-29 20:22:33 -03:00
Evil Factory
3418132b90
fix compile error
2022-06-29 17:08:33 -03:00
Evil Factory
20dabf502a
cleanup
2022-06-29 16:48:34 -03:00
Evil Factory
64c81146fb
added PerformanceCounter
2022-06-19 11:50:51 -03:00
Evil Factory
a2f8d0019f
fix threading issues with initialization
2022-06-17 14:29:10 -03:00
Evil Factory
ed1fbdbe5e
Potential fix for threading issues and added CSActive var
2022-06-09 16:02:18 -03:00
Evil Factory
7ee81aca24
fix formatting
2022-05-21 12:48:35 -03:00
Evil Factory
4078fe024b
ExecutionNumber variable that counts how many times lua has been executed
2022-05-19 16:45:00 -03:00
Evil Factory
74bf5d12ca
added Steam.DownloadWorkshopItem and Steam.GetWorkshopItem
2022-05-17 19:15:44 -03:00
Evil Factory
11220bcff2
why are we manually collecting GC in cs
2022-05-07 14:20:16 -03:00
Evil Factory
64f0e2f137
Fixes for PR #80
2022-05-06 13:10:50 -03:00
Cintique
d244869377
Fix blocking issue in LuaCsTimer
...
Logic for scheduling actions in `LuaCsHook` (see `Enqueue()` and `Update()`) caused tasks with long delays to block the execution of tasks with shorter delays.
Moved logic for `Timer.Wait()` from `LuaCsHook` to `LuaCsTimer` and corrected the blocking issue.
2022-05-06 15:43:17 +10:00
Jacobin
87550af37d
lua.LoadFile -> lua.LoadString
2022-05-05 10:23:17 +10:00
Evil Factory
bbea195e7d
fix formatting in lua require and better error handling with dofile,loadfile,etc
2022-05-04 08:50:17 -03:00
Evil Factory
95a9c618e6
fix naming
2022-05-04 08:45:05 -03:00
Jacobin
43f172a190
Remove exception handling on Require
...
This was just eating exceptions; exceptions should instead propagate to a more appropriate handler (`pcall` should now work).
2022-05-04 11:37:44 +10:00
Evil Factory
9b9bfa7440
whoops
2022-05-02 19:33:42 -03:00
Evil Factory
79daf2ed32
better error handling
2022-05-02 16:36:55 -03:00
Evil Factory
3f221c0d23
fix nullable errors
2022-04-29 17:58:56 -03:00
Evil Factory
af47136bbd
use cs package from backup packages
2022-04-29 14:00:53 -03:00
Oiltanker
e5215fb976
Cs source folder filter
2022-04-28 17:13:13 +03:00
Evil Factory
2c1329fa36
we don't actually need to check for threads if theres only one (multiplayer)
2022-04-24 00:01:43 -03:00
Evil Factory
e799eed64e
don't call stop hook if we are not in the main thread anymore (likely caused by the exiting of the program)
2022-04-22 16:26:33 -03:00
Evil Factory
e77ef4de26
Check thread access before executing any Lua function, if thats the case, throw a warning and ignore
2022-04-22 15:53:44 -03:00
Evil Factory
fd0c3ba19d
Merge branch 'unstable-tests'
2022-04-21 11:21:30 -03:00
Evil Factory
5946a4c043
fix package names
2022-04-20 14:20:38 -03:00
Evil Factory
6246588072
change package name
2022-04-20 13:17:03 -03:00
zhurengong
7c4d7d374b
some improves and fixes:
...
1. should get the last loadded aseembly by checking its version instead of reversing.
2. fixed throw an exception when CsScriptRunner run the second time.
3. an argument carried by an UnregisterType called somewhere have had been accidentally removed.
2022-04-20 14:56:32 +08:00
Evil Factory
7a440e009b
add Cs package check back and fix typos
2022-04-19 16:59:02 -03:00
Oiltanker
df83b1904e
rebase to origin/unstable-tests
2022-04-19 22:39:05 +03:00
Oiltanker
da251099a3
working serialization + cs mods one-time warning
2022-04-19 22:35:08 +03:00
Evil Factory
ce85d50dbf
prioritize enabled package
2022-04-19 13:31:25 -03:00
Evil Factory
8f79054537
only use package if enabled
2022-04-19 13:29:19 -03:00
zhurengong
6e0eae141b
fixed assembly can't be unloaded
2022-04-19 15:45:51 +08:00
Jacobin
72063cdf93
Update require() behaviour
...
The behaviour of `require()` has been changed to align more closely with standard Lua (caching return results).
2022-04-19 15:20:52 +10:00
Oiltanker
767ff55604
fixes and custom serialization
2022-04-18 15:52:46 +03:00
Evil Factory
bab2a88533
cs print message
2022-04-17 15:13:12 -03:00
Evil Factory
edb665a22c
only run cs mods if package is present
2022-04-17 15:09:24 -03:00
Evil Factory
6277a6ce5d
Merge pull request #58 from oiltanker/unstable-tests
...
cs script runner + mod store + cs-lua interface
2022-04-17 14:31:44 -03:00
Evil Factory
6da4481c83
fix names
2022-04-17 13:03:24 -03:00