mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Changes the rock texture to hopefully be a bit better. It's a recolored version of /tg/'s lavaland rock, and modified slightly to look less repetitive. Ports the lavaland rock tile sprite entirely for future away missions. Adds tree chopping down feature. All trees now have health, and hitting it with things will reduce it. Generally you need something sharp to have a chance of actually felling the tree. Adds log material, which is obtained from chopping trees. Hitting these with a sharp weapon converts them into two planks per log. Can be used to build log walls but otherwise can't be used to craft, at the moment. Ports /tg/ tree sprites. Might have a use for them in away missions, who knows. Makes crystals start anchored and glow. Shoveling snow checks toolspeed now.
287 lines
7.5 KiB
Plaintext
287 lines
7.5 KiB
Plaintext
// Stacked resources. They use a material datum for a lot of inherited values.
|
|
// If you're adding something here, make sure to add it to fifty_spawner_mats.dm as well
|
|
/obj/item/stack/material
|
|
force = 5.0
|
|
throwforce = 5
|
|
w_class = ITEMSIZE_NORMAL
|
|
throw_speed = 3
|
|
throw_range = 3
|
|
max_amount = 50
|
|
item_icons = list(
|
|
slot_l_hand_str = 'icons/mob/items/lefthand_material.dmi',
|
|
slot_r_hand_str = 'icons/mob/items/righthand_material.dmi',
|
|
)
|
|
|
|
var/default_type = DEFAULT_WALL_MATERIAL
|
|
var/material/material
|
|
var/perunit = SHEET_MATERIAL_AMOUNT
|
|
var/apply_colour //temp pending icon rewrite
|
|
|
|
/obj/item/stack/material/New()
|
|
..()
|
|
pixel_x = rand(0,4)-4
|
|
pixel_y = rand(0,4)-4
|
|
|
|
if(!default_type)
|
|
default_type = DEFAULT_WALL_MATERIAL
|
|
material = get_material_by_name("[default_type]")
|
|
if(!material)
|
|
qdel(src)
|
|
return 0
|
|
|
|
recipes = material.get_recipes()
|
|
stacktype = material.stack_type
|
|
if(islist(material.stack_origin_tech))
|
|
origin_tech = material.stack_origin_tech.Copy()
|
|
|
|
if(apply_colour)
|
|
color = material.icon_colour
|
|
|
|
if(material.conductive)
|
|
flags |= CONDUCT
|
|
|
|
matter = material.get_matter()
|
|
update_strings()
|
|
return 1
|
|
|
|
/obj/item/stack/material/get_material()
|
|
return material
|
|
|
|
/obj/item/stack/material/proc/update_strings()
|
|
// Update from material datum.
|
|
singular_name = material.sheet_singular_name
|
|
|
|
if(amount>1)
|
|
name = "[material.use_name] [material.sheet_plural_name]"
|
|
desc = "A stack of [material.use_name] [material.sheet_plural_name]."
|
|
gender = PLURAL
|
|
else
|
|
name = "[material.use_name] [material.sheet_singular_name]"
|
|
desc = "A [material.sheet_singular_name] of [material.use_name]."
|
|
gender = NEUTER
|
|
|
|
/obj/item/stack/material/use(var/used)
|
|
. = ..()
|
|
update_strings()
|
|
return
|
|
|
|
/obj/item/stack/material/transfer_to(obj/item/stack/S, var/tamount=null, var/type_verified)
|
|
var/obj/item/stack/material/M = S
|
|
if(!istype(M) || material.name != M.material.name)
|
|
return 0
|
|
var/transfer = ..(S,tamount,1)
|
|
if(src) update_strings()
|
|
if(M) M.update_strings()
|
|
return transfer
|
|
|
|
/obj/item/stack/material/attack_self(var/mob/user)
|
|
if(!material.build_windows(user, src))
|
|
..()
|
|
|
|
/obj/item/stack/material/attackby(var/obj/item/W, var/mob/user)
|
|
if(istype(W,/obj/item/stack/cable_coil))
|
|
material.build_wired_product(user, W, src)
|
|
return
|
|
else if(istype(W, /obj/item/stack/rods))
|
|
material.build_rod_product(user, W, src)
|
|
return
|
|
return ..()
|
|
|
|
/obj/item/stack/material/iron
|
|
name = "iron"
|
|
icon_state = "sheet-silver"
|
|
default_type = "iron"
|
|
apply_colour = 1
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/sandstone
|
|
name = "sandstone brick"
|
|
icon_state = "sheet-sandstone"
|
|
default_type = "sandstone"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/marble
|
|
name = "marble brick"
|
|
icon_state = "sheet-marble"
|
|
default_type = "marble"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/diamond
|
|
name = "diamond"
|
|
icon_state = "sheet-diamond"
|
|
default_type = "diamond"
|
|
|
|
/obj/item/stack/material/uranium
|
|
name = "uranium"
|
|
icon_state = "sheet-uranium"
|
|
default_type = "uranium"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/phoron
|
|
name = "solid phoron"
|
|
icon_state = "sheet-phoron"
|
|
default_type = "phoron"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/plastic
|
|
name = "plastic"
|
|
icon_state = "sheet-plastic"
|
|
default_type = "plastic"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/gold
|
|
name = "gold"
|
|
icon_state = "sheet-gold"
|
|
default_type = "gold"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/silver
|
|
name = "silver"
|
|
icon_state = "sheet-silver"
|
|
default_type = "silver"
|
|
no_variants = FALSE
|
|
|
|
//Valuable resource, cargo can sell it.
|
|
/obj/item/stack/material/platinum
|
|
name = "platinum"
|
|
icon_state = "sheet-adamantine"
|
|
default_type = "platinum"
|
|
no_variants = FALSE
|
|
|
|
//Extremely valuable to Research.
|
|
/obj/item/stack/material/mhydrogen
|
|
name = "metallic hydrogen"
|
|
icon_state = "sheet-mythril"
|
|
default_type = "mhydrogen"
|
|
no_variants = FALSE
|
|
|
|
//Fuel for MRSPACMAN generator.
|
|
/obj/item/stack/material/tritium
|
|
name = "tritium"
|
|
icon_state = "sheet-silver"
|
|
default_type = "tritium"
|
|
apply_colour = 1
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/osmium
|
|
name = "osmium"
|
|
icon_state = "sheet-silver"
|
|
default_type = "osmium"
|
|
apply_colour = 1
|
|
no_variants = FALSE
|
|
|
|
//R-UST port
|
|
// Fusion fuel.
|
|
/obj/item/stack/material/deuterium
|
|
name = "deuterium"
|
|
icon_state = "sheet-silver"
|
|
default_type = "deuterium"
|
|
apply_colour = 1
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/steel
|
|
name = DEFAULT_WALL_MATERIAL
|
|
icon_state = "sheet-metal"
|
|
default_type = DEFAULT_WALL_MATERIAL
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/plasteel
|
|
name = "plasteel"
|
|
icon_state = "sheet-plasteel"
|
|
default_type = "plasteel"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/durasteel
|
|
name = "durasteel"
|
|
icon_state = "sheet-durasteel"
|
|
item_state = "sheet-metal"
|
|
default_type = "durasteel"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/wood
|
|
name = "wooden plank"
|
|
icon_state = "sheet-wood"
|
|
default_type = "wood"
|
|
|
|
/obj/item/stack/material/log
|
|
name = "log"
|
|
icon_state = "sheet-log"
|
|
default_type = "log"
|
|
no_variants = FALSE
|
|
color = "#824B28"
|
|
max_amount = 25
|
|
w_class = ITEMSIZE_HUGE
|
|
|
|
/obj/item/stack/material/log/sif
|
|
name = "alien log"
|
|
color = "#0099cc"
|
|
|
|
/obj/item/stack/material/log/attackby(var/obj/item/W, var/mob/user)
|
|
if(!istype(W))
|
|
return ..()
|
|
if(W.sharp && W.edge && use(1))
|
|
to_chat(user, "<span class='notice'>You cut up a log into planks.</span>")
|
|
playsound(get_turf(src), 'sound/effects/woodcutting.ogg', 50, 1)
|
|
var/obj/item/stack/material/wood/existing_wood = locate() in user.loc
|
|
var/obj/item/stack/material/wood/new_wood = new(user.loc)
|
|
new_wood.amount = 2
|
|
if(existing_wood)
|
|
if(new_wood.transfer_to(existing_wood))
|
|
to_chat(user, "<span class='notice'>You add the newly-formed wood to the stack. It now contains [existing_wood.amount] planks.</span>")
|
|
else
|
|
return ..()
|
|
|
|
|
|
/obj/item/stack/material/cloth
|
|
name = "cloth"
|
|
icon_state = "sheet-cloth"
|
|
default_type = "cloth"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/cardboard
|
|
name = "cardboard"
|
|
icon_state = "sheet-card"
|
|
default_type = "cardboard"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/snow
|
|
name = "snow"
|
|
desc = "The temptation to build a snowfort rises."
|
|
icon_state = "sheet-snow"
|
|
default_type = "snow"
|
|
|
|
/obj/item/stack/material/leather
|
|
name = "leather"
|
|
desc = "The by-product of mob grinding."
|
|
icon_state = "sheet-leather"
|
|
default_type = "leather"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/glass
|
|
name = "glass"
|
|
icon_state = "sheet-glass"
|
|
default_type = "glass"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/glass/reinforced
|
|
name = "reinforced glass"
|
|
icon_state = "sheet-rglass"
|
|
default_type = "rglass"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/glass/phoronglass
|
|
name = "borosilicate glass"
|
|
desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures"
|
|
singular_name = "borosilicate glass sheet"
|
|
icon_state = "sheet-phoronglass"
|
|
default_type = "borosilicate glass"
|
|
no_variants = FALSE
|
|
|
|
/obj/item/stack/material/glass/phoronrglass
|
|
name = "reinforced borosilicate glass"
|
|
desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures. It is reinforced with few rods."
|
|
singular_name = "reinforced borosilicate glass sheet"
|
|
icon_state = "sheet-phoronrglass"
|
|
default_type = "reinforced borosilicate glass"
|
|
no_variants = FALSE
|