| Create SSCSM skeleton and scripting (#15818) Contents: * Adds a SSCSM controller and environment skeleton * SSCSMs run in a separate thread, not yet in a separate process. API calls will later happen as IPC calls, this is already part of the software architecture. * Adds a scripting env for SSCSM * It's not yet populated with luanti API functions * Should include only safe functions * Clock precision (`core.get_us_time()` and `os.clock()`) is limited to 20 us. 20 us was the value, firefox used as first response to the spectre attacks. now it's 100 us or 5 us, depending on whether it's "cross-origin isolated". we only have one origin, so choosing 20 us is probably fine, I guess see also: https://www.mozilla.org/en-US/security/advisories/mfsa2018-01/ https://developer.mozilla.org/en-US/docs/Web/API/Performance/now#security_requirements * other clocks: * os.time() and os.date() only have seconds precision, AFAIK. * dtime is only given once per step, so it's not useful * there might be other ways to build clocks (if we get async envs for sscsm, with a busy loop, for example) * `tostring` is *not* overridden. `tostring({})` and `string.format("%s", {})` give you pointers. (see lj_strfmt_obj) this is not very critical, but attacks could be made harder if we change this. the effort of overwriting is not worth it I think right now * Includes a `sscsm_security.md`, read it * Adds a non-binary setting `enable_sscsm` * Maybe some more tiny stuff. See PR and diffs. --------- Co-authored-by: Jude Melton-Houghton <jwmhjwmh@gmail.com> | 8 个月前 |
| Move sandbox disabling to a command line flag | 20 天前 |
| Fix typos in comments (#17215) | 4 个月前 |
| Fix some compiler warnings (#17548) | 1 个月前 |
| Disable scripting lock check in release builds | 13 天前 |
| In-game settings menu using separate Lua environment (#15614) | 1 年前 |
| Clean up header includes (#16674) | 10 个月前 |
| In-game settings menu using separate Lua environment (#15614) | 1 年前 |
| In-game settings menu using separate Lua environment (#15614) | 1 年前 |
| Fix accepting nil return for get_staticdata() closes #17546 | 1 个月前 |
| Capitalize collisionMoveResult struct | 4 个月前 |
| Don't rely on `lua_next` iterating lists in order This is not guaranteed. If part of the list lives in the hash map (rare), a different order is possible. | 5 个月前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Disable scripting lock check in release builds | 13 天前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Reduce server.h includes in favour of IGameDef (#17262) | 3 个月前 |
| Fix item_OnDrop returned count being ignored when main inv is too full for craft replacements | 2 天前 |
| Client: Introduce GameErrorData for error handling | 4 个月前 |
| Client: Introduce GameErrorData for error handling | 4 个月前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| SSCSM: Wire up item/node definitions (#17326) | 2 个月前 |
| Give more infos to on_timer() callback closes #15817 | 1 年前 |
| Reduce server.h includes in favour of IGameDef (#17262) | 3 个月前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| In-game settings menu using separate Lua environment (#15614) | 1 年前 |
| In-game settings menu using separate Lua environment (#15614) | 1 年前 |
| Clarify that punch toolcaps are not optional (#16720) | 9 个月前 |
| Clarify that punch toolcaps are not optional (#16720) | 9 个月前 |
| Normalize builtin file paths for hash-lookup | 13 天前 |
| Move sandbox disabling to a command line flag | 20 天前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| Replace licensing text in headers (LGPLv2.1) (#15321) | 1 年前 |
| [SSCSM] Remove ContentFeatures copy | 2 个月前 |
| Fix some missing includes | 18 天前 |