ID:2106042
 
Applies to:Dream Maker
Status: Open

Issue hasn't been assigned a status value.
It would be amazing if we could speciy variables on objects which override the normal appearance variables when viewed through the mapper. These variables would not be compiled into the DMB, but they would be visible inside the object tree (for DM and the command line compiler -o flag).

An example:

Take a look at this snippet from an SS13 map:


As you can see, the airlock is completely obscuring the tile, so you can't immediately see the pipes and wires underneath it. Of course you can right click the tile to see them, but that's cumbersome.

Of course we could set the alpha of the airlock's type to something like 100, which would solve the problem, but it brings some issues up too. First of all we'd need to fix the alpha in New(), not to mention it ruins initial(), is harder to override... it's a big can of worms.

So what I'm suggesting is that we'd have "_mapping" variables for all appearance flags (including name, to organize instances better).

So, we'd set the "_mapping_alpha" variable of the airlocks to 100. In the mapper the airlock becomes transparent and we can easily see the things underneath it, but in game, and to the other code, it looks as if alpha is just the default.

I believe this would add a ton of QoL to mapping.
This would be stripped out compile time?
In response to Monster860
Yes, unless only the object tree is being compiled.
I can definitely see the benefit of something like this, but instead of adding a whole nonsense of new stuff to the instance editor, why not just make it automatically fade out the topmost object on the tile when you mouseover it?
In response to Nadrew
Right, this. What if another pipe underneath was also obscuring something beneath it? Both at 100 alpha would still make it difficult, let alone going a further layer.

What if mousing over something and using ctrl+scroll (Or something) would move you through each atom on the tile, bringing each to the front (This would reset when moving Z levels or exiting out of the map or whatever.)
In response to Nadrew
The case I brought up was just an example. There's many more applications to such a system. (Making invisible objects visible in the mapper, for example)
Or making objects that are built from images put in overlays/underlays in new having a good placeholder sprite
+1
Syntax suggestion: Prefixing appearance vars with '@' would cause them to show up only in editor;
/obj/thing
name = "A thing"
@name= "A thing (Spawns zambambos!)"
invisibility = 101
@invisibility= 0
Sounds a lot more elegant indeed.