mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
Upstream 12 15 25 unique reskins fixes (#5019)
This branch needs help, tons of datums to make for the customizable items. --------- Co-authored-by: Alexis <catmc8565@gmail.com>
This commit is contained in:
@@ -1,3 +1,20 @@
|
||||
// Clipboard skins
|
||||
/datum/atom_skin/clipboard
|
||||
abstract_type = /datum/atom_skin/clipboard
|
||||
change_inhand_icon_state = TRUE
|
||||
|
||||
/datum/atom_skin/clipboard/brown
|
||||
preview_name = "Brown"
|
||||
new_icon_state = "clipboard"
|
||||
|
||||
/datum/atom_skin/clipboard/black
|
||||
preview_name = "Black"
|
||||
new_icon_state = "clipboard_black"
|
||||
|
||||
/datum/atom_skin/clipboard/white
|
||||
preview_name = "White"
|
||||
new_icon_state = "clipboard_white"
|
||||
|
||||
/**
|
||||
* Clipboard
|
||||
*/
|
||||
@@ -15,12 +32,6 @@
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT, /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT)
|
||||
unique_reskin = list(
|
||||
"Brown" = "clipboard",
|
||||
"Black" = "clipboard_black",
|
||||
"White" = "clipboard_white",
|
||||
)
|
||||
unique_reskin_changes_inhand = TRUE
|
||||
|
||||
/// The stored pen
|
||||
var/obj/item/pen/pen
|
||||
@@ -40,6 +51,7 @@
|
||||
/obj/item/clipboard/Initialize(mapload)
|
||||
update_appearance()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/reskinable_item, /datum/atom_skin/clipboard)
|
||||
|
||||
/obj/item/clipboard/Destroy()
|
||||
QDEL_NULL(pen)
|
||||
|
||||
@@ -177,6 +177,38 @@
|
||||
time = 3 SECONDS
|
||||
category = CAT_TOOLS
|
||||
|
||||
// Skins for captain's fountain pen
|
||||
/datum/atom_skin/cap_pen
|
||||
abstract_type = /datum/atom_skin/cap_pen
|
||||
|
||||
/datum/atom_skin/cap_pen/apply(atom/apply_to)
|
||||
. = ..()
|
||||
apply_to.desc = "It's an expensive [preview_name] fountain pen. The nib is quite sharp."
|
||||
|
||||
/datum/atom_skin/cap_pen/clear_skin(atom/clear_from)
|
||||
. = ..()
|
||||
clear_from.desc = initial(clear_from.desc)
|
||||
|
||||
/datum/atom_skin/cap_pen/oak
|
||||
preview_name = "Oak"
|
||||
new_icon_state = "pen-fountain-o"
|
||||
|
||||
/datum/atom_skin/cap_pen/gold
|
||||
preview_name = "Gold"
|
||||
new_icon_state = "pen-fountain-g"
|
||||
|
||||
/datum/atom_skin/cap_pen/rosewood
|
||||
preview_name = "Rosewood"
|
||||
new_icon_state = "pen-fountain-r"
|
||||
|
||||
/datum/atom_skin/cap_pen/black_silver
|
||||
preview_name = "Black and Silver"
|
||||
new_icon_state = "pen-fountain-b"
|
||||
|
||||
/datum/atom_skin/cap_pen/command_blue
|
||||
preview_name = "Command Blue"
|
||||
new_icon_state = "pen-fountain-cb"
|
||||
|
||||
/obj/item/pen/fountain/captain
|
||||
name = "captain's fountain pen"
|
||||
desc = "It's an expensive Oak fountain pen. The nib is quite sharp."
|
||||
@@ -187,22 +219,15 @@
|
||||
custom_materials = list(/datum/material/gold = SMALL_MATERIAL_AMOUNT*7.5)
|
||||
sharpness = SHARP_EDGED
|
||||
resistance_flags = FIRE_PROOF
|
||||
unique_reskin = list(
|
||||
"Oak" = "pen-fountain-o",
|
||||
"Gold" = "pen-fountain-g",
|
||||
"Rosewood" = "pen-fountain-r",
|
||||
"Black and Silver" = "pen-fountain-b",
|
||||
"Command Blue" = "pen-fountain-cb"
|
||||
)
|
||||
embed_type = /datum/embedding/pen/captain
|
||||
dart_insert_casing_icon_state = "overlay_fountainpen_gold"
|
||||
dart_insert_projectile_icon_state = "overlay_fountainpen_gold_proj"
|
||||
var/list/overlay_reskin = list(
|
||||
"Oak" = "overlay_fountainpen_gold",
|
||||
"Gold" = "overlay_fountainpen_gold",
|
||||
"Rosewood" = "overlay_fountainpen_gold",
|
||||
"Black and Silver" = "overlay_fountainpen",
|
||||
"Command Blue" = "overlay_fountainpen_gold"
|
||||
/datum/atom_skin/cap_pen/black_silver::preview_name = "overlay_fountainpen",
|
||||
/datum/atom_skin/cap_pen/command_blue::preview_name = "overlay_fountainpen_gold",
|
||||
/datum/atom_skin/cap_pen/gold::preview_name = "overlay_fountainpen_gold",
|
||||
/datum/atom_skin/cap_pen/oak::preview_name = "overlay_fountainpen_gold",
|
||||
/datum/atom_skin/cap_pen/rosewood::preview_name = "overlay_fountainpen_gold",
|
||||
)
|
||||
|
||||
/datum/embedding/pen/captain
|
||||
@@ -210,24 +235,21 @@
|
||||
|
||||
/obj/item/pen/fountain/captain/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, \
|
||||
speed = 20 SECONDS, \
|
||||
effectiveness = 115, \
|
||||
AddComponent( \
|
||||
/datum/component/butchering, \
|
||||
speed = 20 SECONDS, \
|
||||
effectiveness = 115, \
|
||||
)
|
||||
AddComponent(/datum/component/reskinable_item, /datum/atom_skin/cap_pen)
|
||||
//the pen is mightier than the sword
|
||||
RegisterSignal(src, COMSIG_DART_INSERT_PARENT_RESKINNED, PROC_REF(reskin_dart_insert))
|
||||
|
||||
/obj/item/pen/fountain/captain/reskin_obj(mob/M)
|
||||
..()
|
||||
if(current_skin)
|
||||
desc = "It's an expensive [current_skin] fountain pen. The nib is quite sharp."
|
||||
|
||||
|
||||
/obj/item/pen/fountain/captain/proc/reskin_dart_insert(datum/component/dart_insert/insert_comp)
|
||||
/obj/item/pen/fountain/captain/proc/reskin_dart_insert(datum/component/dart_insert/insert_comp, skin)
|
||||
SIGNAL_HANDLER
|
||||
if(!istype(insert_comp)) //You really shouldn't be sending this signal from anything other than a dart_insert component
|
||||
return
|
||||
insert_comp.casing_overlay_icon_state = overlay_reskin[current_skin]
|
||||
insert_comp.projectile_overlay_icon_state = "[overlay_reskin[current_skin]]_proj"
|
||||
insert_comp.casing_overlay_icon_state = overlay_reskin[skin]
|
||||
insert_comp.projectile_overlay_icon_state = "[overlay_reskin[skin]]_proj"
|
||||
|
||||
/obj/item/pen/item_ctrl_click(mob/living/carbon/user)
|
||||
if(loc != user)
|
||||
|
||||
Reference in New Issue
Block a user