Multi-tile entities using composite sprites #237
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.
Blocks
#233 Enhance Entity rendering and positioning capabilities
john/McRogueFace
Reference
john/McRogueFace#237
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?
Summary
Support entities composed of multiple sprite indices, one per occupied tile, allowing different visual representations for different parts of a large entity.
Parent issue: #233
Use Case
A 3×2 ship entity where each tile shows a different part of the ship (bow, stern, mast, hull sections). Or a snake where each body segment is a separate sprite index.
Current Behavior
Entity has single
UISprite spritemember with onesprite_index.Proposed Changes
Extend UIEntity with optional sprite grid:
Modify rendering:
Python API:
Relationship to Other Issues
This builds on the work from "Multi-tile entities using oversized sprites" - the FOV, spatial hash, and frustum culling changes apply to both approaches.
Performance Impact
Future Consideration
The comment in UIEntity.h:40 mentions allowing "any UIDrawable to go there" - this could eventually evolve into entities containing arbitrary UIDrawable children (frames, captions, etc.) for health bars, name tags, equipment overlays.
Files Affected
src/UIEntity.h/cpp- Add sprite_indices, modify property accessorssrc/UIGrid.cpp- Modify entity rendering loop