ID:2393314
 
Code:
        Click()

if(alert(usr,"Are you finished making your icon?","Complete Icon","Yes","No") == "No") return

var/icon/MY_ICON_DISK
var/icon/MY_ICON_EXTRA3
var/icon/MY_ICON_EXTRA2
var/icon/MY_ICON_EXTRA1
var/icon/MY_ICON_HAIR
var/icon/MY_ICON_SHIRT
var/icon/MY_ICON_SHOES
var/icon/MY_ICON_PANTS
var/icon/MY_ICON_EYES
var/icon/MY_ICON
var/icon/MY_ICON_SHIRT_U
var/icon/MY_ICON_EXTRA1_U
var/icon/MY_ICON_EXTRA2_U
var/icon/MY_ICON_EXTRA3_U
var/icon/MY_ICON_DISK_U

for(var/obj/HUD/Build/DISPLAY/BASE_ICON_DISK/N in usr.client.screen)
MY_ICON_DISK = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA3/N in usr.client.screen)
MY_ICON_EXTRA3 = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA2/N in usr.client.screen)
MY_ICON_EXTRA2 = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA1/N in usr.client.screen)
MY_ICON_EXTRA1 = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_HAIR/N in usr.client.screen)
MY_ICON_HAIR = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_SHIRT/N in usr.client.screen)
MY_ICON_SHIRT = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_SHOES/N in usr.client.screen)
MY_ICON_SHOES = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_PANTS/N in usr.client.screen)
MY_ICON_PANTS = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EYES/N in usr.client.screen)
MY_ICON_EYES = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON/N in usr.client.screen)
MY_ICON = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_SHIRT_U/N in usr.client.screen)
MY_ICON_SHIRT_U = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA1_U/N in usr.client.screen)
MY_ICON_EXTRA1_U = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA2_U/N in usr.client.screen)
MY_ICON_EXTRA2_U = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_EXTRA2_U/N in usr.client.screen)
MY_ICON_EXTRA3_U = icon(N.icon)
for(var/obj/HUD/Build/DISPLAY/BASE_ICON_DISK_U/N in usr.client.screen)
MY_ICON_DISK_U = icon(N.icon)

var/icon/my_icon = MY_ICON_DISK_U

my_icon.Blend(MY_ICON_EXTRA3_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA2_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA1_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHIRT_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EYES,ICON_OVERLAY)
my_icon.Blend(MY_ICON_PANTS,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHOES,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHIRT,ICON_OVERLAY)
my_icon.Blend(MY_ICON_HAIR,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA1,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA2,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA3,ICON_OVERLAY)
my_icon.Blend(MY_ICON_DISK,ICON_OVERLAY)

usr.icon = my_icon
usr.icon_state = "XYZ"


Problem description:
A side note, All icons in my system im using for this code have 2 icon states in them. "XYZ" and "XYZ_BATTLE". "XYZ" is the player's normal state and "XYZ_BATTLE" state is the state they change to while fighting.

So I'm putting together a custom icon system for my game and I'm having some issues with the coding here.

I use an interface for the system which is in the client.screen

Im trying to make a system here that wont use actual overlays and I have reasons for that so I'm using the Blend() proc to create a single icon.

It combines 15 different icons from the system in a specific order to avoid layering issues.

The interface I've built for this seems to be working fine. Those objects its referencing in this code will display their icons properly on screen.

This coding here is for the click on the OK button to finish the icon.

What this code is SUPPOSE to do is...

-Create a list of 15 icon vars.
-Search the user's client.screen for each of the obj it needs
-Assign each of these obj's icons to the associated icon var
-Create an icon var to work on with the blend proc (my_icon)
-Assign the lowest layer icon (MY_ICON_DISK_U) as my_icon to start with
-Run the Blend() proc on each of the 14 other icons, starting with the lowest layer and working up to the top.
-Change the user's icon in to the completed icon.
-Set the user's icon state to the correct icon state("XYZ")
-The final user's icon should be a layered combination of all 15 icons with an "XYZ" state and a "XYZ_BATTLE" state.

Im not getting any errors when I run the code, but my end result is just a user with a blank icon.

When I try to export the icon.

If I try to export the finalized icon, it's just 32x32 icon with 1 blank unnamed icon state, which is weird because my icons in this system are all 32x48.

Can anyone see what I'm doing wrong here?
            var/icon/my_icon = icon('Builder - Blank.dmi')

my_icon.Blend(MY_ICON_DISK_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA3_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA2_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA1_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHIRT_U,ICON_OVERLAY)
my_icon.Blend(MY_ICON,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EYES,ICON_OVERLAY)
my_icon.Blend(MY_ICON_PANTS,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHOES,ICON_OVERLAY)
my_icon.Blend(MY_ICON_SHIRT,ICON_OVERLAY)
my_icon.Blend(MY_ICON_HAIR,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA1,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA2,ICON_OVERLAY)
my_icon.Blend(MY_ICON_EXTRA3,ICON_OVERLAY)
my_icon.Blend(MY_ICON_DISK,ICON_OVERLAY)

usr.icon = icon(my_icon)
usr.icon_state = "XYZ"


i made these changes and it's working fine now.