Would it be possible to give users access to a function that controls the result of concatenation of objects to strings? The current method seems to be that, for non-atoms, it displays their type, and for atoms, it displays their name (with the improper macro, I believe). I do a lot of customization of how things are presented to the user, and I think being able to adjust the default display of said objects would be significantly simpler than using object.show() or object.display() every time I want to show the "correct" data.
This is more for convenience than anything else...
datum
proc
to_text()
return "[type]"
atom
to_text()
return "\improper[name]"
And then later:
mob
var
title
first_name
middle_name
last_name
to_text()
if(title) . += title
if(first_name) . += (. ? " " : null) + first_name
if(middle_name) . += (. ? " " : null) + middle_name
if(last_name) . += (. ? " " : null) + last_name
Greg
title = "Dr."
first_name = "Gregory"
last_name = "House"
// ...
var/mob/mob = new /mob/Greg
world << "[mob] is super cool." // "Dr. Gregory House is super cool."
It can also act as a standard function to change how to present the objects, to make life a little easier.
mob
to_text(show_title=TRUE, show_first_name=TRUE, show_middle_name=TRUE, show_last_name=TRUE) // I'd use flags for this, but to show it a little bit easier...
if(show_title && title) . += title
if(show_first_name && first_name) . += (. ? " " : null) + first_name
if(show_middle_name && middle_name) . += (. ? " " : null) + middle_name
if(show_last_name && last_name) . += (. ? " " : null) + last_name
// ...
var/mob/mob = new /mob/Greg
world << mob.to_text(show_first_name=FALSE, show_middle_name=FALSE) // "Dr. House". more "respectful?"
Other than this, it could be customized to provide more in-depth information on other types...
client
to_text()
return "client:[key]@[address || "DAEMON"]"
And you know, all that jazz.
Not exactly in the feature tracker, but the feature tracker is probably not even read.
Though I'd love for less features and faster processing speed, which opens up flexibility completely by itself.
Hopefully BYOND'll have actual improvements after the upcoming flash client's out and away, which should be getting along better when/if the new website's finished.