feat(sticky): wire StickySprite into SceneManager create/update

This commit is contained in:
Hiren Kangad
2026-03-12 22:09:12 +05:30
parent 92f6200f4b
commit 9fc62dbdc7
+15
View File
@@ -13,6 +13,7 @@ import { AnimatedGifSprite } from './sprites/AnimatedGifSprite';
import { VideoSprite } from './sprites/VideoSprite'; import { VideoSprite } from './sprites/VideoSprite';
import { DrawingSprite } from './sprites/DrawingSprite'; import { DrawingSprite } from './sprites/DrawingSprite';
import { FrameSprite } from './sprites/FrameSprite'; import { FrameSprite } from './sprites/FrameSprite';
import { StickySprite } from './sprites/StickySprite';
import { SpringManager, Spring, PRESETS } from './spring'; import { SpringManager, Spring, PRESETS } from './spring';
import { reparentGroupChildren } from './grouping'; import { reparentGroupChildren } from './grouping';
import { SpatialGrid } from './SpatialGrid'; import { SpatialGrid } from './SpatialGrid';
@@ -341,6 +342,15 @@ export class SceneManager {
break; break;
} }
case 'sticky': {
const stickyData = data as StickyObject;
const sprite = new StickySprite(stickyData);
// Sync auto-computed height back to data
data.h = sprite.computedHeight;
displayObject = sprite;
break;
}
default: default:
displayObject = new Container(); displayObject = new Container();
break; break;
@@ -411,6 +421,11 @@ export class SceneManager {
if (data.type === 'group' && obj instanceof FrameSprite) { if (data.type === 'group' && obj instanceof FrameSprite) {
obj.updateFromData(data as GroupObject); obj.updateFromData(data as GroupObject);
} }
if (data.type === 'sticky' && obj instanceof StickySprite) {
obj.updateFromData(data as StickyObject);
// Sync auto-computed height
data.h = obj.computedHeight;
}
if (data.type === 'image' && obj instanceof ImageSprite) { if (data.type === 'image' && obj instanceof ImageSprite) {
const imgData = data as ImageObject; const imgData = data as ImageObject;
obj.applyCrop(imgData.crop); obj.applyCrop(imgData.crop);