Enhance Entity rendering and positioning capabilities #233
Labels
No labels
Alpha Release Requirement
Bugfix
Demo Target
Documentation
Major Feature
Minor Feature
priority:tier1-active
priority:tier2-foundation
priority:tier3-future
priority:tier4-deferred
Refactoring & Cleanup
system:animation
system:documentation
system:grid
system:input
system:performance
system:procgen
system:python-binding
system:rendering
system:ui-hierarchy
Tiny Feature
workflow:blocked
workflow:needs-benchmark
workflow:needs-documentation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#234 Entity origin offset for oversized sprites
john/McRogueFace
#235 Texture display bounds for non-uniform sprite content
john/McRogueFace
#236 Multi-tile entities using oversized sprites
john/McRogueFace
#237 Multi-tile entities using composite sprites
john/McRogueFace
Reference
john/McRogueFace#233
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
This issue tracks enhancements to the entity/grid rendering system to support more flexible sprite sizing and positioning. The current system has several assumptions that limit creative flexibility:
Current Limitations
Proposed Enhancements
The following sub-issues break down the work:
Entity origin offset - Allow entities to render with pixel offset from their tile position (e.g., 16×24 sprite on 16×16 grid with origin at (0,8))
Texture display bounds - Support textures where sprite content doesn't fill the entire cell (e.g., 32×32 cells containing centered 16×24 sprites)
Multi-tile entities (oversized sprites) - Entities that visually span multiple cells using a single larger sprite
Multi-tile entities (composite sprites) - Entities composed of multiple sprite indices, one per occupied tile
Technical Analysis
See research in conversation - key files affected:
src/UIEntity.h/cpp- Entity position and renderingsrc/UIGrid.cpp:230-248- Entity rendering loopsrc/PyTexture.h/cpp- Sprite creation and sizingsrc/SpatialHash.h- Entity spatial queriessrc/UIEntity.cpp:37-72- FOV computationImplementation Priority
This aligns with the comment in UIEntity.h:40 mentioning plans to "allow any UIDrawable to go there, or multi-tile sprites".