ID:477297
 
Not Feasible
Applies to:DM Language
Status: Not Feasible

Implementing this feature is not possible now or in the foreseeable future
Well, can't find a good name for this one, though!

Would be nice to be able to do something like this:

var/icon/MyIcon = Player.icon;
MyIcon.DrawBoxes[1].setRGB(rgb(255, 255, 255));
MyIcon.DrawBoxes[1].setX1(15);
MyIcon.DrawBoxes[1].setX2(15);
MyIcon.DrawBoxes[1].setY1(15);
MyIcon.DrawBoxes[1].setY2(15);
world << MyIcon.DrawBoxes[1].x1;
world << MyIcon.DrawBoxes[1].x2;
world << MyIcon.DrawBoxes[1].y1;
world << MyIcon.DrawBoxes[1].y2;


Explain: The server should store a list with the DrawBox()es used in the icon. Letting us begin able to check the values of that DrawBox and let us change it, like i showed in example. So for example, if we want to change the rgb() of that DrawBox() we don't have to delete the old one and creating a new one.

This could be also applied to other stuff. Would be something interesing to see here on BYOND.
You could make a few datums:
/icon_pile - contains a list of /shapes and a proc that returns an /icon with all the shapes piled on.
/shape - parent of some built-in shapes like /shape/quad and probably has the variables: layer, x, y, width, height.
BYOND really needs to separate icon operations from visual effects. Things like color, rotation, scaling, and transparency are often just visual effects. If you're not saving the result to a .dmi file it'd be better to apply the effects client-side as a purely visual thing instead of generating an actual icon. That way you can have variables that are used to change an icons color, angle, size, etc. instead of treating that all as icon operations.

Drawing a box would be an icon operation (it's a permanent change to the bitmap) but changing its color would be a visual effect so you could just say "icon.rgb = rgb(0, 0, 255)".
Ter13 resolved issue (Not Feasible)