diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index 855ad49c494..a27f7fee103 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -127,14 +127,26 @@ if((head_organ.dna.species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use. hair += i + var/file = file2text("config/custom_sprites.txt") //Pulls up the custom_sprites list + var/lines = splittext(file, "\n") + + for(var/line in lines) // Looks for lines set up as screen:ckey:screen_name + var/list/Entry = splittext(line, ":") // split lines + for(var/i = 1 to Entry.len) + Entry[i] = trim(Entry[i]) // Cleans up lines + if(Entry.len != 3 || Entry[1] != "screen") // Ignore entries that aren't for screens + continue + if(Entry[2] == H.ckey) // They're in the list? Custom sprite time, var and icon change required + hair += Entry[3] // Adds custom screen to list + var/new_style = input(H, "Select a monitor display", "Monitor Display", head_organ.h_style) as null|anything in hair var/new_color = input("Please select hair color.", "Monitor Color", head_organ.hair_colour) as null|color - + if(H.incapacitated()) to_chat(H, "You were interrupted while changing your monitor display.") return if(new_style) - H.change_hair(new_style) + H.change_hair(new_style, 1) // The 1 is to enable custom sprites if(new_color) - H.change_hair_color(new_color) \ No newline at end of file + H.change_hair_color(new_color) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 9655a9c9e17..bdf93fbd4eb 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -890,6 +890,21 @@ icon_state = "hesphiastos_alt_rainbow" models_allowed = list("Hesphiastos Industries alt.") +/datum/sprite_accessory/hair/ipc/fluff + fluff = 1 + +/datum/sprite_accessory/hair/ipc/fluff/lumi_face //Lumi Fluff hair + name = "Lumi Face" + icon_state = "lumi_face" + +/datum/sprite_accessory/hair/ipc/fluff/lumi_blush //Lumi Fluff hair + name = "Lumi Blush" + icon_state = "lumi_blush" + +/datum/sprite_accessory/hair/ipc/fluff/lumi_waiting //Lumi Fluff hair + name = "Lumi Waiting" + icon_state = "lumi_waiting" + /* /////////////////////////////////// / =---------------------------= / diff --git a/config/example/custom_sprites.txt b/config/example/custom_sprites.txt index 471764270d4..45d1d66058b 100644 --- a/config/example/custom_sprites.txt +++ b/config/example/custom_sprites.txt @@ -1,5 +1,7 @@ Each entry should be composed of 2 parts, divided by a colon (:) with no spaces, in order to work. Failure to do so will result in that entry being disregarded by the code. -- The first part should be either "cyborg", "ai", "hologram", "pai", or "drone". This tells the code what type of custom sprite this entry is for. The "ai" option is for AI core displays, while "hologram" is for AI hologram projections. +- The first part should be either "cyborg", "ai", "hologram", "pai", "drone", or "screen". This tells the code what type of custom sprite this entry is for. The "ai" option is for AI core displays, while "hologram" is for AI hologram projections. - The second part should be the ckey of the player this entry is for. This tells the code who it works for and also is used to retrieve the proper sprite for them to use. +- If the entry is a custom screen, it will need a 3rd part which is the screen name. This tells the code which screen to use, as well allows for someone to have more then one custom screen. + example:example \ No newline at end of file diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 099b5199b01..10badae1648 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ