mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 19:44:58 +01:00
[MIRROR] Datum mat GAGS support and mace migration (#6059)
* Datum mat GAGS support and mace migration * Mirror! Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Funce <funce.973@gmail.com>
This commit is contained in:
@@ -45,11 +45,16 @@
|
||||
/// Breakdown flags used when exporting materials.
|
||||
#define BREAKDOWN_FLAGS_EXPORT (NONE)
|
||||
|
||||
/// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
|
||||
/// Applies the material color to the atom's color. Deprecated, use MATERIAL_GREYSCALE instead
|
||||
#define MATERIAL_COLOR (1<<0)
|
||||
/// Whether a prefix describing the material should be added to the name
|
||||
#define MATERIAL_ADD_PREFIX (1<<1)
|
||||
/// Whether a material's mechanical effects should apply to the atom
|
||||
#define MATERIAL_NO_EFFECTS (1<<2)
|
||||
/// Whether a material should affect the stats of the atom
|
||||
#define MATERIAL_AFFECT_STATISTICS (1<<3)
|
||||
/// Applies the material greyscale color to the atom's greyscale color.
|
||||
#define MATERIAL_GREYSCALE (1<<4)
|
||||
|
||||
/// Wrapper for fetching material references. Exists exclusively so that people don't need to wrap everything in a list every time.
|
||||
#define GET_MATERIAL_REF(arguments...) SSmaterials._GetMaterialRef(list(##arguments))
|
||||
|
||||
@@ -31,3 +31,9 @@ SUBSYSTEM_DEF(greyscale)
|
||||
if(istype(colors)) // It's the color list format
|
||||
colors = colors.Join()
|
||||
return configurations[type].Generate(colors)
|
||||
|
||||
/datum/controller/subsystem/greyscale/proc/ParseColorString(color_string)
|
||||
. = list()
|
||||
var/list/split_colors = splittext(color_string, "#")
|
||||
for(var/color in 2 to length(split_colors))
|
||||
. += "#[split_colors[color]]"
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
/// Reference to the dmi file for this config
|
||||
var/icon_file
|
||||
|
||||
/// An optional var to set that tells the material system what material this configuration is for.
|
||||
/// Use a typepath here, not an instance.
|
||||
var/datum/material/material_skin
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Do not set any further vars, the json file specified above is what generates the object
|
||||
|
||||
@@ -116,6 +120,8 @@
|
||||
var/list/color_groups = list()
|
||||
for(var/datum/greyscale_layer/layer as anything in all_layers)
|
||||
for(var/id in layer.color_ids)
|
||||
if(!isnum(id))
|
||||
continue
|
||||
color_groups["[id]"] = TRUE
|
||||
|
||||
expected_colors = length(color_groups)
|
||||
@@ -142,7 +148,7 @@
|
||||
/// Handles the actual icon manipulation to create the spritesheet
|
||||
/datum/greyscale_config/proc/GenerateBundle(list/colors, list/render_steps)
|
||||
if(!istype(colors))
|
||||
colors = ParseColorString(colors)
|
||||
colors = SSgreyscale.ParseColorString(colors)
|
||||
if(length(colors) != expected_colors)
|
||||
CRASH("[DebugName()] expected [expected_colors] color arguments but only received [length(colors)]")
|
||||
|
||||
@@ -188,9 +194,3 @@
|
||||
|
||||
output["icon"] = GenerateBundle(colors, debug_steps)
|
||||
return output
|
||||
|
||||
/datum/greyscale_config/proc/ParseColorString(color_string)
|
||||
. = list()
|
||||
var/list/split_colors = splittext(color_string, "#")
|
||||
for(var/color in 2 to length(split_colors))
|
||||
. += "#[split_colors[color]]"
|
||||
|
||||
+40
@@ -217,3 +217,43 @@
|
||||
name = "Flower Worn"
|
||||
icon_file = 'icons/mob/clothing/head/hydroponics.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/simple_flower_worn.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace
|
||||
name = "Base Cleric Mace"
|
||||
icon_file = 'icons/obj/items/cleric_mace.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_lefthand
|
||||
name = "Base Held Cleric Mace, Left"
|
||||
icon_file = 'icons/obj/items/cleric_mace.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_lefthand.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_righthand
|
||||
name = "Base Held Cleric Mace, Right"
|
||||
icon_file = 'icons/obj/items/cleric_mace.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_righthand.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_worn
|
||||
name = "Base Worn Cleric Mace"
|
||||
icon_file = 'icons/obj/items/cleric_mace.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_worn.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace/gold
|
||||
name = "Gold Cleric Mace"
|
||||
material_skin = /datum/material/gold
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_gold.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_lefthand/gold
|
||||
name = "Gold Held Cleric Mace, Left"
|
||||
material_skin = /datum/material/gold
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_lefthand_gold.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_righthand/gold
|
||||
name = "Gold Held Cleric Mace, Right"
|
||||
material_skin = /datum/material/gold
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_righthand_gold.json'
|
||||
|
||||
/datum/greyscale_config/cleric_mace_worn/gold
|
||||
name = "Gold Worn Cleric Mace"
|
||||
icon_file = 'icons/obj/items/cleric_mace.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/items/cleric_mace_worn_gold.json'
|
||||
@@ -0,0 +1,4 @@
|
||||
/datum/greyscale_config/shimmer
|
||||
name = "Shimmer Effect"
|
||||
icon_file = 'icons/effects/shimmer.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/material_effects/shimmer.json'
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "base",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "handle",
|
||||
"blend_mode": "overlay"
|
||||
}
|
||||
],
|
||||
"default_worn": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "worn_shaft",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "worn_handle",
|
||||
"blend_mode": "overlay"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/cleric_mace",
|
||||
"icon_state": "default",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
[
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/shimmer",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ "#ffffff" ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "shimmer_mask",
|
||||
"blend_mode": "multiply"
|
||||
}
|
||||
]
|
||||
],
|
||||
"default_worn": [
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/cleric_mace",
|
||||
"icon_state": "default_worn",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
[
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/shimmer",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ "#ffffff" ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "shimmer_mask_worn",
|
||||
"blend_mode": "multiply"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "inhand_left",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/cleric_mace_lefthand",
|
||||
"icon_state": "default",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
[
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/shimmer",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ "#ffffff" ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "shimmer_mask_lefthand",
|
||||
"blend_mode": "multiply"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "inhand_right",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/cleric_mace_righthand",
|
||||
"icon_state": "default",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
[
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/shimmer",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ "#ffffff" ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "shimmer_mask_righthand",
|
||||
"blend_mode": "multiply"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "worn_shaft",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "worn_handle",
|
||||
"blend_mode": "overlay"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/cleric_mace_worn",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
[
|
||||
{
|
||||
"type": "reference",
|
||||
"reference_type": "/datum/greyscale_config/shimmer",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ "#ffffff" ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "shimmer_mask_worn",
|
||||
"blend_mode": "multiply"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "animation",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -15,8 +15,11 @@
|
||||
/datum/greyscale_layer/New(icon_file, list/json_data)
|
||||
color_ids = json_data["color_ids"]
|
||||
for(var/i in color_ids)
|
||||
if(!isnum(i))
|
||||
CRASH("Color ids must be a positive integer starting from 1, '[i]' is not valid. Make sure it is not quoted in the json configuration.")
|
||||
if(isnum(i))
|
||||
continue
|
||||
if(istext(i) && i[1] == "#")
|
||||
continue
|
||||
CRASH("Color ids must be a color string or positive integer starting from 1, '[i]' is not valid.")
|
||||
blend_mode = blend_modes[lowertext(json_data["blend_mode"])]
|
||||
if(isnull(blend_mode))
|
||||
CRASH("Greyscale config for [icon_file] is missing a blend mode on a layer.")
|
||||
@@ -26,7 +29,10 @@
|
||||
/datum/greyscale_layer/proc/Generate(list/colors, list/render_steps)
|
||||
var/list/processed_colors = list()
|
||||
for(var/i in color_ids)
|
||||
processed_colors += colors[i]
|
||||
if(isnum(i))
|
||||
processed_colors += colors[i]
|
||||
else
|
||||
processed_colors += i
|
||||
return InternalGenerate(processed_colors, render_steps)
|
||||
|
||||
/datum/greyscale_layer/proc/InternalGenerate(list/colors, list/render_steps)
|
||||
@@ -60,13 +66,15 @@
|
||||
/// A layer created by using another greyscale icon's configuration
|
||||
/datum/greyscale_layer/reference
|
||||
layer_type = "reference"
|
||||
var/icon_state
|
||||
var/datum/greyscale_config/reference_config
|
||||
|
||||
/datum/greyscale_layer/reference/New(icon_file, list/json_data)
|
||||
. = ..()
|
||||
icon_state = json_data["icon_state"] || ""
|
||||
reference_config = SSgreyscale.configurations[json_data["reference_type"]]
|
||||
if(!reference_config)
|
||||
CRASH("An unknown greyscale configuration was given to a reference layer: [json_data["reference_type"]]")
|
||||
|
||||
/datum/greyscale_layer/reference/InternalGenerate(list/colors, list/render_steps)
|
||||
return reference_config.Generate(colors.Join(), render_steps)
|
||||
return icon(reference_config.Generate(colors.Join(), render_steps), icon_state)
|
||||
|
||||
@@ -14,7 +14,10 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
var/id
|
||||
|
||||
///Base color of the material, is used for greyscale. Item isn't changed in color if this is null.
|
||||
///Deprecated, use greyscale_color instead.
|
||||
var/color
|
||||
///Determines the color palette of the material. Formatted the same as atom/var/greyscale_colors
|
||||
var/greyscale_colors
|
||||
///Base alpha of the material, is used for greyscale icons.
|
||||
var/alpha = 255
|
||||
///Bitflags that influence how SSmaterials handles this material.
|
||||
@@ -71,6 +74,10 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
ADD_KEEP_TOGETHER(source, MATERIAL_SOURCE(src))
|
||||
source.add_filter("material_texture_[name]",1,layering_filter(icon=cached_texture_filter_icon,blend_mode=BLEND_INSET_OVERLAY))
|
||||
|
||||
if(material_flags & MATERIAL_GREYSCALE)
|
||||
var/config_path = get_greyscale_config_for(source.greyscale_config)
|
||||
source.set_greyscale(greyscale_colors, config_path)
|
||||
|
||||
if(alpha < 255)
|
||||
source.opacity = FALSE
|
||||
if(material_flags & MATERIAL_ADD_PREFIX)
|
||||
@@ -108,17 +115,29 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
for(var/i in current_armor)
|
||||
temp_armor_list[i] = current_armor[i] * armor_modifiers[i]
|
||||
o.armor = getArmor(arglist(temp_armor_list))
|
||||
|
||||
if(!isitem(o))
|
||||
return
|
||||
var/obj/item/I = o
|
||||
var/obj/item/item = o
|
||||
|
||||
if(material_flags & MATERIAL_GREYSCALE)
|
||||
var/worn_path = get_greyscale_config_for(item.greyscale_config_worn)
|
||||
var/lefthand_path = get_greyscale_config_for(item.greyscale_config_inhand_left)
|
||||
var/righthand_path = get_greyscale_config_for(item.greyscale_config_inhand_right)
|
||||
item.set_greyscale(
|
||||
new_worn_config = worn_path,
|
||||
new_inhand_left = lefthand_path,
|
||||
new_inhand_right = righthand_path
|
||||
)
|
||||
|
||||
if(!item_sound_override)
|
||||
return
|
||||
I.hitsound = item_sound_override
|
||||
I.usesound = item_sound_override
|
||||
I.mob_throw_hit_sound = item_sound_override
|
||||
I.equip_sound = item_sound_override
|
||||
I.pickup_sound = item_sound_override
|
||||
I.drop_sound = item_sound_override
|
||||
item.hitsound = item_sound_override
|
||||
item.usesound = item_sound_override
|
||||
item.mob_throw_hit_sound = item_sound_override
|
||||
item.equip_sound = item_sound_override
|
||||
item.pickup_sound = item_sound_override
|
||||
item.drop_sound = item_sound_override
|
||||
|
||||
/datum/material/proc/on_applied_turf(turf/T, amount, material_flags)
|
||||
if(isopenturf(T))
|
||||
@@ -132,6 +151,14 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
T.AddElement(/datum/element/turf_z_transparency, TRUE)
|
||||
return
|
||||
|
||||
/datum/material/proc/get_greyscale_config_for(datum/greyscale_config/config_path)
|
||||
if(!config_path)
|
||||
return
|
||||
for(var/datum/greyscale_config/path as anything in subtypesof(config_path))
|
||||
if(type != initial(path.material_skin))
|
||||
continue
|
||||
return path
|
||||
|
||||
///This proc is called when the material is removed from an object.
|
||||
/datum/material/proc/on_removed(atom/source, amount, material_flags)
|
||||
if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
|
||||
@@ -142,6 +169,9 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
REMOVE_KEEP_TOGETHER(source, MATERIAL_SOURCE(src))
|
||||
source.alpha = initial(source.alpha)
|
||||
|
||||
if(material_flags & MATERIAL_GREYSCALE)
|
||||
source.set_greyscale(initial(source.greyscale_colors), initial(source.greyscale_config))
|
||||
|
||||
if(material_flags & MATERIAL_ADD_PREFIX)
|
||||
source.name = initial(source.name)
|
||||
|
||||
@@ -162,6 +192,14 @@ Simple datum which is instanced once per type and is used for every object of sa
|
||||
o.force = initial(o.force)
|
||||
o.throwforce = initial(o.throwforce)
|
||||
|
||||
if(isitem(o) && (material_flags & MATERIAL_GREYSCALE))
|
||||
var/obj/item/item = o
|
||||
item.set_greyscale(
|
||||
new_worn_config = initial(item.greyscale_config_worn),
|
||||
new_inhand_left = initial(item.greyscale_config_inhand_left),
|
||||
new_inhand_right = initial(item.greyscale_config_inhand_right)
|
||||
)
|
||||
|
||||
/datum/material/proc/on_removed_turf(turf/T, amount, material_flags)
|
||||
if(alpha < 255)
|
||||
T.RemoveElement(/datum/element/turf_z_transparency, FALSE)
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
name = "plasteel"
|
||||
desc = "The heavy duty result of infusing iron with plasma."
|
||||
color = "#706374"
|
||||
greyscale_colors = "#706374"
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
value_per_unit = 0.135
|
||||
strength_modifier = 1.25
|
||||
@@ -63,6 +64,7 @@
|
||||
name = "plastitanium"
|
||||
desc = "The extremely heat resistant result of infusing titanium with plasma."
|
||||
color = "#3a313a"
|
||||
greyscale_colors = "#3a313a"
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
value_per_unit = 0.225
|
||||
strength_modifier = 0.9 // It's a lightweight alloy.
|
||||
@@ -80,6 +82,7 @@
|
||||
name = "plasmaglass"
|
||||
desc = "Plasma-infused silicate. It is much more durable and heat resistant than either of its component materials."
|
||||
color = "#ff80f4"
|
||||
greyscale_colors = "#ff80f4"
|
||||
alpha = 150
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
integrity_modifier = 0.5
|
||||
@@ -98,6 +101,7 @@
|
||||
name = "titanium glass"
|
||||
desc = "A specialized silicate-titanium alloy that is commonly used in shuttle windows."
|
||||
color = "#cfbee0"
|
||||
greyscale_colors = "#cfbee0"
|
||||
alpha = 150
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 0.8, ENERGY = 0.8, BOMB = 0.5, BIO = 1.2, RAD = 1, FIRE = 0.8, ACID = 2)
|
||||
@@ -115,6 +119,7 @@
|
||||
name = "plastitanium glass"
|
||||
desc = "A specialized silicate-plastitanium alloy."
|
||||
color = "#5d3369"
|
||||
greyscale_colors = "#5d3369"
|
||||
alpha = 150
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
integrity_modifier = 1.1
|
||||
@@ -135,6 +140,7 @@
|
||||
name = "alien alloy"
|
||||
desc = "An extremely dense alloy similar to plasteel in composition. It requires exotic metallurgical processes to create."
|
||||
color = "#6041aa"
|
||||
greyscale_colors = "#6041aa"
|
||||
init_flags = MATERIAL_INIT_MAPLOAD
|
||||
strength_modifier = 1.5 // It's twice the density of plasteel and just as durable. Getting hit with it is going to HURT.
|
||||
integrity_modifier = 1.5
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
name = "iron"
|
||||
desc = "Common iron ore often found in sedimentary and igneous layers of the crust."
|
||||
color = "#878687"
|
||||
greyscale_colors = "#878687"
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/iron
|
||||
value_per_unit = 0.0025
|
||||
@@ -16,6 +17,7 @@
|
||||
name = "glass"
|
||||
desc = "Glass forged by melting sand."
|
||||
color = "#88cdf1"
|
||||
greyscale_colors = "#88cdf1"
|
||||
alpha = 150
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
integrity_modifier = 0.1
|
||||
@@ -39,6 +41,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "silver"
|
||||
desc = "Silver"
|
||||
color = list(255/255, 284/255, 302/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
greyscale_colors = "#e3f1f8"
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/silver
|
||||
value_per_unit = 0.025
|
||||
@@ -53,6 +56,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "gold"
|
||||
desc = "Gold"
|
||||
color = list(340/255, 240/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //gold is shiny, but not as bright as bananium
|
||||
greyscale_colors = "#dbdd4c"
|
||||
strength_modifier = 1.2
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/gold
|
||||
@@ -69,6 +73,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "diamond"
|
||||
desc = "Highly pressurized carbon"
|
||||
color = list(48/255, 272/255, 301/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
greyscale_colors = "#71c8f7"
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/diamond
|
||||
alpha = 132
|
||||
@@ -85,6 +90,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "uranium"
|
||||
desc = "Uranium"
|
||||
color = rgb(48, 237, 26)
|
||||
greyscale_colors = rgb(48, 237, 26)
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/uranium
|
||||
value_per_unit = 0.05
|
||||
@@ -109,6 +115,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "plasma"
|
||||
desc = "Isn't plasma a state of matter? Oh whatever."
|
||||
color = list(298/255, 46/255, 352/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
greyscale_colors = "#c162ec"
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/plasma
|
||||
shard_type = /obj/item/shard/plasma
|
||||
@@ -137,6 +144,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "bluespace crystal"
|
||||
desc = "Crystals with bluespace properties"
|
||||
color = list(119/255, 217/255, 396/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
greyscale_colors = "#4e7dff"
|
||||
alpha = 200
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE)
|
||||
beauty_modifier = 0.5
|
||||
@@ -153,6 +161,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "bananium"
|
||||
desc = "Material with hilarious properties"
|
||||
color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow
|
||||
greyscale_colors = "#ffff00"
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/bananium
|
||||
value_per_unit = 0.5
|
||||
@@ -179,6 +188,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "titanium"
|
||||
desc = "Titanium"
|
||||
color = "#b3c0c7"
|
||||
greyscale_colors = "#b3c0c7"
|
||||
strength_modifier = 1.3
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/titanium
|
||||
@@ -194,6 +204,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "runite"
|
||||
desc = "Runite"
|
||||
color = "#3F9995"
|
||||
greyscale_colors = "#3F9995"
|
||||
strength_modifier = 1.3
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/runite
|
||||
@@ -210,6 +221,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "plastic"
|
||||
desc = "Plastic"
|
||||
color = "#caccd9"
|
||||
greyscale_colors = "#caccd9"
|
||||
strength_modifier = 0.85
|
||||
sheet_type = /obj/item/stack/sheet/plastic
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
@@ -227,6 +239,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "biomass"
|
||||
desc = "Organic matter"
|
||||
color = "#735b4d"
|
||||
greyscale_colors = "#735b4d"
|
||||
strength_modifier = 0.8
|
||||
value_per_unit = 0.025
|
||||
|
||||
@@ -234,6 +247,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "wood"
|
||||
desc = "Flexible, durable, but flamable. Hard to come across in space."
|
||||
color = "#bb8e53"
|
||||
greyscale_colors = "#bb8e53"
|
||||
strength_modifier = 0.5
|
||||
sheet_type = /obj/item/stack/sheet/mineral/wood
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
@@ -266,6 +280,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "adamantine"
|
||||
desc = "A powerful material made out of magic, I mean science!"
|
||||
color = "#6d7e8e"
|
||||
greyscale_colors = "#6d7e8e"
|
||||
strength_modifier = 1.5
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/adamantine
|
||||
@@ -282,6 +297,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "mythril"
|
||||
desc = "How this even exists is byond me"
|
||||
color = "#f2d5d7"
|
||||
greyscale_colors = "#f2d5d7"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/mythril
|
||||
value_per_unit = 0.75
|
||||
@@ -308,6 +324,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "hot ice"
|
||||
desc = "A weird kind of ice, feels warm to the touch"
|
||||
color = "#88cdf1"
|
||||
greyscale_colors = "#88cdf1"
|
||||
alpha = 150
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/hot_ice
|
||||
@@ -331,6 +348,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "Metal Hydrogen"
|
||||
desc = "Solid metallic hydrogen. Some say it should be impossible"
|
||||
color = "#f2d5d7"
|
||||
greyscale_colors = "#f2d5d7"
|
||||
alpha = 150
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/metal_hydrogen
|
||||
@@ -348,6 +366,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "sand"
|
||||
desc = "You know, it's amazing just how structurally sound sand can be."
|
||||
color = "#EDC9AF"
|
||||
greyscale_colors = "#EDC9AF"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/sandblock
|
||||
value_per_unit = 0.001
|
||||
@@ -367,6 +386,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "sandstone"
|
||||
desc = "Bialtaakid 'ant taerif ma hdha."
|
||||
color = "#B77D31"
|
||||
greyscale_colors = "#B77D31"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/sandstone
|
||||
value_per_unit = 0.0025
|
||||
@@ -379,6 +399,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "snow"
|
||||
desc = "There's no business like snow business."
|
||||
color = "#FFFFFF"
|
||||
greyscale_colors = "#FFFFFF"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/snow
|
||||
value_per_unit = 0.0025
|
||||
@@ -395,6 +416,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "runed metal"
|
||||
desc = "Mir'ntrath barhah Nar'sie."
|
||||
color = "#3C3434"
|
||||
greyscale_colors = "#3C3434"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/runed_metal
|
||||
value_per_unit = 0.75
|
||||
@@ -411,6 +433,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "bronze"
|
||||
desc = "Clock Cult? Never heard of it."
|
||||
color = "#92661A"
|
||||
greyscale_colors = "#92661A"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/bronze
|
||||
value_per_unit = 0.025
|
||||
@@ -421,6 +444,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "paper"
|
||||
desc = "Ten thousand folds of pure starchy power."
|
||||
color = "#E5DCD5"
|
||||
greyscale_colors = "#E5DCD5"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/paperframes
|
||||
value_per_unit = 0.0025
|
||||
@@ -446,6 +470,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "cardboard"
|
||||
desc = "They say cardboard is used by hobos to make incredible things."
|
||||
color = "#5F625C"
|
||||
greyscale_colors = "#5F625C"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/cardboard
|
||||
value_per_unit = 0.003
|
||||
@@ -469,6 +494,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "bone"
|
||||
desc = "Man, building with this will make you the coolest caveman on the block."
|
||||
color = "#e3dac9"
|
||||
greyscale_colors = "#e3dac9"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/bone
|
||||
value_per_unit = 0.05
|
||||
@@ -479,6 +505,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "bamboo"
|
||||
desc = "If it's good enough for pandas, it's good enough for you."
|
||||
color = "#339933"
|
||||
greyscale_colors = "#339933"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/bamboo
|
||||
value_per_unit = 0.0025
|
||||
@@ -491,6 +518,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
name = "zaukerite"
|
||||
desc = "A light absorbing crystal"
|
||||
color = COLOR_ALMOST_BLACK
|
||||
greyscale_colors = COLOR_ALMOST_BLACK
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/mineral/zaukerite
|
||||
value_per_unit = 0.45
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "hauntium"
|
||||
desc = "very scary!"
|
||||
color = list(460/255, 464/255, 460/255, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
greyscale_colors = "#FFFFFF"
|
||||
alpha = 100
|
||||
categories = list(MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/hauntium
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
desc = "Meat"
|
||||
id = /datum/material/meat // So the bespoke versions are categorized under this
|
||||
color = rgb(214, 67, 67)
|
||||
greyscale_colors = rgb(214, 67, 67)
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/meat
|
||||
value_per_unit = 0.05
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
name = "pizza"
|
||||
desc = "~Jamme, jamme, n'coppa, jamme ja! Jamme, jamme, n'coppa jamme ja, funi-culi funi-cala funi-culi funi-cala!! Jamme jamme ja funiculi funicula!~"
|
||||
color = "#FF9F23"
|
||||
greyscale_colors = "#FF9F23"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE)
|
||||
sheet_type = /obj/item/stack/sheet/pizza
|
||||
value_per_unit = 0.05
|
||||
|
||||
@@ -681,13 +681,18 @@
|
||||
/obj/item/melee/cleric_mace
|
||||
name = "cleric mace"
|
||||
desc = "The grandson of the club, yet the grandfather of the baseball bat. Most notably used by holy orders in days past."
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "mace_greyscale"
|
||||
inhand_icon_state = "mace_greyscale"
|
||||
worn_icon_state = "mace"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
|
||||
material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color.
|
||||
icon = 'icons/obj/items/cleric_mace.dmi'
|
||||
icon_state = "default"
|
||||
inhand_icon_state = "default"
|
||||
worn_icon_state = "default_worn"
|
||||
|
||||
greyscale_config = /datum/greyscale_config/cleric_mace
|
||||
greyscale_config_inhand_left = /datum/greyscale_config/cleric_mace_lefthand
|
||||
greyscale_config_inhand_right = /datum/greyscale_config/cleric_mace_righthand
|
||||
greyscale_config_worn = /datum/greyscale_config/cleric_mace
|
||||
greyscale_colors = "#FFFFFF"
|
||||
|
||||
material_flags = MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color.
|
||||
custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace.
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
force = 14
|
||||
@@ -697,11 +702,3 @@
|
||||
armour_penetration = 50
|
||||
attack_verb_continuous = list("smacks", "strikes", "cracks", "beats")
|
||||
attack_verb_simple = list("smack", "strike", "crack", "beat")
|
||||
var/overlay_state = "mace_handle"
|
||||
var/mutable_appearance/overlay
|
||||
|
||||
/obj/item/melee/cleric_mace/Initialize()
|
||||
. = ..()
|
||||
overlay = mutable_appearance(icon, overlay_state)
|
||||
overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | KEEP_APART
|
||||
add_overlay(overlay)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
+2
-1
@@ -772,8 +772,9 @@
|
||||
#include "code\datums\elements\food\processable.dm"
|
||||
#include "code\datums\elements\food\venue_price.dm"
|
||||
#include "code\datums\greyscale\_greyscale_config.dm"
|
||||
#include "code\datums\greyscale\greyscale_configs.dm"
|
||||
#include "code\datums\greyscale\layer.dm"
|
||||
#include "code\datums\greyscale\config_types\greyscale_configs.dm"
|
||||
#include "code\datums\greyscale\config_types\material_effects.dm"
|
||||
#include "code\datums\helper_datums\events.dm"
|
||||
#include "code\datums\helper_datums\getrev.dm"
|
||||
#include "code\datums\helper_datums\icon_snapshot.dm"
|
||||
|
||||
Reference in New Issue
Block a user