Three stores, three importers and three pickers that differ only in their type are one of each (#85)
Refactoring round one: HttpFontStore/HttpSoundStore/HttpTextureStore collapse into a generic HttpFileStore over a FileStore contract; fontImport/soundImport/textureImport share assetImport with an ImportKind per sort; ImagePicker/FontPicker/SoundPicker sit on FilePicker and describe only their row. The group/comment drag logic leaves GraphCanvas for annotationDrag.ts (with its own unit test), declaredRows.ts replaces the duplicated row build in particles.ts and shaders.ts, and dead code in font/sound/compile/emission/transform/actions is gone. README: asset list, check count 958, the two-job CI, the Scenes wiki page. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
15bdfdf07a
commit
cc6db5f350
42 files changed
+1375
-1650
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import type { ParticlesAsset } from '../core/model/Asset';
|
||||
import { compileParticles, type ParticlesBuild, particlesFingerprint } from '../core/particles/compile';
|
||||
import { graphFingerprint } from '../core/graph/Graph';
|
||||
import { compileParticles, type ParticlesBuild } from '../core/particles/compile';
|
||||
import { gameClock } from '../core/time';
|
||||
|
||||
/**
|
||||
@@ -22,12 +23,8 @@ export class ParticleLibrary {
|
||||
this.frozenAt = at;
|
||||
}
|
||||
|
||||
get frozen(): number | null {
|
||||
return this.frozenAt;
|
||||
}
|
||||
|
||||
buildFor(asset: ParticlesAsset): ParticlesBuild {
|
||||
const fingerprint = particlesFingerprint(asset.graph);
|
||||
const fingerprint = graphFingerprint(asset.graph);
|
||||
const cached = this.builds.get(asset.id);
|
||||
if (cached && cached.fingerprint === fingerprint) return cached.build;
|
||||
this.compiles += 1;
|
||||
|
||||
Reference in new issue
Block a user