This should essentially treat the object as though it were a turf for the purposes of drawing.
The object's step_x and step_y, pixel_x, and pixel_y will affect where it is drawn on the map. Its layer and plane will function as though the object were an overlay/underlay. FLOAT_PLANE and FLOAT_LAYER should function as normal.
The object's screen_loc and transform should affect where the object is drawn if the parent object is being drawn from within the screen.
What this feature would allow:
- the ability to design container-based UI elements that can be moved around the screen by changing a single object's screen_loc or transform variable.
- Mutable overlays
- Large, mobile "map" chunks that don't require a ton of processing
- sensible handling of mouse_opacity on overlays.
- visual components
- Complex UI elements like dropdown boxes, scrollpanes, etc. done easily
- Interactable HUD-like objects parented to movable atoms and moving around on the map.
I'm a little unsure if the visual contents going after the images is best, or if image.override should be able to replace those as well. But that's a question that comes up with your idea as well.
The only major drawback I can see to my idea is that I'd have to add circular reference checking like we already have for loc/contents, so an object couldn't include itself in visual contents, directly or otherwise.