ID:2564729
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
Title. My use-case is once again see-through portals: objects on different planes will screw up and disobey the portal's alpha masking and filters, bleeding out onto the surrounding tile. This means things like lighting and certain turfs break portals. So it'd be nice if there was a way to say "no don't KEEP_APART items in my vis_contents"
You can use vis_flags for this. VIS_INHERIT_PLANE will force the object in visual contents to inherit the plane of its container.
Minor issue: VIS_INHERIT_PLANE breaks other vis_contents stuff

In response to Steamp0rt
I'm not sure why it's broken though; the screenshot doesn't tell me that.

I don't see changing plane break-out behavior as a viable option, because planes should interfere with KEEP_TOGETHER. If they didn't there would be a lot of problems. with the way things are grouped, and subsequently sorted.
the screenshot is showing broken z-level transitions: the end of each z-level is lined with tiles that have the tiles on the adjacent z-level in vis_contents for seamless transitions. plane brake thwia nrowmn reason
In response to Steamp0rt
I'm still not understanding a use case where it would make sense to try to force objects from another plane to be part of a KT group. The behavior is the way it is for good reason, but if I understand why you're trying to do this I might be able to come up with a better option.
In response to Lummox JR
Lummox JR wrote:
I'm still not understanding a use case where it would make sense to try to force objects from another plane to be part of a KT group. The behavior is the way it is for good reason, but if I understand why you're trying to do this I might be able to come up with a better option.

See-through portals, which place the target turf, which may contain MANY types of things (such as lighting objects) in it's vis_contents. The portal has KEEP_TOGETHER and an alpha mask to constrain it's contents into the portal.
The lighting objects just can't work for that. If they were part of the KT group they wouldn't act like lighting objects anymore anyway, and for the same reason the alpha mask won't handle them either.

For your situation, I think you need two objects render targets with separate alpha masks: one on the main plane, one on the lighting plane. However, it occurs to me that there's currently no way to limit vis_contents to only the items in a single plane and you would need that for the workaround to work.

Thus I think the solution is a new vis_flags value VIS_SAME_PLANE which applies to the parent and filters objects that are not on that plane. This would allow separate masking objects with the same vis_contents to work.