mirror of
https://github.com/Toastconcern/FrameStudio.git
synced 2026-10-29 00:02:23 +01:00
- World > Add > Invisible Wall: a 2 x 2.5 m box (Object role) standing on the floor across the view. Frame Home never draws it; it stops you and is never stood on. - Meta's invisible walls (a solid collider with nothing drawn, 2 m or taller: Cascadia's, Space Station's, Desert Terrace's, Haven's) load as invisible walls instead of surfaces, so the play space they bound holds. - Walk grid: a drawn floor's edge exemption no longer applies within a body's radius of a wall, so a wall through a drawn floor takes that floor away. tools/walktest/wallcheck: walls at every angle never have walkable area inside. - New items land on the home's own surfaces when the spot is beyond the walkable area. - The Planet (World > Add > Planet, Planet Pull) is gone; older files' planet zones still load. - ImGui menus: a safe triangle from where the pointer was on the item to the whole submenu; crossing other items on the way neither opens them nor closes it (resting 0.3 s still does). - Self-test: invisible wall placed, walked into (with and without the area), through a drawn floor, undone (98/98). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
15 lines
798 B
C++
15 lines
798 B
C++
// The world's non-mesh colliders (boxes, spheres, capsules): name, role, size and centre.
|
|
#include "hsl_scene.h"
|
|
#include <cmath>
|
|
#include <cstdio>
|
|
int main(int argc, char** argv) {
|
|
HslScene s; std::string err;
|
|
if (!loadHslScene(std::string(argv[1]), s, err)) return 1;
|
|
for (const WorldCollider& c : s.world.colliders) {
|
|
if (c.kind == WorldCollider::Mesh) continue;
|
|
auto len = [&](int a) { return std::sqrt(c.world[a*4]*c.world[a*4] + c.world[a*4+1]*c.world[a*4+1] + c.world[a*4+2]*c.world[a*4+2]); };
|
|
std::printf(" %-36s kind %d role %d size %.2f x %.2f x %.2f at %.2f, %.2f, %.2f\n", c.name.c_str(), c.kind, c.role,
|
|
2 * c.half[0] * len(0), 2 * c.half[1] * len(1), 2 * c.half[2] * len(2), c.world[12], c.world[13], c.world[14]);
|
|
}
|
|
}
|