ID:137326
 
I want the functions that are available to the icon editor to be incorporated into the DM language. I want to be able to use one dmi file, and flip() rotate() scroll() and invert() it to my heart's desire.

flip() - I want to be able to flip an icon to it's mirror image top to bottom, or right to left.

rotate() - I guess turn() does this already... :-)

scroll() - This is the one I REALLY want! (not that the others aren't desired) I want it to scroll the image x amount of pixels in any of the 4 directions, and have the part that goes out of the icon to either be scrolled from the oppostie edge (as the editor does right now) or just scroll the image off replacing it with the transparent color. I want both of these operations, not either-or! It would be nice to also allow an image to scroll into the icon from off the edge, so it scrolls into view... With this little beauty, so many things become possible... Please add it to THE LIST if it (or something similar) isn't already!

invert() - simply invert the colors...Nothing special here...


~X :::drools at the thought of scrolling icons:::

[EDIT] Ooo! Ooo! Maybe if you scroll() the icon's Z axis, it switches between that icon's states! Yeah, I like that idea...
Xooxer wrote:
invert() - simply invert the colors...Nothing special here...

Ah, but would it also invert the mask, or not? Some people might find it more useful to invert the mask than the colors, and vice-versa.
However, a simple way to invert colors right now is simply to use rgb(255,255,255)-icon.

[EDIT] Ooo! Ooo! Maybe if you scroll() the icon's Z axis, it switches between that icon's states! Yeah, I like that idea...

I don't see how this would work unless state names were reassigned to different icons. Otherwise, you'd have to change an atom's icon_state var--but this function would be for an icon, not an atom.

I don't know how many of the editor's features may eventually make it into the icon code. (Though let me tell you, doing massive amounts of icon arithmetic is the #1 surest way to slow up your game.) I do know that Dantom have placed icon handling near the top of the List. The plan is to create an /icon datum that can access the individual states and perform a few other tasks; beyond that I don't know what format they have in mind.

Lummox JR
In response to Lummox JR
Lummox JR wrote:

The plan is to create an /icon datum that can access the individual states and perform a few other tasks

Yes. There is no reason why any arbitrary operation could not be performed at run-time, once we add a DM object to represent loaded icons. As Lummox JR cautioned, it may not necessarily be optimal to do massive numbers of these operations at run-time, but recent optimizations have made it much more practical than it was.

--Dan
It would be nice to also allow an image to scroll into the icon from off the edge, so it scrolls into view...

You could achieve this by placing the image one tile off of where you want it to scroll into, putting a solid tile over it, and moving it into location.

-AbyssDragon
In response to Dan
I wish for those functions Xooxer asked about and:

a dir var thingy for images(if there isnt one)

and Right Click disablement, I think that is a must

client
Right_Click()
enabled = X

X =

1 for yes
0 for no

and of course Bigger Icons for mobs atleast 32X64

if only it were possible *sigh*
In response to Pillsverry
Pillsverry wrote:
a dir var thingy for images(if there isnt one)

307 introduced the /image datum, which has a dir var, plus the image() function has been altered to allow this (and the layer) to be set at creation time; image.dir was read-only until beta 14, but now that can be changed on demand.

Lummox JR
In response to Lummox JR
It would be useful if the Icon maker automatically ajusted the icon from what ever size it is to ho it would be in
32x 32 form.
In response to Pillsverry
I think this would be a good idea too! I think the current right-click functions should be reworked as follows:

// there is a proc called verbmenu(user,atom,location) and a rClick() proc for right clicks
atom/rClick() // default right-click function
verbmenu(usr,src,src.loc)
// But, this could be reworked...
obj/RedTrainingBooth/rClick()
if(istype(usr,/mob/RedSpy))
verbmenu() // to let them choose from verbs
else
usr.Hack(src) // to automatically hack on right-click, becuase they are not on the red team and cannot do anything else
mob/GreenSpy/proc/Hack(var/atom/A as atom)
set hidden = 1 // now, we can hide the hack() command with our right click and make it so that you never have to see the "Better to hack your enemy's machines!" message ever again!

I would like this very much, Dantom and Skysaw!
In response to Super saiyan3
Super saiyan3 wrote:
It would be useful if the Icon maker automatically ajusted the icon from what ever size it is to ho it would be in
32x 32 form.

That, or if it could split up icons automatically into various states.

Lummox JR