Commit Graph

31 Commits

Author SHA1 Message Date
simoleo89 807efcff8f merge: integrate duckietm/Dev (JSON5 + split-aware gamedata loader)
# Conflicts:
#	packages/session/src/SessionDataManager.ts
#	yarn.lock
2026-05-19 17:01:58 +02:00
medievalshell ae9bc8bfce feat(utils): split-aware gamedata loader with tiered merge
Introduces loadGamedata(url, options?) and mergeGamedata(a, b) in
@nitrots/utils. The loader transparently accepts:

- a single-file URL (legacy) -> parsed as before
- a directory URL ending with '/' -> tier-merged from core/custom/seasonal,
  each tier driven by its own manifest.json5

Merge rules:

- arrays of objects sharing an id key (id, classname, name): merged by id,
  later layers overriding earlier ones
- arrays without an id key: concatenated
- plain objects: recursive merge per key
- anything else: later value wins

All gamedata consumers (FurnitureDataLoader, ProductDataLoader,
EffectAssetDownloadManager, AvatarRenderManager actions+figuredata,
LocalizationManager) are migrated to loadGamedata. Behaviour is unchanged
for single-file URLs, so existing deployments need no config changes;
opt-in to split mode by appending '/' to the URL once the layout is in
place.

README updated with the directory layout, merge table and programmatic
usage example. The companion CLI splitter that produces the core/ tier
from legacy files lives in the Nitro V3 client repo.
2026-05-18 21:19:54 +02:00
duckietm 31df26bd1b 🆕 Added support for JSON5 2026-05-18 16:14:38 +02:00
simoleo89 5ea3201e31 Align with Pixi v8: Filter[] union, WebGLRenderer narrow, ImageLike
Four sites where Pixi v8's stricter typing tripped tsgo:

- AvatarImage: container.filters is typed as 'readonly Filter[] | null'
  in v8 (no longer a single-Filter union). The old fallback branch
  'else container.filters = [container.filters, …]' tried to treat a
  readonly array as a single Filter; collapsed to the array-spread
  path which now covers both undefined and non-empty cases. Added
  Filter to the pixi.js import.
- FurnitureBadgeDisplayVisualization.updateSprite() had a 4-arg
  override (sprite, asset, scale, layerId) of the parent's 2-arg
  signature (scale, layerId). The sprite/asset were never used from
  the parameters — the body only mutated 'sprite'. Refactored to
  fetch the sprite via this.getSprite(layerId) inside the override
  body so the signature matches the base.
- ExtendedSprite: 'renderer.gl' / 'glRenderTarget.resolveTargetFramebuffer'
  exist only on WebGLRenderer / GlRenderTarget (not the WebGPU
  variants). The runtime check 'renderer.type === RendererType.WEBGL'
  guarantees this; cast at the boundary to satisfy the typechecker.
- TextureUtils.generateImage: Pixi v8's Extractor.image() returns the
  union ImageLike (HTMLCanvasElement | HTMLImageElement); the public
  signature promises HTMLImageElement. Cast at return — the Pixi
  default backend returns HTMLImageElement here.
2026-05-11 21:09:59 +02:00
simoleo89 ddb7222b66 chore: bump TypeScript pins to ^6.0.3 across all 12 workspaces + thumbmarkjs 1.9 + add CLAUDE.md
Each workspace package was still pinning `typescript: ~5.5.x` or
`~5.8.2` in its own devDependencies even though the root bumped to 6.0.3
in 60b1143. The pins were dead (yarn 1 hoists from root) but they're
misleading when reading a single package.json. Bring them all to
`^6.0.3` to match the root.

Other:
- @thumbmarkjs/thumbmarkjs 1.8.1 → 1.9.0 (root + communication package)
- yarn.lock regenerated from a clean install (vitest 4 hoisting was
  flaking on the patch vite bump; reverted vite to ^8.0.10)

Adds CLAUDE.md at the repo root: short project context for future
sessions — stack, the 12-workspace layout, the React-friendly v2.1.0
additions (`subscribe()`, `subscribeMessage()`, snapshot getters), build
scripts, and known gotchas (`SessionDataManager.getUserData` does NOT
exist; sendChat* expects 3 args; dispatchEvent is sync).
2026-05-10 21:29:50 +02:00
duckietm 853204a5b8 🆕 Effect selection in user dropdown 2026-04-29 13:23:30 +02:00
duckietm 2c2f03f20e 🔥 Fix Avatar buddy they are now 100% as habbo 2026-04-17 11:48:38 +02:00
duckietm 282fd6f6bd 🆙 New misc clothing 2026-04-16 13:36:17 +02:00
duckietm fdb2f855b0 🆙 Place back Mem optimizing and Username to badge send 2026-04-14 11:36:15 +02:00
duckietm ca5e754b28 🆙 Small Fixes 2026-04-14 11:19:53 +02:00
duckietm 399999f23d 🆙 Memory usage fixes 2026-04-10 11:42:30 +02:00
duckietm 5b3c4ad090 🆙 Small updates 2026-04-03 11:43:58 +02:00
duckietm e57749bbbb 🆙 Fix 2 avatar.mandatory.libraries 2026-04-01 12:31:24 +02:00
duckietm fd74fd323b 🆙 Some minor mem tweaks 2026-03-31 16:03:21 +02:00
DuckieTM 3510322c35 🆙 Fix null error palette_id 2026-03-29 22:03:54 +02:00
duckietm 5aa7ca1077 🔈 Fix: avatar now also speaks & refactor with meaningful names 2026-03-27 09:32:06 +01:00
duckietm b4f54b4891 🆙 Small fix NFT Clothing 2026-03-26 16:29:53 +01:00
duckietm 10df60a3cb 🆕 🐶 have you favorite pet as your best pall next to you 2026-03-25 14:13:10 +01:00
DuckieTM 285c38ad17 🆙 Added animations: Move, Wave, Talk, Sign, Respect, Blow, Laugh, Swim, Float.to default 2026-03-21 19:01:03 +01:00
duckietm 5b139dfef8 🆙 Update better error handeling 2026-03-19 09:40:49 +01:00
duckietm b456def1de 🆙 Fix Sleep & Blinking eye's 2026-03-02 16:52:08 +01:00
DuckieTM 8f5a9f7188 🆙 Patch GlTextureSystem & Fix effects like BBRed
- Monkey-patch the renderer's GlTextureSystem to prevent crashes from destroyed textures
2026-02-07 19:08:39 +01:00
DuckieTM 9c43cb240e 🆙 Fix Effects (enable) 2026-02-07 11:25:38 +01:00
DuckieTM eb4fe80612 🆙 Updates
- Added Test Coverage
- Fix Potential Memory Leaks
2026-01-31 13:21:59 +01:00
DuckieTM d864fe3018 🆙 Update Deps. + WiP 2025-03-15 14:54:10 +01:00
duckietm 14bf0fdcbd 🆙 Fix firework memory leak and update pixi.js 2024-09-13 08:04:35 +02:00
duckietm 1e4f45a107 🆙 the latest updates to Renderer 2024-07-15 10:23:54 +02:00
duckietm bd09ea8b25 🆙 added latest changes 2024-07-04 15:03:26 +02:00
duckietm d5a3a05c40 Updated the renderer V2 2024-04-25 11:35:50 +02:00
duckietm 95bc0045ec Added Color to the Renderer and Avatar update 2024-04-04 09:26:05 +02:00
duckietm b3134ce50b Move to Renderer V2 2024-04-03 09:27:56 +02:00