Transform: scale, rotation and mirror as properties, world transform as a matrix chain, oriented colliders (#76)
game-maker / suite (push) Successful in 9m5s
game-maker / suite (push) Successful in 9m5s
Four new rows on sprite, text, collider and container (block TRANSFORM): scale, rotation in degrees clockwise, mirrorX, mirrorY. As properties they get override/reset/apply, loading of old projects, write-back after play and the Properties node for free; camera and behavior have none. The hierarchy composes T*R*S per level (composeAlongChain replaces sumAlongChain), so children rotate and scale with their parent. Reparenting and grouping keep the look (carriedTransform). Drawing goes through placeNode, the gizmo is a polygon, cull and objectRect use the AABB, drags are computed in the parent's system. Colliders are oriented boxes: SAT for box/box, box-circle in the box frame; exitDistance replaces axisSeparation/axisCorrection, moveAndSlide moves along the object's own axes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
f85606427b
commit
016e83c9b5
33 files changed
+1346
-274
No files matched your search
@@ -28,6 +28,7 @@ import type { SceneObject } from '../../core/model/SceneObject';
|
||||
import {
|
||||
COMMON_PROPS,
|
||||
isCommonProp,
|
||||
isTransformProp,
|
||||
type PropertyDef,
|
||||
schemaFor,
|
||||
schemaForObject,
|
||||
@@ -155,6 +156,11 @@ export function buildObjectSection(host: InspectorHost, holderId: string, object
|
||||
});
|
||||
}
|
||||
|
||||
// Turn, size and mirror sit with the position: together they are where the object is.
|
||||
const transform = schemaForObject(project, asset, object).filter((def) => isTransformProp(def.key));
|
||||
if (transform.length > 0) addTitle(host, 'TRANSFORM');
|
||||
for (const def of transform) propertyRow(host, holderId, objectId, asset, def, resolved);
|
||||
|
||||
// Where the object is *drawn* in the viewport, nothing else – for pulling stacked objects apart.
|
||||
addTitle(host, 'EDITOR OFFSET (SCENE VIEW ONLY)');
|
||||
for (const axis of OFFSET_AXES) {
|
||||
|
||||
Reference in new issue
Block a user