diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm
index 6db2d96d465..94c0eb7ad39 100644
--- a/code/datums/trading/goods.dm
+++ b/code/datums/trading/goods.dm
@@ -222,7 +222,6 @@ Sells devices, odds and ends, and medical stuff
possible_origins = list("Buy 'n Save", "Drug Carnival", "C&B", "Fentles", "Dr. Goods", "Beevees")
possible_trading_items = list(
/obj/item/device/flashlight = TRADER_ALL,
- /obj/item/device/kit/paint = TRADER_SUBTYPES_ONLY,
/obj/item/aicard = TRADER_THIS_TYPE,
/obj/item/device/binoculars = TRADER_THIS_TYPE,
/obj/item/device/flash = TRADER_THIS_TYPE,
diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm
index 7ea277fdf0d..98dd613c293 100644
--- a/code/game/objects/items/paintkit.dm
+++ b/code/game/objects/items/paintkit.dm
@@ -65,23 +65,4 @@
species_restricted = list(H.species.get_bodytype())
kit.use(1,user)
return 1
- return ..()
-
-/obj/item/device/kit/paint
- name = "exosuit customisation kit"
- desc = "A kit containing all the needed tools and parts to repaint an exosuit."
- var/removable = null
-
-/obj/item/device/kit/paint/examine()
- . = ..()
- to_chat(usr, "This kit will add a '[new_name]' decal to a exosuit'.")
-
-/obj/item/device/kit/paint/powerloader/flames_red
- name = "\"Firestarter\" exosuit customisation kit"
- new_name = "red flames"
- new_icon = "flames_red"
-
-/obj/item/device/kit/paint/powerloader/flames_blue
- name = "\"Burning Chrome\" exosuit customisation kit"
- new_name = "blue flames"
- new_icon = "flames_blue"
\ No newline at end of file
+ return ..()
\ No newline at end of file
diff --git a/code/modules/heavy_vehicle/components/_components.dm b/code/modules/heavy_vehicle/components/_components.dm
index 68d569a0911..6293f772c84 100644
--- a/code/modules/heavy_vehicle/components/_components.dm
+++ b/code/modules/heavy_vehicle/components/_components.dm
@@ -16,6 +16,11 @@
matter = list(DEFAULT_WALL_MATERIAL = 15000, "plastic" = 1000, "osmium" = 500)
dir = SOUTH
+/obj/item/mech_component/pickup(mob/user)
+ pixel_x = initial(pixel_x)
+ pixel_y = initial(pixel_y)
+ return
+
/obj/item/mech_component/proc/set_colour(new_colour)
var/last_colour = color
color = new_colour
@@ -74,7 +79,6 @@
if(total_damage == max_damage)
take_component_damage(0,amt)
-
/obj/item/mech_component/proc/take_component_damage(var/brute, var/burn)
var/list/damageable_components = list()
for(var/obj/item/robot_parts/robot_component/RC in contents)
diff --git a/code/modules/heavy_vehicle/components/body.dm b/code/modules/heavy_vehicle/components/body.dm
index be4341af8d9..c7bd5558eef 100644
--- a/code/modules/heavy_vehicle/components/body.dm
+++ b/code/modules/heavy_vehicle/components/body.dm
@@ -2,6 +2,8 @@
name = "body"
icon_state = "loader_body"
gender = NEUTER
+ pixel_y = -8
+ center_of_mass = list("x"=24, "y"=20)
var/mech_health = 300
var/obj/item/robot_parts/robot_component/diagnosis_unit/diagnostics
@@ -16,7 +18,7 @@
var/list/pilot_positions
var/pilot_coverage = 100
var/transparent_cabin = FALSE
- var/hide_pilot = FALSE
+ var/hide_pilot = TRUE
has_hardpoints = list(HARDPOINT_BACK, HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER)
/obj/item/mech_component/chassis/update_components()
diff --git a/code/modules/heavy_vehicle/components/frame.dm b/code/modules/heavy_vehicle/components/frame.dm
index ee2299d3c50..2404942da19 100644
--- a/code/modules/heavy_vehicle/components/frame.dm
+++ b/code/modules/heavy_vehicle/components/frame.dm
@@ -62,7 +62,7 @@
/obj/structure/heavy_vehicle_frame/update_icon()
- var/list/new_overlays = get_mech_icon(list(legs, head, body, arms), layer)
+ var/list/new_overlays = get_mech_icon(list(body, head), MECH_BASE_LAYER)
if(body)
density = TRUE
overlays += get_mech_image("[body.icon_state]_cockpit", body.icon, body.color)
@@ -70,6 +70,10 @@
new_overlays += get_mech_image("[body.icon_state]_open_overlay", body.icon, body.color)
else
density = FALSE
+ if(arms)
+ new_overlays += get_mech_image(arms.icon_state, arms.on_mech_icon, arms.color, MECH_ARM_LAYER)
+ if(legs)
+ new_overlays += get_mech_image(legs.icon_state, legs.on_mech_icon, legs.color, MECH_LEG_LAYER)
overlays = new_overlays
if(density != opacity)
set_opacity(density)
@@ -236,7 +240,6 @@
thing.dropInto(loc)
return
arms = thing
- if(install_component(thing, user)) arms = thing
else if(istype(thing,/obj/item/mech_component/propulsion))
if(legs)
to_chat(user, "\The [src] already has a propulsion system installed.")
@@ -246,7 +249,6 @@
thing.dropInto(loc)
return
legs = thing
- if(install_component(thing, user)) legs = thing
else if(istype(thing,/obj/item/mech_component/sensors))
if(head)
to_chat(user, "\The [src] already has a sensor array installed.")
diff --git a/code/modules/heavy_vehicle/components/head.dm b/code/modules/heavy_vehicle/components/head.dm
index 6189136724e..c38189aa913 100644
--- a/code/modules/heavy_vehicle/components/head.dm
+++ b/code/modules/heavy_vehicle/components/head.dm
@@ -1,6 +1,7 @@
/obj/item/mech_component/sensors
name = "head"
pixel_y = -18
+ center_of_mass = list("x"=24, "y"=34)
icon_state = "loader_head"
gender = NEUTER
diff --git a/code/modules/heavy_vehicle/components/legs.dm b/code/modules/heavy_vehicle/components/legs.dm
index 7732f9fe8ff..fec92ba0156 100644
--- a/code/modules/heavy_vehicle/components/legs.dm
+++ b/code/modules/heavy_vehicle/components/legs.dm
@@ -1,6 +1,6 @@
/obj/item/mech_component/propulsion
name = "legs"
- pixel_y = 12
+ center_of_mass = list("x"=24, "y"=4)
icon_state = "loader_legs"
power_use = 75
var/move_delay = 5
diff --git a/code/modules/heavy_vehicle/mech_icon.dm b/code/modules/heavy_vehicle/mech_icon.dm
index 4f786326ebe..fe3b2d82665 100644
--- a/code/modules/heavy_vehicle/mech_icon.dm
+++ b/code/modules/heavy_vehicle/mech_icon.dm
@@ -26,6 +26,8 @@ proc/get_mech_icon(var/list/components = list(), var/overlay_layer = FLOAT_LAYER
update_pilot_overlay(FALSE)
if(LAZYLEN(pilot_overlays))
new_overlays += pilot_overlays
+ if(head)
+ new_overlays += get_mech_image("[head.icon_state]_eyes", head.on_mech_icon, null, MECH_INTERMEDIATE_LAYER)
if(body)
new_overlays += get_mech_image("[body.icon_state]_overlay[hatch_closed ? "" : "_open"]", body.on_mech_icon, body.color, MECH_COCKPIT_LAYER)
if(arms)
diff --git a/code/modules/heavy_vehicle/mech_interaction.dm b/code/modules/heavy_vehicle/mech_interaction.dm
index 8286e5cc4e7..354be57da7f 100644
--- a/code/modules/heavy_vehicle/mech_interaction.dm
+++ b/code/modules/heavy_vehicle/mech_interaction.dm
@@ -323,18 +323,6 @@
to_chat(user, "\The [thing] could not be installed in that hardpoint.")
return
- else if(istype(thing, /obj/item/device/kit/paint))
- user.visible_message("\The [user] opens \the [thing] and spends some quality time customising \the [src].")
- var/obj/item/device/kit/paint/P = thing
- desc = P.new_desc
- for(var/obj/item/mech_component/comp in list(arms, legs, head, body))
- comp.decal = P.new_icon
- if(P.new_icon_file)
- icon = P.new_icon_file
- queue_icon_update()
- P.use(1, user)
- return 1
-
else
if(user.a_intent != I_HURT)
if(thing.ismultitool())
diff --git a/code/modules/heavy_vehicle/premade/light.dm b/code/modules/heavy_vehicle/premade/light.dm
index 1a4dbb9d9fd..cb86e0d3652 100644
--- a/code/modules/heavy_vehicle/premade/light.dm
+++ b/code/modules/heavy_vehicle/premade/light.dm
@@ -66,7 +66,6 @@
pilot_coverage = 100
transparent_cabin = TRUE
hatch_descriptor = "canopy"
- hide_pilot = TRUE //Sprite too small, legs clip through, so for now hide pilot
exosuit_desc_string = "an open and light chassis"
icon_state = "light_body"
max_damage = 50
diff --git a/code/modules/heavy_vehicle/premade/misc.dm b/code/modules/heavy_vehicle/premade/misc.dm
index 5f4ee39a78b..b0dbc89afcc 100644
--- a/code/modules/heavy_vehicle/premade/misc.dm
+++ b/code/modules/heavy_vehicle/premade/misc.dm
@@ -25,7 +25,6 @@
hatch_descriptor = "hatch"
pilot_coverage = 100
transparent_cabin = TRUE
- hide_pilot = TRUE
exosuit_desc_string = "a spherical chassis"
icon_state = "pod_body"
max_damage = 70
diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm
index b809525cbcb..e5c62bd8cb7 100644
--- a/code/modules/item_worth/worths_list.dm
+++ b/code/modules/item_worth/worths_list.dm
@@ -628,7 +628,6 @@ var/list/worths = list(
/obj/item/device/soulstone = 10000,
/obj/item/device/dociler = 450,
/obj/item/device/mmi = 1200,
- /obj/item/device/kit/paint = 500,
/obj/item/device/kit = 100,
/obj/item/aicard = 6000,
/obj/item/device/chameleon = 4000,
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 0b2b5182298..2dc3c5a9bf9 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -26,8 +26,6 @@ var/global/list/minevendor_list = list( //keep in order of price
new /datum/data/mining_equipment("Deployable Ladder", /obj/item/ladder_mobile, 5, 200),
new /datum/data/mining_equipment("Deployable Hoist Kit", /obj/item/hoist_kit, 5, 200),
new /datum/data/mining_equipment("Material Scanners", /obj/item/clothing/glasses/material, 15, 200),
- new /datum/data/mining_equipment("Paint Kit, Red Flames", /obj/item/device/kit/paint/powerloader/flames_red, 15, 200),
- new /datum/data/mining_equipment("Paint Kit, Blue Flames", /obj/item/device/kit/paint/powerloader/flames_blue, 15, 200),
new /datum/data/mining_equipment("Mining Drill", /obj/item/pickaxe/drill, 10, 200),
new /datum/data/mining_equipment("Deep Ore Scanner", /obj/item/mining_scanner, 10, 250),
new /datum/data/mining_equipment("Magboots", /obj/item/clothing/shoes/magboots, 10, 300),
diff --git a/html/changelogs/Ferner-191217-sprites_mecha.yml b/html/changelogs/Ferner-191217-sprites_mecha.yml
new file mode 100644
index 00000000000..069d8a1ff36
--- /dev/null
+++ b/html/changelogs/Ferner-191217-sprites_mecha.yml
@@ -0,0 +1,5 @@
+author: Ferner, Kyres1
+delete-after: True
+changes:
+ - imageadd: "Replaced mech sprites with brand new ones by Kyres1."
+ - bugfix: "Fixed an issue wherein built mechs didn't layer their parts properly."
\ No newline at end of file
diff --git a/icons/mecha/mech_equipment.dmi b/icons/mecha/mech_equipment.dmi
index a922fae04a7..f0d531d4d8f 100644
Binary files a/icons/mecha/mech_equipment.dmi and b/icons/mecha/mech_equipment.dmi differ
diff --git a/icons/mecha/mech_parts.dmi b/icons/mecha/mech_parts.dmi
index b394664e759..62c94493da0 100644
Binary files a/icons/mecha/mech_parts.dmi and b/icons/mecha/mech_parts.dmi differ
diff --git a/icons/mecha/mecha_decals.dmi b/icons/mecha/mecha_decals.dmi
index 7a75f1c24cc..de513a0cbcf 100644
Binary files a/icons/mecha/mecha_decals.dmi and b/icons/mecha/mecha_decals.dmi differ
diff --git a/icons/mecha/mecha_weapon_overlays.dmi b/icons/mecha/mecha_weapon_overlays.dmi
index 9992a1ef791..17dea52c690 100644
Binary files a/icons/mecha/mecha_weapon_overlays.dmi and b/icons/mecha/mecha_weapon_overlays.dmi differ