Commit Graph

77 Commits

Author SHA1 Message Date
fbf70c43b3 [Add] Embedded Lua scripting language.
Over the past couple of commits, the build process now automates the
dependenices you'd normally compile from source.
This commit is focused on laying the foundation for scriptable in-game
commands using Lua.

- sol2 and lua5.4 are the new project dependencies.
- Created a new 'LuaProcessor' class to manage a Lua state and eecute
  scripts.
- The 'CommandProcessor' now contains a 'LuaProcessor' instance.
- Replaced the hardcoded c++ 'ls' command with a system that executes a
  '/bin/ls.lua' script from the Virtual File System.
- Implemented C++ -> Lua bindings for the 'vfs_node' struct, allowing
  Lua scripts to inspect the VFS and perform actions (i.e, list files).
2025-09-21 20:13:43 +01:00
76e61336a1 Fix some fucking weird quirk in a Fedora VM. 2025-09-21 17:30:22 +01:00
03b56b44e4 Explicitly tell linker where to find SDL3_net 2025-09-21 17:10:04 +01:00
274ff9f665 [Fix] SDL3_net has no official release. Use main branch. 2025-09-21 17:04:41 +01:00
019059e209 [Add] Dependency management to build system. 2025-09-21 16:36:45 +01:00
208314f54a [Add] Remote SSH sessions and window management.
This is the beginning of the remote session functionality. It allows
players to connect to different NPC systems via an 'ssh' command.

*Server*
- Can now manage a world of multiple NPC file systems that are
  identified by IP addresses.
- Implemented SSH command to allow connection to remote NPC systems.
  Each remote session is managed via a 'CommandProcessor'.
- 'exit' command causes the remote server to terminate the client
  connection

*Client*
- Terminal can enter a 'remote' state via the SSH command which sends
  subsequent commands to the server.
- the local 'exit' command will close the terminal window.
- Refactored UI object ownership to prevent memory leaks and ensure
  proper cleanup when a window is closed or the terminal application.
2025-09-21 15:22:35 +01:00
0c4a98a03d Fine!! Stupid gitea not recognising orgmode lists. 2025-09-21 01:43:15 +01:00
aae4421819 [Fix] Fix README markdown on git instance? 2025-09-21 01:41:47 +01:00
7376761d36 [Change] Updated README with roadmap. 2025-09-21 01:37:34 +01:00
a73aa4feaf Create hybrid authority model for command processing. 2025-09-21 00:22:04 +01:00
dbe6e437ad [Add] Process cd and ls commands. 2025-09-20 22:23:04 +01:00
92106a3c44 [Add] Client/server networking and 'ls' command. 2025-09-20 18:58:24 +01:00
70f096abc4 [Add] Bound-checked terminal scrolling. 2025-09-20 15:51:55 +01:00
846b8595f4 [Add] Blinking terminal cursor. 2025-09-20 14:13:36 +01:00
2d79aba17a [Add] Window focus and event routing. 2025-09-20 14:05:00 +01:00
8a902d3034 [Add] Desktop and draggable UI windows. 2025-09-20 13:48:12 +01:00
1bce18e993 [Change] Render terminal conte in UI window. 2025-09-20 13:06:13 +01:00
a0c5eab1cf [Add] Implement basic UI windowing system. 2025-09-20 12:30:57 +01:00
92b5f54dbb [Change] Add libfreetype-dev dependency to README 2025-09-20 03:49:52 +01:00
8cc30eaa17 [Add] Implement initial interactive terminal. 2025-09-20 03:46:38 +01:00
f86015736d [Add] Text rendering. 2025-09-20 03:16:59 +01:00
c3ebd0e501 [Add] Initialise SDL and OpenGL window. 2025-09-20 01:39:32 +01:00
3272d126fd [Fix] .gitignore typo 2025-09-20 01:19:53 +01:00
13307f4871 [Add] Generate compilation database. 2025-09-20 01:18:19 +01:00
df755ff1f1 [Add] README 2025-09-20 01:09:03 +01:00
01e6d432a4 [Add] Initial project structure. 2025-09-20 01:03:03 +01:00
53d067c0e0 Initial commit: New project direction. 2025-09-20 00:02:34 +01:00