🦚 Peacock Unified

🏗️ App Invariants

Layer 2 — application architecture · 1,820 documents

IDDocumentSource
app_invariants__ed9fae68a5be3273Webpack configuration for building the production/distribution version of the Spine plugin with both renderers enabled.
app_invariants__0255e4e06316ab77Webpack configuration for building the debug version of the Spine plugin specifically for Canvas rendering.
app_invariants__2bf67135db50f908Webpack configuration for building the production version of the Spine plugin specifically for Canvas rendering.
app_invariants__5a1606b1fed9cd35INVARIANT: Temporal Context Preservation during Dependency Injection SHADOW: The loader must capture, pivot, and restore the global URI state (baseURL, path, prefix) during the mid-flight discovery…
app_invariants__f66237ea64a4ec25INVARIANT: Renderer Singleton Bridge via Host Persistence SHADOW: To prevent GPU resource exhaustion and context collisions, the specialized Spine SceneRenderer must be anchored to the long-lived…
app_invariants__950abefdf4c68db8INVARIANT: Globalized Custom Cache Sovereignty SHADOW: Spine asset lifecycles (Atlases/Textures) are decoupled from the Scene's memory boundary and promoted to the Game-level Custom Cache. This…
app_invariants__99214040025abc4fINVARIANT: Multi-Phase Synchronization Gating SHADOW: The SpineFile MultiFile acts as a synchronization barrier that prevents the system from entering the 'Processing' state until a recursive…
app_invariants__c9f1114d7ba520b8INVARIANT: Explicit Type-Override for Batch Integrity SHADOW: SpineContainers and GameObjects must explicitly overwrite their internal type signature to 'Spine' to force the renderer into a specific…
app_invariants__3d1feb8053fc32e0INVARIANT: Foreign pipeline injection requires mandatory context flushing and state restoration. SHADOW: Direct WebGL rendering through the Spine-specific scene renderer bypasses the standard engine…
app_invariants__5e2f0be0ddee0ab8INVARIANT: Zero-alpha state transitions must trigger immediate bitwise render-graph pruning. SHADOW: To maintain high-pressure frame rates, the system synchronizes the skeletal alpha property with…
app_invariants__1946e54e315c3008INVARIANT: Skeletal state re-initialization must execute a destructive purge of the event listener stack. SHADOW: Spine animation states maintain their own subscription lifecycles. When a new…
app_invariants__28fa1fa3bf45a848INVARIANT: Spatial consistency requires explicit Y-axis reconciliation between Spine-origin and Screen-space. SHADOW: The Spine runtime operates on a bottom-up Y-axis, while the host engine operates…
app_invariants__92515006dbc2630eINVARIANT: Masking boundaries force immediate batch termination and pipeline re-sync. SHADOW: Rendering masks are identified as high-entropy interruptions. In the child-rendering loop, detection of…
app_invariants__a792ed608ebfce37INVARIANT: The effective visual transform (position, rotation, scale) of any renderable Game Object is computed by a multiplicative accumulation of its own local transform, the world transforms of…
app_invariants__4fbd3d2c593b448dINVARIANT: All managed assets (textures, animations, fonts) and generated type definitions (classes, interfaces, namespaces, members) within their respective managers and parsers must possess…
app_invariants__cc8948d3d2b659aeINVARIANT: Raw source code and documentation comments undergo a mandatory, ordered multi-stage transformation process, including initial source mutation (`beforeParse`), doclet refinement…
app_invariants__4705b759a582a148INVARIANT: The core game loop, managed by `TimeStep`, employs mechanisms (delta smoothing, `panicMax` cooldown, explicit pause/resume handling via `_pauseTime`, `pauseDuration`, `_coolDown`) to…
app_invariants__84c03322003a8ecbINVARIANT: All core engine systems (`AnimationManager`, `CacheManager`, `SceneManager`) and per-scene components (`DisplayList`, `UpdateList`, `CameraManager`) adhere to a strict boot, start,…
app_invariants__2d7e4f56f6f96baaINVARIANT: A group's active state dictates its inclusion in the scene's update list. SHADOW: The `active` property of a Group determines if its `preUpdate` method is called by the scene's update…
app_invariants__56f37a39a7ef9d86INVARIANT: A group's membership is managed by an internal Set, ensuring uniqueness and efficient lookups. SHADOW: The `Phaser.Structs.Set` used for `group.children` prevents duplicate GameObjects…
app_invariants__e154a30a9ac4a6dfINVARIANT: Group members are automatically removed from the scene's display and update lists when destroyed, maintaining scene integrity. SHADOW: The `child.on(Events.DESTROY, this.remove, this)`…
app_invariants__0291e28f52d37020INVARIANT: The group's `maxSize` property acts as a hard limit, preventing the addition of new members once the limit is reached. SHADOW: The `isFull()` check before adding members prevents…
app_invariants__6fe4c978f1d27050INVARIANT: The `runChildUpdate` flag controls the execution of `preUpdate` on group members, ensuring targeted updates. SHADOW: Only when `runChildUpdate` is true does the group iterate and call…
app_invariants__6e052683bb13b17cINVARIANT: Group creation methods (`create`, `createMultiple`, `createFromConfig`) respect the `maxSize` constraint, preventing overflow. SHADOW: The checks `if (this.isFull()) { return null; }` and…
app_invariants__3434aec344bf4484INVARIANT: Callbacks (`createCallback`, `removeCallback`, `createMultipleCallback`) are executed during group membership changes, enabling custom side-effects. SHADOW: These callbacks allow for…
app_invariants__a2744ca65223539fINVARIANT: The `active` property of the group itself controls its inclusion in the scene's update list. SHADOW: The `this.on(Events.ADDED_TO_SCENE, this.addedToScene, this);` and…
app_invariants__cc95e11119403e49INVARIANT: An Image's rendering state is intrinsically tied to its texture and frame configuration. SHADOW: The `setTexture(texture, frame)` and `setSizeToFrame()` methods ensure that the Image's…
app_invariants__0978c7f31d35b391INVARIANT: An Image's origin and position are coupled, ensuring transformations are applied relative to a consistent reference point. SHADOW: The `setPosition` and `setOriginFromFrame` calls during…
app_invariants__a8a371645750afd0INVARIANT: A Layer's visual properties (alpha, blendMode, visible) are applied to all its managed children, enforcing a consistent visual context. SHADOW: The `alpha`, `blendMode`, and `visible`…
app_invariants__20680dae39704f00INVARIANT: Layers maintain a strict display list hierarchy, preventing nesting within Containers and enforcing a flat structure at the scene level. SHADOW: The `parentContainer` property is always…
app_invariants__075e8fc89cdd3e94INVARIANT: Layers trigger a depth sort only when their contents or hierarchy changes, optimizing rendering performance. SHADOW: The `sortChildrenFlag` and `queueDepthSort` mechanism ensures that the…
app_invariants__5697f37fccc6eb20INVARIANT: A Mesh's vertex data is managed by a dedicated `faces` array, where each Face comprises three `Vertex` objects. SHADOW: The `faces` array, populated by methods like `addVertices` or…
app_invariants__1dc50bf462188736INVARIANT: Mesh transformation, view, and projection matrices are managed and updated based on dirty flags, optimizing render calculations. SHADOW: The `dirtyCache` mechanism ensures that matrix…
app_invariants__02139d49f82924a5INVARIANT: The `hideCCW` property controls the rendering of faces based on their winding order, ensuring correct 3D visibility. SHADOW: When `hideCCW` is true, faces whose normals point away from…
app_invariants__38221307d2fed6c5INVARIANT: Mesh rendering logic is executed only if `vertices` are present and `willRender` returns true, maintaining rendering efficiency. SHADOW: The `totalFaces === 0` check and the…
app_invariants__dfc955aca9504676INVARIANT: A NineSlice object's dimensions are constrained by its slice parameters, ensuring minimum valid size. SHADOW: The `this.width = Math.max(value, this.leftWidth + this.rightWidth)` and…
app_invariants__94bcad2c6c6d0fb6INVARIANT: Vertex UV coordinates are dynamically adjusted based on the frame's source and the NineSlice object's slice parameters. SHADOW: The `updateUVs` and `updateQuadUVs` methods use the frame's…
app_invariants__823724aadfbc88f2INVARIANT: The `is3Slice` property dictates whether vertical stretching is disabled and the height is fixed to the texture's height. SHADOW: This boolean flag correctly alters the behavior of the…
app_invariants__26e49ec516cdcddaINVARIANT: Each particle's state (position, velocity, life, appearance) is managed by an `EmitterOp` instance for its respective property. SHADOW: The `ops` object holds `EmitterOp` instances for…
app_invariants__f20aeb972f190058INVARIANT: Particle emission and lifecycle are controlled by counters and state flags, ensuring accurate simulation timing. SHADOW: The `counters` array (`flowCounter`, `lifeCurrent`,…
app_invariants__f723db59137841b9INVARIANT: The `alive` and `dead` particle pools maintain a strict separation, ensuring correct particle management. SHADOW: Particles are moved between the `alive` (actively updating) and `dead`…
app_invariants__3f32349a58a9078bINVARIANT: Particle updates are gated by `delayCurrent` and `holdCurrent`, ensuring phased activation and expiration. SHADOW: The `delayCurrent` counter delays the processing of a particle after…
app_invariants__a7cebef0839b1d74INVARIANT: The `ParticleEmitter.update()` method governs the entire lifecycle of all particles managed by the emitter. SHADOW: This method iterates through active particles, applies processors,…
app_invariants__59d82eba5f1e8296INVARIANT: Emission zones (`emitZones`) and death zones (`deathZones`) are processed sequentially during particle lifecycle events. SHADOW: During `particle.fire`, `getEmitZone` selects and…
app_invariants__4986eba17ae5736bINVARIANT: The `ParticleEmitter` manages its own rendering batching and sorting via `alive` and `sortCallback`/`sortProperty`. SHADOW: Before rendering, the `alive` particle array is sorted if a…
app_invariants__a87d6ef057bab642INVARIANT: The `ParticleEmitter`'s transformation matrix is updated to reflect its world position, rotation, and scale. SHADOW: The `getWorldTransformMatrix()` method calculates and caches the…
app_invariants__72cee85accbb0531INVARIANT: The particle counter must be constrained within the bounds of the available points array, irrespective of direction or yoyo state. SHADOW: Failure to constrain the counter leads to…
app_invariants__62591d261d1418a0INVARIANT: The internal length property must accurately reflect the current number of points available for iteration. SHADOW: An inaccurate _length property, especially when decreasing after an…
app_invariants__ca285ff3e0ec8263INVARIANT: The RandomZone must always delegate random point generation to its `source` object. SHADOW: Loss of the source reference or failure to call its `getRandomPoint` method renders the zone…
app_invariants__274fd0d6425f0024INVARIANT: The path follower's `preUpdate` method must always call the underlying `pathUpdate` method to ensure timely position and rotation adjustments along the defined path. SHADOW: Skipping the…