Plugins: prop hunt APIs, and plugin commands in the console lookup

- reskate.entities.blueprints lists the game's object blueprints (meshes only if asked),
  and reskate.entities.bounds gives a blueprint's box, so a mod can pick a prop by list or at random
- Attached objects take upright, turn and ground (a floor found within reach below), the "root"
  joint, and a 6th options argument with solid; spawned props' bodies are found and ghosted
- reskate.skater.hide, reskate.world.pick, and skater.get gives right and switch
- reskate.console.command takes an optional 4th table of subcommands; the console lookup
  suggests plugin commands word by word, and plugin commands lists the subcommands
- objbody: a test command for finding which body setter takes a prop out of collision
This commit is contained in:
AyeZeeBB committed 2026-10-22 00:30:06 -05:00
1 parent c35e9a357b
commit 45346b122c
26 files changed
+1238 -36

No files matched your search

+6 -3
View File
@@ -771,9 +771,12 @@ void Plugin::set_channel(std::string channel) {
channel_hash_ = wire::channel_of(channel_);
}
std::vector<std::pair<std::string, std::string>> Plugin::commands() const {
std::vector<std::pair<std::string, std::string>> result;
for (const auto& [name, command] : commands_) result.emplace_back(name, command.help);
std::vector<CommandInfo> Plugin::commands() const {
std::vector<CommandInfo> result;
for (const auto& [name, command] : commands_) {
result.push_back({name, {}, command.help});
for (const auto& sub : command.subcommands) result.push_back({name + " " + sub.name, sub.args, sub.help});
}
return result;
}