mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-27 23:07:08 +01:00
Plugins: what the Filmer needs as a plugin: carry, who sees a pose, a step in the camera cycle
PR 343's Filmer becomes a Luau plugin mod (kept in contrib/plugins/filmer) on general APIs instead of
its own C++:
- reskate.skater.carry: something held out in one or both hands and aimed, the body crouched (feet
kept) and hunched over it, turned on the spot after it (Extension/Skater/carry.cpp, from the PR's
filmer_hold.cpp, with tests)
- shown = "everyone" | "others" | "me" on skater.pose, reach and carry: the pose sent to the other
players and the one drawn here are split when asked
- reskate.camera.cycle and the camera_cycle event: a plugin's camera as the last step of the camera
height button's cycle, after first person
- reskate.session.nametags(false) holds the names over the other players off
- board.hide(bone, {others = true}) hides it in the board the others are sent too (a sent-pose filter)
- outfit.set takes hand wear slots; input.bind takes an action with no key of its own
This commit is contained in:
1 parent
8ede361755
commit
118c489fdb
25 files changed
+1449
-89
No files matched your search
@@ -556,6 +556,9 @@ NativeFrame capture_local(std::uintptr_t base, std::uintptr_t client, bool captu
|
||||
cache = {base, client, frame.context, player, frame.entity, frame.parent, component,
|
||||
frame.board_entity};
|
||||
frame.ready = true;
|
||||
// The pose as it is sent, after anyone who changes only what is drawn of the board has had it.
|
||||
if (capture_pose)
|
||||
if (const auto filter = shared().sent_pose_filter.load(std::memory_order_acquire)) filter(component, frame.pose);
|
||||
} catch (const std::exception &e) {
|
||||
cache = {};
|
||||
frame.detail = e.what();
|
||||
@@ -612,6 +615,9 @@ void set_render_pose_listener(RenderPosePublished listener) noexcept {
|
||||
void set_animation_evaluated_listener(AnimationEvaluated listener) noexcept {
|
||||
shared().evaluated_listener.store(listener, std::memory_order_release);
|
||||
}
|
||||
void set_local_sent_pose_filter(LocalSentPoseFilter filter) noexcept {
|
||||
shared().sent_pose_filter.store(filter, std::memory_order_release);
|
||||
}
|
||||
void set_local_pose_filter(LocalPoseFilter filter) noexcept {
|
||||
shared().pose_filter.store(filter, std::memory_order_release);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user