The open watch (观察) / boundary (边界) items in reports/: 8 fixed, 6 closed with a reason. reports/ is updated in the last commit.
Items
Change
F-005
Ten tile renderers built a new Model… (and the wand renderer) every frame. Each new model also compiles a fresh display list on first render, so this leaked GL lists too. The models are now renderer fields and the textures are static final (tank liquid frames precomputed, the two hyper-node and infuser variants picked by flag). The symboller reads the tile above once
F-006
Creative node: one Random re-seeded per node (setSeed gives the same sequence as new Random(seed)), aura textures precomputed, System.currentTimeMillis() % 1000 instead of Calendar.getInstance() (same millisecond field)
F-010, F-013
Tile booster and vis tube read each neighbour tile once per side instead of two or three times
F-011
Thaumic generator: one tile lookup per side (was up to nine), Loader.isModLoaded("Botania") read once, one stateless Botania bridge instead of a new one per call, direction array static
F-014
Aura packet: array lengths read from the wire are checked against the bytes left in the packet; a bad length fails the decode instead of sizing an array from it
F-016
The ten container GUIs keep their background texture as static final
F-017
The per-packet FMLLog.info("Received!") is gone
Closed without a change: F-007 (the singularity's 128 passes each re-query because explosions inside the pass spawn new singularities and move entities, and each pass also breaks a random block, so hoisting the query changes what it pulls), F-008 (an interval on the item collector changes pickup timing), F-009, F-012 (recipe/seal-combo caches need slot-change invalidation the decompiled tiles don't expose cleanly), F-015 (pre-rolling the explosion changes its timing distribution), F-018 (GUI text width per frame; I could not open these GUIs in the scripted test, so I left them).
Tested in game (full-pack Prism client, scripted, PR jar under the pack's file name, compared with the current pack jar): restorer, infuser, thaumic and dark generators, basic tank, hyper node creator, infuser activator, symboller, crystallizer, creative node, vis conduits and tile booster placed in a row; screenshots match (models, textures, creative-node auras, crystals), FPS 117 vs 116, no new exceptions. Not exercised: the container GUIs (right-click did not open them in the script), singularity, seals.
<!-- claude-projects-attribution -->
_Requested by **Ethyn**_
The open watch (观察) / boundary (边界) items in `reports/`: 8 fixed, 6 closed with a reason. `reports/` is updated in the last commit.
| Items | Change |
|---|---|
| F-005 | Ten tile renderers built a new `Model…` (and the wand renderer) every frame. Each new model also compiles a fresh display list on first render, so this leaked GL lists too. The models are now renderer fields and the textures are `static final` (tank liquid frames precomputed, the two hyper-node and infuser variants picked by flag). The symboller reads the tile above once |
| F-006 | Creative node: one `Random` re-seeded per node (`setSeed` gives the same sequence as `new Random(seed)`), aura textures precomputed, `System.currentTimeMillis() % 1000` instead of `Calendar.getInstance()` (same millisecond field) |
| F-010, F-013 | Tile booster and vis tube read each neighbour tile once per side instead of two or three times |
| F-011 | Thaumic generator: one tile lookup per side (was up to nine), `Loader.isModLoaded("Botania")` read once, one stateless Botania bridge instead of a new one per call, direction array static |
| F-014 | Aura packet: array lengths read from the wire are checked against the bytes left in the packet; a bad length fails the decode instead of sizing an array from it |
| F-016 | The ten container GUIs keep their background texture as `static final` |
| F-017 | The per-packet `FMLLog.info("Received!")` is gone |
Closed without a change: F-007 (the singularity's 128 passes each re-query because explosions inside the pass spawn new singularities and move entities, and each pass also breaks a random block, so hoisting the query changes what it pulls), F-008 (an interval on the item collector changes pickup timing), F-009, F-012 (recipe/seal-combo caches need slot-change invalidation the decompiled tiles don't expose cleanly), F-015 (pre-rolling the explosion changes its timing distribution), F-018 (GUI text width per frame; I could not open these GUIs in the scripted test, so I left them).
**Tested in game** (full-pack Prism client, scripted, PR jar under the pack's file name, compared with the current pack jar): restorer, infuser, thaumic and dark generators, basic tank, hyper node creator, infuser activator, symboller, crystallizer, creative node, vis conduits and tile booster placed in a row; screenshots match (models, textures, creative-node auras, crystals), FPS 117 vs 116, no new exceptions. Not exercised: the container GUIs (right-click did not open them in the script), singularity, seals.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Requested by Ethyn
The open watch (观察) / boundary (边界) items in
reports/: 8 fixed, 6 closed with a reason.reports/is updated in the last commit.Model…(and the wand renderer) every frame. Each new model also compiles a fresh display list on first render, so this leaked GL lists too. The models are now renderer fields and the textures arestatic final(tank liquid frames precomputed, the two hyper-node and infuser variants picked by flag). The symboller reads the tile above onceRandomre-seeded per node (setSeedgives the same sequence asnew Random(seed)), aura textures precomputed,System.currentTimeMillis() % 1000instead ofCalendar.getInstance()(same millisecond field)Loader.isModLoaded("Botania")read once, one stateless Botania bridge instead of a new one per call, direction array staticstatic finalFMLLog.info("Received!")is goneClosed without a change: F-007 (the singularity's 128 passes each re-query because explosions inside the pass spawn new singularities and move entities, and each pass also breaks a random block, so hoisting the query changes what it pulls), F-008 (an interval on the item collector changes pickup timing), F-009, F-012 (recipe/seal-combo caches need slot-change invalidation the decompiled tiles don't expose cleanly), F-015 (pre-rolling the explosion changes its timing distribution), F-018 (GUI text width per frame; I could not open these GUIs in the scripted test, so I left them).
Tested in game (full-pack Prism client, scripted, PR jar under the pack's file name, compared with the current pack jar): restorer, infuser, thaumic and dark generators, basic tank, hyper node creator, infuser activator, symboller, crystallizer, creative node, vis conduits and tile booster placed in a row; screenshots match (models, textures, creative-node auras, crystals), FPS 117 vs 116, no new exceptions. Not exercised: the container GUIs (right-click did not open them in the script), singularity, seals.
🤖 Generated with Claude Code