Adds CI for missing icon_states (#27063)

* Adds CI for missing icon_states

* yeah

* more fixes

* more fixes

* seems good

* moar

* fix

* yea

* hrtyhrt

* yeah

* WOE
This commit is contained in:
Contrabang
2024-11-14 12:58:06 -05:00
committed by GitHub
parent da630e1b63
commit 8352613d03
74 changed files with 157 additions and 327 deletions
@@ -248,6 +248,7 @@
desc = "a tentacle."
projectile_type = /obj/item/projectile/tentacle
caliber = "tentacle"
icon = 'icons/obj/projectiles.dmi'
icon_state = "tentacle_end"
muzzle_flash_effect = null
muzzle_flash_color = null
+1 -1
View File
@@ -3,7 +3,7 @@
name = "Arcade Game"
desc = "One of the most generic arcade games ever."
icon = 'icons/obj/arcade.dmi'
icon_state = "clawmachine_on"
icon_state = "clawmachine_1_on"
idle_power_consumption = 40
var/tokens = 0
@@ -2,7 +2,7 @@
name = "circulator/heat exchanger"
desc = "A gas circulator pump and heat exchanger. Its input port is on the south side, and its output port is on the north side."
icon = 'icons/obj/atmospherics/circulator.dmi'
icon_state = "circ1-off"
icon_state = "circ8-off"
anchored = TRUE
density = TRUE
can_unwrench = TRUE
@@ -87,7 +87,6 @@
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/hidden
level=1
icon_state="intact-f"
plane = FLOOR_PLANE
layer = GAS_PIPE_HIDDEN_LAYER
@@ -134,6 +133,5 @@
/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/hidden
level=1
icon_state="intact-f"
plane = FLOOR_PLANE
layer = GAS_PIPE_HIDDEN_LAYER
@@ -107,13 +107,6 @@
transfer_prints = TRUE
clipped = TRUE
/obj/item/clothing/gloves/batmangloves
name = "batgloves"
desc = "Used for handling all things bat related."
icon_state = "bmgloves"
item_state = "bmgloves"
item_color="bmgloves"
/obj/item/clothing/gloves/cursedclown
name = "cursed white gloves"
desc = "These things smell terrible, and they're all lumpy. Gross."
+1
View File
@@ -412,6 +412,7 @@
/obj/item/clothing/head/beret/purple
name = "Pierson Family Beret"
desc = "A purple beret, with a small golden crescent moon sewn onto it."
icon = 'icons/obj/clothing/hats.dmi'
icon_state = "beret_purple"
item_state = "purpleberet"
@@ -32,6 +32,7 @@
//Unathi space gear. Huge and restrictive.
/obj/item/clothing/head/helmet/space/unathi
icon = 'icons/obj/clothing/species/unathi/hats.dmi'
icon_state = null
species_restricted = list("Unathi")
sprite_sheets = list(
"Unathi" = 'icons/mob/clothing/species/unathi/helmet.dmi'
@@ -46,6 +47,7 @@
/obj/item/clothing/suit/space/unathi
icon = 'icons/obj/clothing/species/unathi/suits.dmi'
icon_state = null
species_restricted = list("Unathi")
sprite_sheets = list(
"Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi'
@@ -81,6 +83,7 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
dyeable = FALSE
icon = 'icons/obj/clothing/species/vox/suits.dmi'
icon_state = null
species_restricted = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi')
@@ -90,6 +93,7 @@
flags = STOPSPRESSUREDMAGE
flags_cover = HEADCOVERSEYES
icon = 'icons/obj/clothing/species/vox/hats.dmi'
icon_state = null
species_restricted = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi')
+30 -30
View File
@@ -2,7 +2,7 @@
/obj/item/clothing/head/helmet/space/hardsuit
name = "hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
icon_state = "hardsuit0-engineering"
icon_state = null
item_state = "eng_helm"
max_integrity = 300
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 5, RAD = 150, FIRE = 50, ACID = 150)
@@ -143,7 +143,7 @@
/obj/item/clothing/suit/space/hardsuit
name = "hardsuit"
desc = "A special space suit for environments that might pose hazards beyond just the vacuum of space. Provides more protection than a standard space suit."
icon_state = "hardsuit-engineering"
icon_state = null
item_state = "eng_hardsuit"
max_integrity = 300
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 5, RAD = 150, FIRE = 50, ACID = 150)
@@ -451,37 +451,37 @@
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/soviet/commander
//Security
/obj/item/clothing/head/helmet/space/hardsuit/security
name = "security hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
icon_state = "hardsuit0-sec"
item_state = "sec_helm"
item_color = "sec"
armor = list(MELEE = 25, BULLET = 10, LASER = 20, ENERGY = 5, BOMB = 5, RAD = 50, FIRE = 150, ACID = 150)
// /obj/item/clothing/head/helmet/space/hardsuit/security
// name = "security hardsuit helmet"
// desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
// icon_state = "hardsuit0-sec"
// item_state = "sec_helm"
// item_color = "sec"
// armor = list(MELEE = 25, BULLET = 10, LASER = 20, ENERGY = 5, BOMB = 5, RAD = 50, FIRE = 150, ACID = 150)
/obj/item/clothing/suit/space/hardsuit/security
name = "security hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
icon_state = "hardsuit-sec"
item_state = "sec_hardsuit"
armor = list(MELEE = 25, BULLET = 10, LASER = 20, ENERGY = 5, BOMB = 5, RAD = 50, FIRE = 150, ACID = 150)
allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank/internals,/obj/item/melee/baton,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/restraints/handcuffs)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
// /obj/item/clothing/suit/space/hardsuit/security
// name = "security hardsuit"
// desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
// icon_state = "hardsuit-sec"
// item_state = "sec_hardsuit"
// armor = list(MELEE = 25, BULLET = 10, LASER = 20, ENERGY = 5, BOMB = 5, RAD = 50, FIRE = 150, ACID = 150)
// allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank/internals,/obj/item/melee/baton,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/restraints/handcuffs)
// helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
/obj/item/clothing/head/helmet/space/hardsuit/security/hos
name = "head of security's hardsuit helmet"
desc = "A special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
icon_state = "hardsuit0-hos"
item_color = "hos"
armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 50, FIRE = INFINITY, ACID = INFINITY)
// /obj/item/clothing/head/helmet/space/hardsuit/security/hos
// name = "head of security's hardsuit helmet"
// desc = "A special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
// icon_state = "hardsuit0-hos"
// item_color = "hos"
// armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 50, FIRE = INFINITY, ACID = INFINITY)
/obj/item/clothing/suit/space/hardsuit/security/hos
name = "head of security's hardsuit"
desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
icon_state = "hardsuit-hos"
armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 50, FIRE = INFINITY, ACID = INFINITY)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
jetpack = /obj/item/tank/jetpack/suit
// /obj/item/clothing/suit/space/hardsuit/security/hos
// name = "head of security's hardsuit"
// desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
// icon_state = "hardsuit-hos"
// armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 50, FIRE = INFINITY, ACID = INFINITY)
// helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
// jetpack = /obj/item/tank/jetpack/suit
//Singuloth armor
+1 -20
View File
@@ -723,18 +723,6 @@
item_state = "leathercoat"
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/browncoat
name = "brown leather coat"
desc = "A long, brown leather coat."
icon_state = "browncoat"
item_state = "browncoat"
/obj/item/clothing/suit/neocoat
name = "black coat"
desc = "A flowing, black coat."
icon_state = "neocoat"
item_state = "neocoat"
/obj/item/clothing/suit/browntrenchcoat
name = "brown trench coat"
desc = "It makes you stand out. Just the opposite of why it's typically worn. Nice try trying to blend in while wearing it."
@@ -792,14 +780,6 @@
name = "white tracksuit"
icon_state = "trackjacketwhite_open"
//actual suits
/obj/item/clothing/suit/creamsuit
name = "cream suit"
desc = "A cream coloured, genteel suit."
icon_state = "creamsuit"
item_state = "creamsuit"
/obj/item/clothing/suit/jacket/miljacket
name = "olive military jacket"
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable. This one comes in olive."
@@ -1194,6 +1174,7 @@
/obj/item/clothing/suit/fluff/noble_coat
name = "noble coat"
desc = "The livid blues, purples and greens are awesome enough to evoke a visceral response in you; it is not dissimilar to indigestion."
icon = 'icons/obj/clothing/suits.dmi'
icon_state = "noble_coat"
item_state = "noble_coat"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+1
View File
@@ -135,6 +135,7 @@
/obj/item/clothing/under/psysuit
name = "dark undersuit"
desc = "A thick, layered grey undersuit lined with power cables. Feels a little like wearing an electrical storm."
icon = 'icons/obj/clothing/under/costumes.dmi'
icon_state = "psysuit"
item_state = "psysuit"
item_color = "psysuit"
+3 -1
View File
@@ -186,7 +186,7 @@
/obj/item/clothing/glasses/sunglasses_fake/fluff/kaki
name = "broken thermonocle"
desc = "A weathered Vox thermonocle, doesn't seem to work anymore."
icon_state = "thermoncle"
icon_state = "thermonocle"
/// Rapidvalj: Hakikarahiti
/obj/item/fluff/rapid_wheelchair_kit
@@ -216,6 +216,7 @@
name = "custom zippo"
desc = "A custom made zippo lighter."
icon = 'icons/obj/custom_items.dmi'
icon_state = null
/// GodOfOreos: Jason Conrad
/obj/item/lighter/zippo/fluff/purple
@@ -1770,6 +1771,7 @@
name = "fluff ring"
desc = "Someone forgot to set this fluff item's description, notify a coder!"
icon = 'icons/obj/custom_items.dmi'
icon_state = null
fluff_material = TRUE
/obj/item/clothing/gloves/ring/fluff/update_icon_state()
-15
View File
@@ -1,15 +0,0 @@
/datum/event/meteor_wave/goreop/announce()
var/meteor_declaration = "MeteorOps have declared their intent to utterly destroy [station_name()] with their own bodies, and dares the crew to try and stop them."
GLOB.major_announcement.Announce(meteor_declaration, "Declaration of 'War'", 'sound/effects/siren.ogg')
/datum/event/meteor_wave/goreop/setup()
waves = 3
/datum/event/meteor_wave/goreop/get_meteor_count()
return 5
/datum/event/meteor_wave/goreop/get_meteors()
return GLOB.meteors_ops
/datum/event/meteor_wave/goreop/end()
GLOB.minor_announcement.Announce("All MeteorOps are dead. Major Station Victory.", "MeteorOps")
@@ -266,15 +266,6 @@ do {\
snack_overlays = 0
top = 0
/obj/item/food/customizable/candy/bar
name = "flavored chocolate bar"
desc = "Made in a factory downtown."
icon_state = "barcustom"
baseicon = "barcustom"
basename = "flavored chocolate bar"
snack_overlays = 0
top = 0
/obj/item/food/customizable/candy/sucker
name = "flavored sucker"
desc = "Suck suck suck."
@@ -1242,7 +1242,7 @@
name = "grape tart"
desc = "A tasty dessert that reminds you of the wine you didn't make."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "grape_tart"
icon_state = "grapetart"
trash = /obj/item/trash/plate
filling_color = "#8c00ff"
bitesize = 3
-1
View File
@@ -313,7 +313,6 @@
name = "hand of cards"
desc = "Some playing cards."
icon = 'icons/obj/playing_cards.dmi'
icon_state = "empty"
w_class = WEIGHT_CLASS_TINY
actions_types = list(/datum/action/item_action/remove_card, /datum/action/item_action/discard)
@@ -74,7 +74,8 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
name = "marker beacon"
desc = "A Prism-brand path illumination device. It is anchored in place and glowing steadily."
icon = 'icons/obj/lighting.dmi'
icon_state = "marker"
icon_state = "markerrandom"
base_icon_state = "marker"
layer = BELOW_OPEN_DOOR_LAYER
armor = list(MELEE = 50, BULLET = 75, LASER = 75, ENERGY = 75, BOMB = 25, RAD = 100, FIRE = 25, ACID = 0)
max_integrity = 50
@@ -104,7 +105,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
/obj/structure/marker_beacon/update_icon_state()
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
picked_color = pick(GLOB.marker_beacon_colors)
icon_state = "[initial(icon_state)][lowertext(picked_color)]-on"
icon_state = "[base_icon_state][lowertext(picked_color)]-on"
set_light(light_range, light_power, GLOB.marker_beacon_colors[picked_color])
/obj/structure/marker_beacon/attack_hand(mob/living/user)
@@ -150,6 +151,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
name = "docking beacon"
desc = "An illumination device used to designate docking ports. It is anchored in place and pulsing steadily."
icon_state = "dockingmarker"
base_icon_state = "dockingmarker"
flags = NODECONSTRUCT
/obj/structure/marker_beacon/dock_marker/update_icon_state()
@@ -75,6 +75,7 @@
plane = FULLSCREEN_PLANE
layer = FLASH_LAYER
icon = 'icons/effects/ore_visuals.dmi'
icon_state = null
appearance_flags = 0 //to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are
duration = 35
pixel_x = -224
+12 -6
View File
@@ -2,7 +2,8 @@
gender = PLURAL
layer = PROJECTILE_HIT_THRESHHOLD_LAYER //sporangiums up don't shoot
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "l_mushroom"
icon_state = "l_mushroom1"
base_icon_state = "l_mushroom"
name = "large mushrooms"
desc = "A number of large mushrooms, covered in a faint layer of ash and what can only be spores."
anchored = TRUE
@@ -24,7 +25,7 @@
/obj/structure/flora/ash/Initialize(mapload)
. = ..()
base_icon = "[icon_state][rand(1, 4)]"
base_icon = "[base_icon_state][rand(1, 4)]"
icon_state = base_icon
/obj/structure/flora/ash/proc/harvest(user)
@@ -80,7 +81,8 @@
regrowth_time_low = 4200
/obj/structure/flora/ash/leaf_shroom
icon_state = "s_mushroom"
icon_state = "s_mushroom1"
base_icon_state = "s_mushroom"
name = "leafy mushrooms"
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
harvested_name = "leafless mushrooms"
@@ -96,7 +98,8 @@
regrowth_time_high = 6000
/obj/structure/flora/ash/cap_shroom
icon_state = "r_mushroom"
icon_state = "r_mushroom1"
base_icon_state = "r_mushroom"
name = "tall mushrooms"
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
harvested_name = "small mushrooms"
@@ -111,7 +114,8 @@
regrowth_time_high = 5400
/obj/structure/flora/ash/stem_shroom
icon_state = "t_mushroom"
icon_state = "t_mushroom1"
base_icon_state = "t_mushroom"
name = "numerous mushrooms"
desc = "A large number of mushrooms, some of which have long, fleshy stems. They're radiating light!"
light_range = 1.5
@@ -128,7 +132,8 @@
regrowth_time_high = 6000
/obj/structure/flora/ash/cacti
icon_state = "cactus"
icon_state = "cactus1"
base_icon_state = "cactus"
name = "fruiting cacti"
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
harvested_name = "cacti"
@@ -156,6 +161,7 @@
name = "large rock"
desc = "A volcanic rock. Pioneers used to ride these babies for miles."
icon_state = "basalt1"
base_icon_state = "basalt"
density = TRUE
resistance_flags = FIRE_PROOF
harvest = /obj/item/stack/ore/glass/basalt
@@ -344,6 +344,7 @@
desc = "a hook."
projectile_type = /obj/item/projectile/hook
caliber = "hook"
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "hook"
muzzle_flash_effect = null
@@ -1,7 +1,7 @@
/obj/item/robot_module
name = "robot module"
icon = 'icons/obj/module.dmi'
icon_state = "std_module"
icon_state = "std_mod"
w_class = 100
item_state = "electronic"
flags = CONDUCT
@@ -560,6 +560,7 @@ Difficulty: Hard
/obj/effect/temp_visual/bubblegum_hands
icon = 'icons/effects/bubblegum.dmi'
icon_state = null
duration = 9
/obj/effect/temp_visual/bubblegum_hands/rightthumb
+1 -1
View File
@@ -107,7 +107,7 @@
/obj/item/holder/pai
name = "pAI"
desc = "It's a little robot."
icon_state = "pai"
icon_state = null
/obj/item/holder/mouse
name = "mouse"
-1
View File
@@ -1,7 +1,6 @@
/obj/item/mod/construction
desc = "A part used in MOD construction. You could insert it into a MOD shell."
icon = 'icons/obj/clothing/modsuit/mod_construction.dmi'
icon_state = "rack_parts"
/obj/item/mod/construction/helmet
name = "MOD helmet"
+1 -1
View File
@@ -8,7 +8,7 @@
/obj/item/mod/control
name = "MOD control unit"
desc = "The control unit of a Modular Outerwear Device, a powered suit that protects against various environments."
icon_state = "mod_control"
icon_state = null
item_state = "mod_control"
base_icon_state = "control"
w_class = WEIGHT_CLASS_BULKY
File diff suppressed because one or more lines are too long
-1
View File
@@ -1,6 +1,5 @@
// Special AI/pAI PDAs that cannot explode.
/obj/item/pda/silicon
icon_state = "NONE"
detonate = FALSE
ttone = "data"
@@ -3,6 +3,7 @@
name = "Nar'sie's Avatar"
desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees."
icon = 'icons/obj/magic_terror.dmi'
icon_state = null
pixel_x = -89
pixel_y = -85
current_size = 9 //It moves/eats like a max-size singulo, aside from range. --NEO
@@ -18,6 +19,7 @@
/obj/singularity/narsie/large
name = "Nar'Sie"
icon = 'icons/obj/narsie.dmi'
icon_state = "narsie"
// Pixel stuff centers Narsie.
pixel_x = -236
pixel_y = -256
@@ -63,7 +63,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
name = "Particle Accelerator"
desc = "Part of a Particle Accelerator."
icon = 'icons/obj/machines/particle_accelerator.dmi'
icon_state = "none"
icon_state = null
anchored = FALSE
density = TRUE
max_integrity = 500
@@ -222,7 +222,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
name = "Particle Accelerator"
desc = "Part of a Particle Accelerator."
icon = 'icons/obj/machines/particle_accelerator.dmi'
icon_state = "none"
anchored = FALSE
density = TRUE
power_state = NO_POWER_USE
@@ -2,7 +2,7 @@
name = "EM Containment Grid"
desc_holder = "This part launches the Alpha particles. You might not want to stand near this end."
icon = 'icons/obj/machines/particle_accelerator.dmi'
icon_state = "none"
icon_state = null
var/fire_delay = 50
var/last_shot = 0
@@ -1,7 +1,7 @@
/obj/item/gun/throw/piecannon
name = "pie cannon"
desc = "A projectile weapon that fires pies."
icon_state = "piecannon"
icon_state = "piecannon1"
w_class = WEIGHT_CLASS_HUGE
throw_speed = 2
throw_range = 3
@@ -6,8 +6,6 @@
var/base_name = " "
desc = " "
icon = 'icons/obj/chemical.dmi'
icon_state = "null"
item_state = "null"
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25,30,50)
volume = 50
+1 -1
View File
@@ -2,7 +2,7 @@
name = "Dispenser"
desc = "..."
icon = 'icons/obj/objects.dmi'
icon_state = "watertank"
icon_state = "water"
density = TRUE
pressure_resistance = 2*ONE_ATMOSPHERE
container_type = DRAINABLE | AMOUNT_VISIBLE
@@ -42,23 +42,6 @@
linked = null
. = ..()
/obj/effect/clockwork/overlay/wall
name = "clockwork wall"
icon = 'icons/turf/walls/clockwork_wall.dmi'
icon_state = "clockwork_wall"
canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BRASS_WALL)
smoothing_flags = SMOOTH_CORNERS
layer = CLOSED_TURF_LAYER
/obj/effect/clockwork/overlay/wall/Initialize(mapload)
. = ..()
QUEUE_SMOOTH_NEIGHBORS(src)
QUEUE_SMOOTH(src)
/obj/effect/clockwork/overlay/wall/Destroy()
QUEUE_SMOOTH_NEIGHBORS(src)
return ..()
/obj/effect/clockwork/overlay/floor
icon = 'icons/turf/floors.dmi'
icon_state = "clockwork_floor"
@@ -167,7 +150,7 @@
. = ..()
if(randomsinglesprite)
replace_name_desc()
icon_state = "[icon_state][rand(1, randomspritemax)]"
icon_state = "[base_icon_state][rand(1, randomspritemax)]"
pixel_x = rand(-sprite_shift, sprite_shift)
pixel_y = rand(-sprite_shift, sprite_shift)
@@ -185,17 +168,20 @@
w_class = WEIGHT_CLASS_TINY
randomsinglesprite = TRUE
icon_state = "shard_large"
base_icon_state = "shard_large"
sprite_shift = 9
/obj/item/clockwork/alloy_shards/medium
w_class = WEIGHT_CLASS_TINY
randomsinglesprite = TRUE
icon_state = "shard_medium"
base_icon_state = "shard_medium"
sprite_shift = 10
/obj/item/clockwork/alloy_shards/medium/gear_bit
randomspritemax = 4
icon_state = "gear_bit"
icon_state = "gear_bit1"
base_icon_state = "gear_bit"
sprite_shift = 12
/obj/item/clockwork/alloy_shards/medium/gear_bit/replace_name_desc()
@@ -214,6 +200,7 @@
randomsinglesprite = TRUE
randomspritemax = 3
icon_state = "shard_small"
base_icon_state = "shard_small"
sprite_shift = 12
/obj/item/clockwork/alloy_shards/pinion_lock
@@ -1,6 +1,6 @@
/obj/item/organ/internal/alien
origin_tech = "biotech=5"
icon_state = "xgibmid2"
icon_state = null
var/list/alien_powers = list()
var/list/human_powers = list()
tough = TRUE
+1
View File
@@ -17,6 +17,7 @@
#include "log_format.dm"
#include "map_templates.dm"
#include "map_tests.dm"
#include "missing_icons.dm"
#include "origin_tech.dm"
#include "purchase_reference_test.dm"
#include "reagent_id_typos.dm"
+45
View File
@@ -0,0 +1,45 @@
/// Makes sure objects actually have icons that exist!
/datum/unit_test/missing_icons
var/static/list/possible_icon_states = list()
/datum/unit_test/missing_icons/proc/generate_possible_icon_states_list(directory_path = "icons/obj/")
for(var/file_path in flist(directory_path))
if(findtext(file_path, ".dmi"))
for(var/sprite_icon in icon_states("[directory_path][file_path]", 1)) //2nd arg = 1 enables 64x64+ icon support, otherwise you'll end up with "sword0_1" instead of "sword"
possible_icon_states[sprite_icon] += list("[directory_path][file_path]")
else
possible_icon_states += generate_possible_icon_states_list("[directory_path][file_path]")
/datum/unit_test/missing_icons/Run()
generate_possible_icon_states_list()
generate_possible_icon_states_list("icons/effects/")
//Add EVEN MORE paths if needed here!
//generate_possible_icon_states_list("your/folder/path/")
var/list/bad_list = list()
for(var/obj/obj_path as anything in subtypesof(/obj)) // maybe someday a subtype of this test can cover mobs too (hell maybe atom/movable)
if(initial(obj_path.flags) & ABSTRACT)
continue
var/icon = initial(obj_path.icon)
if(isnull(icon))
continue
var/icon_state = initial(obj_path.icon_state)
if(isnull(icon_state))
continue
if(length(bad_list) && (icon_state in bad_list[icon]))
continue
if(icon_exists(icon, icon_state))
continue
bad_list[icon] += list(icon_state)
var/match_message
if(icon_state in possible_icon_states)
for(var/file_place in possible_icon_states[icon_state])
match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'")
Fail("Missing icon_state for [obj_path] in '[icon]'.\n\ticon_state = \"[icon_state]\"[match_message]")
@@ -2,7 +2,7 @@
name = "generic vehicle"
desc = "Yell at coding chat."
icon = 'icons/obj/tgvehicles.dmi'
icon_state = "error"
icon_state = null
max_integrity = 300
armor = list(MELEE = 30, BULLET = 30, LASER = 30, ENERGY = 0, BOMB = 30, RAD = 0, FIRE = 60, ACID = 60)
density = TRUE
+1 -1
View File
@@ -3,7 +3,7 @@
name = "vehicle"
desc = "A basic vehicle, vroom!"
icon = 'icons/obj/vehicles.dmi'
icon_state = "scooter"
icon_state = null
density = TRUE
anchored = FALSE
can_buckle = TRUE