mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Make plastic sortable for recycling, and make a multitude of items recyclable (#31593)
* Most plastic items are now recyclable, under the label "miscellaneous". Amounts to be balanced, currently same as recipe. * Mineral tiles can be recycled * Gold teeth and collection plates can be recycled * Recycling sorter will now empty out crates and closets before sorting, if possible * New recycling material category for the sorter, plastic. Many items updated to be considered such. * derp recycling sorter fixes * derp what was the point in creating a category otherwise * just in case * dorf recycling * Smithing recycling? It's been a while and I don't remember what I was up to. * Fix #28612 (You cannot recycle coins into their base metal) * Blacksmithing recycling nearly done now, Just some weirdness with tower shields left, plasteel component doesn't transfer materials correctly. * All sheets with materials defined should actually have a .materials now, so I can grab an alloy sheet and use it's materials to decide what's being transferred instead of trying to guess of it's material type/hoping it has a material type at all. Fixes tower shields not having plasma from plasteel. There's still a TODO in how materials are transferred to blacksmithing products, and a bug that predates my changes, but I've no idea how to go about either and this whole PR feels unatomic enough as it already is. I just wanted to be able to recycle plastic bags man, not overhaul crafting. * Sorter will now consider crates it can't open as non-recyclable, since the recycler simply can't deal with those and it wouldn't make sense to create another way to unlock locked crates anyway. No more clogged recycling because of a closed crate. * Update boomerang materials Co-authored-by: Jellyveggie <39123109+Jellyveggie@users.noreply.github.com>
This commit is contained in:
@@ -1095,7 +1095,8 @@ var/default_colour_matrix = list(1,0,0,0,\
|
|||||||
#define RECYK_BIOLOGICAL 3
|
#define RECYK_BIOLOGICAL 3
|
||||||
#define RECYK_METAL 4
|
#define RECYK_METAL 4
|
||||||
#define RECYK_ELECTRONIC 5
|
#define RECYK_ELECTRONIC 5
|
||||||
#define RECYK_WOOD 6
|
#define RECYK_WOOD 6
|
||||||
|
#define RECYK_PLASTIC 7
|
||||||
|
|
||||||
////////////////
|
////////////////
|
||||||
// job.info_flags
|
// job.info_flags
|
||||||
|
|||||||
@@ -851,11 +851,13 @@
|
|||||||
body_parts_covered = HEAD
|
body_parts_covered = HEAD
|
||||||
w_class = W_CLASS_LARGE
|
w_class = W_CLASS_LARGE
|
||||||
slot_flags = SLOT_HEAD
|
slot_flags = SLOT_HEAD
|
||||||
|
starting_materials = list(MAT_PLASTIC = 2*CC_PER_SHEET_MISC) //Recipe calls for 2 sheets
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/caution/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/item/weapon/caution/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(I.is_wirecutter(user))
|
if(I.is_wirecutter(user))
|
||||||
to_chat(user, "<span class='info'>You cut apart the cone into plastic.</span>")
|
to_chat(user, "<span class='info'>You cut apart the cone into plastic.</span>")
|
||||||
drop_stack(/obj/item/stack/sheet/mineral/plastic, user.loc, 2, user)
|
drop_stack(/obj/item/stack/sheet/mineral/plastic, user.loc, starting_materials[MAT_PLASTIC]/CC_PER_SHEET_PLASTIC, user)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
return ..()
|
return ..()
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
max_butts = 14
|
max_butts = 14
|
||||||
health = 24
|
health = 24
|
||||||
starting_materials = list(MAT_PLASTIC = 50)
|
starting_materials = list(MAT_PLASTIC = 50)
|
||||||
w_type = RECYK_MISC
|
w_type = RECYK_PLASTIC
|
||||||
empty_desc = "Cheap plastic ashtray."
|
empty_desc = "Cheap plastic ashtray."
|
||||||
throwforce = 3
|
throwforce = 3
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,8 @@
|
|||||||
desc = "A neatly folded-up plastic bag, making it easier to store."
|
desc = "A neatly folded-up plastic bag, making it easier to store."
|
||||||
icon_state = "folded_bag"
|
icon_state = "folded_bag"
|
||||||
w_class = W_CLASS_TINY
|
w_class = W_CLASS_TINY
|
||||||
|
starting_materials = list(MAT_PLASTIC = 3*CC_PER_SHEET_PLASTIC)//Same as plastic bag
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/folded_bag/attack_self(mob/user)
|
/obj/item/folded_bag/attack_self(mob/user)
|
||||||
to_chat(user, "<span class = 'notice'>You unfold \the [src].</span>")
|
to_chat(user, "<span class = 'notice'>You unfold \the [src].</span>")
|
||||||
@@ -106,3 +108,5 @@
|
|||||||
icon = 'icons/obj/weaponsmithing.dmi'
|
icon = 'icons/obj/weaponsmithing.dmi'
|
||||||
icon_state = "spring"
|
icon_state = "spring"
|
||||||
desc = "A piece of woven metal capable of high elasticity."
|
desc = "A piece of woven metal capable of high elasticity."
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
starting_materials = list(MAT_IRON = 1 * CC_PER_SHEET_METAL)
|
||||||
|
|||||||
@@ -152,6 +152,7 @@
|
|||||||
singular_name = "chain"
|
singular_name = "chain"
|
||||||
irregular_plural = "chains"
|
irregular_plural = "chains"
|
||||||
max_amount = 20
|
max_amount = 20
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/chains/can_stack_with(var/obj/item/other_stack)
|
/obj/item/stack/chains/can_stack_with(var/obj/item/other_stack)
|
||||||
if(!ispath(other_stack) && istype(other_stack) && other_stack.material_type == material_type)
|
if(!ispath(other_stack) && istype(other_stack) && other_stack.material_type == material_type)
|
||||||
|
|||||||
@@ -18,14 +18,6 @@ Mineral Sheets
|
|||||||
|
|
||||||
/obj/item/stack/sheet/mineral
|
/obj/item/stack/sheet/mineral
|
||||||
w_type = RECYK_METAL
|
w_type = RECYK_METAL
|
||||||
var/recyck_mat
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/recycle(var/datum/materials/rec)
|
|
||||||
if(!recyck_mat)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
rec.addAmount(recyck_mat, amount * get_material_cc_per_sheet(recyck_mat))
|
|
||||||
. = 1
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sandstone
|
* Sandstone
|
||||||
@@ -40,7 +32,9 @@ Mineral Sheets
|
|||||||
origin_tech = Tc_MATERIALS + "=1"
|
origin_tech = Tc_MATERIALS + "=1"
|
||||||
sheettype = "sandstone"
|
sheettype = "sandstone"
|
||||||
melt_temperature = MELTPOINT_GLASS
|
melt_temperature = MELTPOINT_GLASS
|
||||||
recyck_mat = MAT_GLASS
|
mat_type = MAT_GLASS
|
||||||
|
perunit = CC_PER_SHEET_GLASS
|
||||||
|
starting_materials = list(MAT_GLASS = CC_PER_SHEET_GLASS)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/sandstone_recipes = list ( \
|
var/list/datum/stack_recipe/sandstone_recipes = list ( \
|
||||||
new/datum/stack_recipe("pile of dirt", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1), \
|
new/datum/stack_recipe("pile of dirt", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1), \
|
||||||
@@ -68,6 +62,7 @@ var/list/datum/stack_recipe/sandstone_recipes = list ( \
|
|||||||
w_class = W_CLASS_MEDIUM
|
w_class = W_CLASS_MEDIUM
|
||||||
melt_temperature = 2473.15
|
melt_temperature = 2473.15
|
||||||
sheettype = "brick"
|
sheettype = "brick"
|
||||||
|
starting_materials = list(MAT_IRON = CC_PER_SHEET_METAL, MAT_GLASS = CC_PER_SHEET_GLASS)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/brick_recipes = list ( \
|
var/list/datum/stack_recipe/brick_recipes = list ( \
|
||||||
new/datum/stack_recipe("fireplace", /obj/machinery/space_heater/campfire/stove/fireplace, 15, time = 10 SECONDS, one_per_turf = 1, on_floor = 1)
|
new/datum/stack_recipe("fireplace", /obj/machinery/space_heater/campfire/stove/fireplace, 15, time = 10 SECONDS, one_per_turf = 1, on_floor = 1)
|
||||||
@@ -89,11 +84,11 @@ var/list/datum/stack_recipe/brick_recipes = list ( \
|
|||||||
w_class = W_CLASS_MEDIUM
|
w_class = W_CLASS_MEDIUM
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=6"
|
origin_tech = Tc_MATERIALS + "=6"
|
||||||
perunit = CC_PER_SHEET_DIAMOND
|
|
||||||
sheettype = "diamond"
|
sheettype = "diamond"
|
||||||
melt_temperature = 3820 // In a vacuum, but fuck dat
|
melt_temperature = 3820 // In a vacuum, but fuck dat
|
||||||
recyck_mat = MAT_DIAMOND
|
perunit = CC_PER_SHEET_DIAMOND
|
||||||
mat_type = MAT_DIAMOND
|
mat_type = MAT_DIAMOND
|
||||||
|
starting_materials = list(MAT_DIAMOND = CC_PER_SHEET_DIAMOND)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/diamond_recipes = list ( \
|
var/list/datum/stack_recipe/diamond_recipes = list ( \
|
||||||
new/datum/stack_recipe("diamond floor tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \
|
new/datum/stack_recipe("diamond floor tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \
|
||||||
@@ -119,11 +114,11 @@ var/list/datum/stack_recipe/diamond_recipes = list ( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_URANIUM
|
|
||||||
sheettype = "uranium"
|
sheettype = "uranium"
|
||||||
melt_temperature = 1132+T0C
|
melt_temperature = 1132+T0C
|
||||||
recyck_mat = MAT_URANIUM
|
perunit = CC_PER_SHEET_URANIUM
|
||||||
mat_type = MAT_URANIUM
|
mat_type = MAT_URANIUM
|
||||||
|
starting_materials = list(MAT_URANIUM = CC_PER_SHEET_URANIUM)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/uranium_recipes = list ( \
|
var/list/datum/stack_recipe/uranium_recipes = list ( \
|
||||||
new/datum/stack_recipe("uranium floor tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \
|
new/datum/stack_recipe("uranium floor tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \
|
||||||
@@ -151,11 +146,11 @@ var/list/datum/stack_recipe/uranium_recipes = list ( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_PLASMATECH + "=2;" + Tc_MATERIALS + "=2"
|
origin_tech = Tc_PLASMATECH + "=2;" + Tc_MATERIALS + "=2"
|
||||||
perunit = CC_PER_SHEET_PLASMA
|
|
||||||
sheettype = "plasma"
|
sheettype = "plasma"
|
||||||
melt_temperature = MELTPOINT_STEEL + 500
|
melt_temperature = MELTPOINT_STEEL + 500
|
||||||
recyck_mat = MAT_PLASMA
|
perunit = CC_PER_SHEET_PLASMA
|
||||||
mat_type = MAT_PLASMA
|
mat_type = MAT_PLASMA
|
||||||
|
starting_materials = list(MAT_PLASMA = CC_PER_SHEET_PLASMA)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/plasma_recipes = list ( \
|
var/list/datum/stack_recipe/plasma_recipes = list ( \
|
||||||
new/datum/stack_recipe("plasma floor tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \
|
new/datum/stack_recipe("plasma floor tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \
|
||||||
@@ -181,11 +176,12 @@ var/list/datum/stack_recipe/plasma_recipes = list ( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=3"
|
origin_tech = Tc_MATERIALS + "=3"
|
||||||
perunit = CC_PER_SHEET_PLASTIC
|
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
sheettype = "plastic"
|
sheettype = "plastic"
|
||||||
recyck_mat = MAT_PLASTIC
|
perunit = CC_PER_SHEET_PLASTIC
|
||||||
mat_type = MAT_PLASTIC
|
mat_type = MAT_PLASTIC
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
starting_materials = list(MAT_PLASTIC = CC_PER_SHEET_PLASTIC)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/plastic_recipes = list ( \
|
var/list/datum/stack_recipe/plastic_recipes = list ( \
|
||||||
new/datum/stack_recipe("plastic floor tile", /obj/item/stack/tile/mineral/plastic, 1, 4, 20), \
|
new/datum/stack_recipe("plastic floor tile", /obj/item/stack/tile/mineral/plastic, 1, 4, 20), \
|
||||||
@@ -232,11 +228,11 @@ var/list/datum/stack_recipe/plastic_recipes = list ( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=4"
|
origin_tech = Tc_MATERIALS + "=4"
|
||||||
perunit = CC_PER_SHEET_GOLD
|
|
||||||
melt_temperature = 1064+T0C
|
melt_temperature = 1064+T0C
|
||||||
sheettype = "gold"
|
sheettype = "gold"
|
||||||
recyck_mat = MAT_GOLD
|
perunit = CC_PER_SHEET_GOLD
|
||||||
mat_type = MAT_GOLD
|
mat_type = MAT_GOLD
|
||||||
|
starting_materials = list(MAT_GOLD = CC_PER_SHEET_GOLD)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/gold_recipes = list ( \
|
var/list/datum/stack_recipe/gold_recipes = list ( \
|
||||||
new/datum/stack_recipe("golden floor tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \
|
new/datum/stack_recipe("golden floor tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \
|
||||||
@@ -272,14 +268,14 @@ var/list/datum/stack_recipe/phazon_recipes = list( \
|
|||||||
icon_state = "sheet-phazon"
|
icon_state = "sheet-phazon"
|
||||||
item_state = "sheet-phazon"
|
item_state = "sheet-phazon"
|
||||||
sheettype = "phazon"
|
sheettype = "phazon"
|
||||||
perunit = CC_PER_SHEET_PHAZON
|
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
throwforce = 15.0
|
throwforce = 15.0
|
||||||
flags = FPRINT
|
flags = FPRINT
|
||||||
siemens_coefficient = 1
|
siemens_coefficient = 1
|
||||||
origin_tech = Tc_MATERIALS + "=9"
|
origin_tech = Tc_MATERIALS + "=9"
|
||||||
recyck_mat = MAT_PHAZON
|
perunit = CC_PER_SHEET_PHAZON
|
||||||
mat_type = MAT_PHAZON
|
mat_type = MAT_PHAZON
|
||||||
|
starting_materials = list(MAT_PHAZON = CC_PER_SHEET_PHAZON)
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/phazon/New(var/loc, var/amount=null)
|
/obj/item/stack/sheet/mineral/phazon/New(var/loc, var/amount=null)
|
||||||
recipes = phazon_recipes
|
recipes = phazon_recipes
|
||||||
@@ -298,10 +294,10 @@ var/list/datum/stack_recipe/phazon_recipes = list( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=3"
|
origin_tech = Tc_MATERIALS + "=3"
|
||||||
perunit = CC_PER_SHEET_SILVER
|
|
||||||
sheettype = "silver"
|
sheettype = "silver"
|
||||||
recyck_mat = MAT_SILVER
|
perunit = CC_PER_SHEET_SILVER
|
||||||
mat_type = MAT_SILVER
|
mat_type = MAT_SILVER
|
||||||
|
starting_materials = list(MAT_SILVER = CC_PER_SHEET_SILVER)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/silver_recipes = list ( \
|
var/list/datum/stack_recipe/silver_recipes = list ( \
|
||||||
new/datum/stack_recipe("silver floor tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \
|
new/datum/stack_recipe("silver floor tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \
|
||||||
@@ -330,10 +326,10 @@ var/list/datum/stack_recipe/silver_recipes = list ( \
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=4"
|
origin_tech = Tc_MATERIALS + "=4"
|
||||||
perunit = CC_PER_SHEET_CLOWN
|
|
||||||
sheettype = "clown"
|
sheettype = "clown"
|
||||||
recyck_mat = MAT_CLOWN
|
perunit = CC_PER_SHEET_CLOWN
|
||||||
mat_type = MAT_CLOWN
|
mat_type = MAT_CLOWN
|
||||||
|
starting_materials = list(MAT_CLOWN = CC_PER_SHEET_CLOWN)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/clown_recipes = list ( \
|
var/list/datum/stack_recipe/clown_recipes = list ( \
|
||||||
new/datum/stack_recipe("bananium floor tile", /obj/item/stack/tile/mineral/clown, 1, 40, 20), \
|
new/datum/stack_recipe("bananium floor tile", /obj/item/stack/tile/mineral/clown, 1, 40, 20), \
|
||||||
@@ -377,8 +373,8 @@ var/list/datum/stack_recipe/clown_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=4"
|
origin_tech = Tc_MATERIALS + "=4"
|
||||||
perunit = CC_PER_SHEET_MYTHRIL
|
perunit = CC_PER_SHEET_MYTHRIL
|
||||||
recyck_mat = MAT_MYTHRIL
|
|
||||||
mat_type = MAT_MYTHRIL
|
mat_type = MAT_MYTHRIL
|
||||||
|
starting_materials = list(MAT_MYTHRIL = CC_PER_SHEET_MYTHRIL)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/mythril_recipes = list ( \
|
var/list/datum/stack_recipe/mythril_recipes = list ( \
|
||||||
blacksmithing_recipes,
|
blacksmithing_recipes,
|
||||||
@@ -399,6 +395,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_PHAROSIUM
|
perunit = CC_PER_SHEET_PHAROSIUM
|
||||||
|
mat_type = MAT_PHAROSIUM
|
||||||
|
starting_materials = list(MAT_PHAROSIUM = CC_PER_SHEET_PHAROSIUM)
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/char
|
/obj/item/stack/sheet/mineral/char
|
||||||
name = "char"
|
name = "char"
|
||||||
@@ -410,6 +408,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_CHAR
|
perunit = CC_PER_SHEET_CHAR
|
||||||
|
mat_type = MAT_CHAR
|
||||||
|
starting_materials = list(MAT_CHAR = CC_PER_SHEET_CHAR)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/claretine
|
/obj/item/stack/sheet/mineral/claretine
|
||||||
@@ -422,6 +422,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_CLARETINE
|
perunit = CC_PER_SHEET_CLARETINE
|
||||||
|
mat_type = MAT_CLARETINE
|
||||||
|
starting_materials = list(MAT_CLARETINE = CC_PER_SHEET_CLARETINE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/cobryl
|
/obj/item/stack/sheet/mineral/cobryl
|
||||||
@@ -434,6 +436,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_COBRYL
|
perunit = CC_PER_SHEET_COBRYL
|
||||||
|
mat_type = MAT_COBRYL
|
||||||
|
starting_materials = list(MAT_COBRYL = CC_PER_SHEET_COBRYL)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/bohrum
|
/obj/item/stack/sheet/mineral/bohrum
|
||||||
@@ -446,6 +450,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_BOHRUM
|
perunit = CC_PER_SHEET_BOHRUM
|
||||||
|
mat_type = MAT_BOHRUM
|
||||||
|
starting_materials = list(MAT_BOHRUM = CC_PER_SHEET_BOHRUM)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/syreline
|
/obj/item/stack/sheet/mineral/syreline
|
||||||
@@ -458,6 +464,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_SYRELINE
|
perunit = CC_PER_SHEET_SYRELINE
|
||||||
|
mat_type = MAT_SYRELINE
|
||||||
|
starting_materials = list(MAT_SYRELINE = CC_PER_SHEET_SYRELINE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/erebite
|
/obj/item/stack/sheet/mineral/erebite
|
||||||
@@ -470,6 +478,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_EREBITE
|
perunit = CC_PER_SHEET_EREBITE
|
||||||
|
mat_type = MAT_EREBITE
|
||||||
|
starting_materials = list(MAT_EREBITE = CC_PER_SHEET_EREBITE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/cerenkite
|
/obj/item/stack/sheet/mineral/cerenkite
|
||||||
@@ -482,6 +492,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_CERENKITE
|
perunit = CC_PER_SHEET_CERENKITE
|
||||||
|
mat_type = MAT_CERENKITE
|
||||||
|
starting_materials = list(MAT_CERENKITE = CC_PER_SHEET_CERENKITE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/cytine
|
/obj/item/stack/sheet/mineral/cytine
|
||||||
@@ -494,6 +506,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_CYTINE
|
perunit = CC_PER_SHEET_CYTINE
|
||||||
|
mat_type = MAT_CYTINE
|
||||||
|
starting_materials = list(MAT_CYTINE = CC_PER_SHEET_CYTINE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/uqill
|
/obj/item/stack/sheet/mineral/uqill
|
||||||
@@ -506,6 +520,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_UQILL
|
perunit = CC_PER_SHEET_UQILL
|
||||||
|
mat_type = MAT_UQILL
|
||||||
|
starting_materials = list(MAT_UQILL = CC_PER_SHEET_UQILL)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/telecrystal
|
/obj/item/stack/sheet/mineral/telecrystal
|
||||||
@@ -518,6 +534,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_TELECRYSTAL
|
perunit = CC_PER_SHEET_TELECRYSTAL
|
||||||
|
mat_type = MAT_TELECRYSTAL
|
||||||
|
starting_materials = list(MAT_TELECRYSTAL = CC_PER_SHEET_TELECRYSTAL)
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/mauxite
|
/obj/item/stack/sheet/mineral/mauxite
|
||||||
name = "mauxite"
|
name = "mauxite"
|
||||||
@@ -529,6 +547,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_MAUXITE
|
perunit = CC_PER_SHEET_MAUXITE
|
||||||
|
mat_type = MAT_MAUXITE
|
||||||
|
starting_materials = list(MAT_MAUXITE = CC_PER_SHEET_MAUXITE)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/molitz
|
/obj/item/stack/sheet/mineral/molitz
|
||||||
@@ -541,6 +561,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_MOLITZ
|
perunit = CC_PER_SHEET_MOLITZ
|
||||||
|
mat_type = MAT_MOLITZ
|
||||||
|
starting_materials = list(MAT_MOLITZ = CC_PER_SHEET_MOLITZ)
|
||||||
|
|
||||||
/obj/item/stack/sheet/mineral/gingerbread
|
/obj/item/stack/sheet/mineral/gingerbread
|
||||||
name = "gingerbread"
|
name = "gingerbread"
|
||||||
@@ -552,6 +574,8 @@ var/list/datum/stack_recipe/mythril_recipes = list ( \
|
|||||||
throw_range = 3
|
throw_range = 3
|
||||||
origin_tech = Tc_MATERIALS + "=5"
|
origin_tech = Tc_MATERIALS + "=5"
|
||||||
perunit = CC_PER_SHEET_GINGERBREAD
|
perunit = CC_PER_SHEET_GINGERBREAD
|
||||||
|
mat_type = MAT_GINGERBREAD
|
||||||
|
starting_materials = list(MAT_GINGERBREAD = CC_PER_SHEET_GINGERBREAD)
|
||||||
|
|
||||||
var/list/datum/stack_recipe/gingerbread_recipes = list ( \
|
var/list/datum/stack_recipe/gingerbread_recipes = list ( \
|
||||||
new/datum/stack_recipe("gingerbread floor tile", /obj/item/stack/tile/mineral/gingerbread, 1, 4, 20), \
|
new/datum/stack_recipe("gingerbread floor tile", /obj/item/stack/tile/mineral/gingerbread, 1, 4, 20), \
|
||||||
@@ -564,5 +588,4 @@ var/list/datum/stack_recipe/gingerbread_recipes = list ( \
|
|||||||
|
|
||||||
/obj/item/stack/sheet/mineral/gingerbread/New(var/loc, var/amount=null)
|
/obj/item/stack/sheet/mineral/gingerbread/New(var/loc, var/amount=null)
|
||||||
recipes = gingerbread_recipes
|
recipes = gingerbread_recipes
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -94,8 +94,9 @@
|
|||||||
autoignition_temperature = AUTOIGNITION_WOOD
|
autoignition_temperature = AUTOIGNITION_WOOD
|
||||||
fire_fuel = 1 //Not used here the same way as elsewhere; see burnFireFuel() below.
|
fire_fuel = 1 //Not used here the same way as elsewhere; see burnFireFuel() below.
|
||||||
sheettype = "wood"
|
sheettype = "wood"
|
||||||
w_type = RECYK_WOOD
|
|
||||||
siemens_coefficient = 0 //no conduct
|
siemens_coefficient = 0 //no conduct
|
||||||
|
w_type = RECYK_WOOD
|
||||||
|
starting_materials = list(MAT_WOOD = CC_PER_SHEET_WOOD)
|
||||||
mat_type = MAT_WOOD
|
mat_type = MAT_WOOD
|
||||||
perunit = CC_PER_SHEET_WOOD
|
perunit = CC_PER_SHEET_WOOD
|
||||||
|
|
||||||
|
|||||||
@@ -172,11 +172,30 @@
|
|||||||
if(inherit_material)
|
if(inherit_material)
|
||||||
var/datum/material/mat
|
var/datum/material/mat
|
||||||
var/datum/materials/materials_list = new
|
var/datum/materials/materials_list = new
|
||||||
|
|
||||||
|
//Figure out the material
|
||||||
if(istype(S, /obj/item/stack/sheet/))
|
if(istype(S, /obj/item/stack/sheet/))
|
||||||
var/obj/item/stack/sheet/SS = S
|
var/obj/item/stack/sheet/SS = S
|
||||||
mat = materials_list.getMaterial(SS.mat_type)
|
mat = materials_list.getMaterial(SS.mat_type)
|
||||||
else if(S.material_type)
|
else if(S.material_type)
|
||||||
mat = S.material_type
|
mat = S.material_type
|
||||||
|
|
||||||
|
// Make it recyclable back into the materials it's made out of
|
||||||
|
// Initialize materials list if doesn't exist already
|
||||||
|
if (R.materials == null)
|
||||||
|
R.materials = new /datum/materials(src)
|
||||||
|
|
||||||
|
// Add main materials off the stack
|
||||||
|
R.materials.addRatioFrom(S.materials, req_amount/(S.amount * res_amount))
|
||||||
|
|
||||||
|
// Add extra materials off additional recipe requisites
|
||||||
|
for (var/req in other_reqs)
|
||||||
|
// other_reqs contains typepaths, so create an instance and use it's materials as base
|
||||||
|
// TODO: pull the materials from the actual object that was used to fulfill the other_req
|
||||||
|
var/atom/movable/A = new req
|
||||||
|
if (A.materials)
|
||||||
|
R.materials.addRatioFrom(A.materials, other_reqs[req]/res_amount)
|
||||||
|
|
||||||
R.dorfify(mat)
|
R.dorfify(mat)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -189,8 +208,33 @@
|
|||||||
src.req_strikes = required_strikes
|
src.req_strikes = required_strikes
|
||||||
|
|
||||||
/datum/stack_recipe/blacksmithing/finish_building(mob/usr, var/obj/item/stack/S, var/obj/R)
|
/datum/stack_recipe/blacksmithing/finish_building(mob/usr, var/obj/item/stack/S, var/obj/R)
|
||||||
|
// Figure out main material from stack
|
||||||
|
if(istype(S, /obj/item/stack/sheet/))
|
||||||
|
var/obj/item/stack/sheet/SS = S
|
||||||
|
var/datum/materials/materials_list = new
|
||||||
|
R.material_type = materials_list.getMaterial(SS.mat_type)
|
||||||
|
qdel(materials_list)
|
||||||
|
else if(S.material_type)
|
||||||
|
R.material_type = S.material_type
|
||||||
|
|
||||||
|
// Apply material info to end product for recycling
|
||||||
|
// Initialize materials list if doesn't exist already
|
||||||
|
if (R.materials == null)
|
||||||
|
R.materials = new /datum/materials(src)
|
||||||
|
|
||||||
|
// Add main materials off the stack
|
||||||
|
R.materials.addRatioFrom(S.materials, req_amount/(S.amount * res_amount))
|
||||||
|
|
||||||
|
// Add extra materials off additional recipe requisites
|
||||||
|
for (var/req in other_reqs)
|
||||||
|
// other_reqs contains typepaths, so create an instance and use it's materials as base
|
||||||
|
// TODO: pull the materials from the actual object that was used to fulfill the other_req
|
||||||
|
var/atom/movable/A = new req
|
||||||
|
if (A.materials)
|
||||||
|
R.materials.addRatioFrom(A.materials, other_reqs[req]/res_amount)
|
||||||
|
|
||||||
//Yeah nah let's put you in a blacksmith_placeholder
|
//Yeah nah let's put you in a blacksmith_placeholder
|
||||||
var/obj/item/I = new /obj/item/smithing_placeholder(usr.loc,S, R, req_strikes)
|
var/obj/item/I = new /obj/item/smithing_placeholder(usr.loc, S, R, req_strikes)
|
||||||
I.name = "unforged [R.name]"
|
I.name = "unforged [R.name]"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
@@ -90,4 +90,6 @@
|
|||||||
max_amount = 50
|
max_amount = 50
|
||||||
w_class = W_CLASS_TINY
|
w_class = W_CLASS_TINY
|
||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 10
|
throw_range = 10
|
||||||
|
starting_materials = list(MAT_GOLD = CC_PER_SHEET_GOLD) // Recipe requires 1 sheet. Could probably stand to be less though
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "plasma"
|
material = "plasma"
|
||||||
|
starting_materials = list(MAT_PLASMA = CC_PER_SHEET_PLASMA / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/uranium
|
/obj/item/stack/tile/mineral/uranium
|
||||||
name = "uranium tile"
|
name = "uranium tile"
|
||||||
@@ -27,6 +29,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "uranium"
|
material = "uranium"
|
||||||
|
starting_materials = list(MAT_URANIUM = CC_PER_SHEET_URANIUM / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/uranium/safe
|
/obj/item/stack/tile/mineral/uranium/safe
|
||||||
name = "isolated uranium tile"
|
name = "isolated uranium tile"
|
||||||
@@ -35,6 +39,11 @@
|
|||||||
icon_state = "tile_uraniumsafe"
|
icon_state = "tile_uraniumsafe"
|
||||||
|
|
||||||
material = "uranium_safe"
|
material = "uranium_safe"
|
||||||
|
starting_materials = list(// Recipe requires 1 uranium sheet per 4 tiles, and 1 reinforced glass sheet per tile
|
||||||
|
MAT_URANIUM = CC_PER_SHEET_URANIUM / 4,
|
||||||
|
MAT_GLASS = CC_PER_SHEET_GLASS,
|
||||||
|
MAT_METAL = CC_PER_SHEET_METAL / 2)
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/uranium/safe/attackby(obj/item/W as obj, mob/user as mob)
|
/obj/item/stack/tile/mineral/uranium/safe/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
if(iscrowbar(W))
|
if(iscrowbar(W))
|
||||||
@@ -67,6 +76,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "gold"
|
material = "gold"
|
||||||
|
starting_materials = list(MAT_GOLD = CC_PER_SHEET_GOLD / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/silver
|
/obj/item/stack/tile/mineral/silver
|
||||||
name = "silver tile"
|
name = "silver tile"
|
||||||
@@ -81,6 +92,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "silver"
|
material = "silver"
|
||||||
|
starting_materials = list(MAT_SILVER = CC_PER_SHEET_SILVER / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/diamond
|
/obj/item/stack/tile/mineral/diamond
|
||||||
name = "diamond tile"
|
name = "diamond tile"
|
||||||
@@ -95,6 +108,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "diamond"
|
material = "diamond"
|
||||||
|
starting_materials = list(MAT_DIAMOND = CC_PER_SHEET_DIAMOND / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/clown
|
/obj/item/stack/tile/mineral/clown
|
||||||
name = "bananium tile"
|
name = "bananium tile"
|
||||||
@@ -109,6 +124,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "bananium"
|
material = "bananium"
|
||||||
|
starting_materials = list(MAT_CLOWN = CC_PER_SHEET_CLOWN / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
var/spam_flag = 0
|
var/spam_flag = 0
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/plastic
|
/obj/item/stack/tile/mineral/plastic
|
||||||
@@ -122,6 +139,8 @@
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 7
|
throw_range = 7
|
||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
starting_materials = list(MAT_PLASTIC = CC_PER_SHEET_PLASTIC / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
material = "plastic"
|
material = "plastic"
|
||||||
|
|
||||||
@@ -138,6 +157,8 @@
|
|||||||
origin_tech = Tc_MATERIALS + "=9"
|
origin_tech = Tc_MATERIALS + "=9"
|
||||||
|
|
||||||
material = "phazon"
|
material = "phazon"
|
||||||
|
starting_materials = list(MAT_PHAZON = CC_PER_SHEET_PHAZON / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/phazon/adjust_slowdown(mob/living/L, current_slowdown)
|
/obj/item/stack/tile/mineral/phazon/adjust_slowdown(mob/living/L, current_slowdown)
|
||||||
current_slowdown *= 0.75
|
current_slowdown *= 0.75
|
||||||
@@ -156,6 +177,8 @@
|
|||||||
max_amount = 60
|
max_amount = 60
|
||||||
|
|
||||||
material = "brass"
|
material = "brass"
|
||||||
|
starting_materials = list(MAT_BRASS = CC_PER_SHEET_BRASS / 4) // Recipe requires 1 sheet for 4 tiles
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/stack/tile/mineral/gingerbread
|
/obj/item/stack/tile/mineral/gingerbread
|
||||||
name = "gingerbread tile"
|
name = "gingerbread tile"
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
autoignition_temperature = AUTOIGNITION_WOOD
|
autoignition_temperature = AUTOIGNITION_WOOD
|
||||||
fire_fuel = 3
|
fire_fuel = 3
|
||||||
|
starting_materials = list(MAT_WOOD = CC_PER_SHEET_WOOD * 6)
|
||||||
|
w_type = RECYK_WOOD
|
||||||
|
|
||||||
/obj/item/weapon/boomerang/Destroy()
|
/obj/item/weapon/boomerang/Destroy()
|
||||||
..()
|
..()
|
||||||
@@ -32,6 +34,7 @@
|
|||||||
|
|
||||||
starting_materials = list(MAT_PLASTIC = 1200)
|
starting_materials = list(MAT_PLASTIC = 1200)
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/boomerang/throw_at(atom/target, range, speed, override = 1)
|
/obj/item/weapon/boomerang/throw_at(atom/target, range, speed, override = 1)
|
||||||
if(!usr)
|
if(!usr)
|
||||||
|
|||||||
@@ -176,6 +176,8 @@
|
|||||||
icon_state = "pspoon"
|
icon_state = "pspoon"
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
bendable = FALSE
|
bendable = FALSE
|
||||||
|
starting_materials = list(MAT_PLASTIC = 1*CC_PER_SHEET_MISC) //Recipe calls for 1 sheet
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Forks
|
* Forks
|
||||||
@@ -254,6 +256,8 @@
|
|||||||
desc = "Yay, no washing up to do."
|
desc = "Yay, no washing up to do."
|
||||||
icon_state = "pfork"
|
icon_state = "pfork"
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
|
starting_materials = list(MAT_PLASTIC = 1*CC_PER_SHEET_MISC) //Recipe calls for 1 sheet
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/kitchen/utensil/fork/teflon
|
/obj/item/weapon/kitchen/utensil/fork/teflon
|
||||||
name = "teflon fork"
|
name = "teflon fork"
|
||||||
@@ -295,6 +299,8 @@
|
|||||||
throwforce = 1
|
throwforce = 1
|
||||||
sharpness = 0.8
|
sharpness = 0.8
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
|
starting_materials = list(MAT_PLASTIC = 1*CC_PER_SHEET_MISC) //Recipe calls for 1 sheet
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/kitchen/utensil/knife/nazi
|
/obj/item/weapon/kitchen/utensil/knife/nazi
|
||||||
name = "nazi knife"
|
name = "nazi knife"
|
||||||
|
|||||||
@@ -257,6 +257,7 @@
|
|||||||
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/shields.dmi', "right_hand" = 'icons/mob/in-hand/right/shields.dmi')
|
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/shields.dmi', "right_hand" = 'icons/mob/in-hand/right/shields.dmi')
|
||||||
flags = FPRINT | SLOWDOWN_WHEN_CARRIED
|
flags = FPRINT | SLOWDOWN_WHEN_CARRIED
|
||||||
slowdown = 4
|
slowdown = 4
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/weapon/shield/riot/rune
|
/obj/item/weapon/shield/riot/rune
|
||||||
name = "rune kiteshield"
|
name = "rune kiteshield"
|
||||||
|
|||||||
@@ -107,6 +107,8 @@
|
|||||||
clothing_flags = BLOCK_BREATHING | BLOCK_GAS_SMOKE_EFFECT
|
clothing_flags = BLOCK_BREATHING | BLOCK_GAS_SMOKE_EFFECT
|
||||||
no_storage_slot = list(slot_head)
|
no_storage_slot = list(slot_head)
|
||||||
foldable = /obj/item/folded_bag
|
foldable = /obj/item/folded_bag
|
||||||
|
starting_materials = list(MAT_PLASTIC = 3*CC_PER_SHEET_MISC) //Recipe calls for 3 sheets
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/storage/bag/plasticbag/can_quick_store(var/obj/item/I)
|
/obj/item/weapon/storage/bag/plasticbag/can_quick_store(var/obj/item/I)
|
||||||
return can_be_inserted(I,1)
|
return can_be_inserted(I,1)
|
||||||
|
|||||||
@@ -773,6 +773,9 @@
|
|||||||
storage_slots = 10
|
storage_slots = 10
|
||||||
can_only_hold = list("/obj/item/weapon/spacecash", "/obj/item/weapon/coin")
|
can_only_hold = list("/obj/item/weapon/spacecash", "/obj/item/weapon/coin")
|
||||||
|
|
||||||
|
starting_materials = list(MAT_GOLD = 2*CC_PER_SHEET_GOLD) // Recipe requires 2 sheets
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Beer Box
|
* Beer Box
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -292,6 +292,7 @@
|
|||||||
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/swords_axes.dmi', "right_hand" = 'icons/mob/in-hand/right/swords_axes.dmi')
|
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/swords_axes.dmi', "right_hand" = 'icons/mob/in-hand/right/swords_axes.dmi')
|
||||||
item_state = "grey_sword"
|
item_state = "grey_sword"
|
||||||
force = 4
|
force = 4
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/weapon/rsscimmy
|
/obj/item/weapon/rsscimmy
|
||||||
name = "rune scimitar"
|
name = "rune scimitar"
|
||||||
|
|||||||
@@ -194,6 +194,7 @@
|
|||||||
desc = "Parts for a plastic table for your space patio."
|
desc = "Parts for a plastic table for your space patio."
|
||||||
icon_state = "plastic_tableparts"
|
icon_state = "plastic_tableparts"
|
||||||
starting_materials = list(MAT_PLASTIC = 3750)
|
starting_materials = list(MAT_PLASTIC = 3750)
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
table_type = /obj/structure/table/plastic
|
table_type = /obj/structure/table/plastic
|
||||||
sheet_type = /obj/item/stack/sheet/mineral/plastic
|
sheet_type = /obj/item/stack/sheet/mineral/plastic
|
||||||
sheet_amount = 5
|
sheet_amount = 5
|
||||||
|
|||||||
@@ -456,6 +456,7 @@
|
|||||||
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/hammer_left.dmi', "right_hand" = 'icons/mob/in-hand/right/hammer_right.dmi')
|
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/hammer_left.dmi', "right_hand" = 'icons/mob/in-hand/right/hammer_right.dmi')
|
||||||
force = 8
|
force = 8
|
||||||
hitsound = 'sound/weapons/toolbox.ogg'
|
hitsound = 'sound/weapons/toolbox.ogg'
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/weapon/pitchfork
|
/obj/item/weapon/pitchfork
|
||||||
name = "pitchfork"
|
name = "pitchfork"
|
||||||
@@ -467,6 +468,7 @@
|
|||||||
sharpness = 2
|
sharpness = 2
|
||||||
sharpness = SHARP_TIP
|
sharpness = SHARP_TIP
|
||||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/weapon/baseball_bat
|
/obj/item/weapon/baseball_bat
|
||||||
name = "baseball bat"
|
name = "baseball bat"
|
||||||
@@ -482,6 +484,7 @@
|
|||||||
throw_speed = 1
|
throw_speed = 1
|
||||||
throw_range = 7
|
throw_range = 7
|
||||||
w_class = W_CLASS_LARGE
|
w_class = W_CLASS_LARGE
|
||||||
|
w_type = RECYK_WOOD
|
||||||
|
|
||||||
/obj/item/weapon/baseball_bat/update_wield(mob/user)
|
/obj/item/weapon/baseball_bat/update_wield(mob/user)
|
||||||
..()
|
..()
|
||||||
@@ -552,6 +555,7 @@
|
|||||||
throw_speed = 1
|
throw_speed = 1
|
||||||
throw_range = 7
|
throw_range = 7
|
||||||
w_class = W_CLASS_LARGE
|
w_class = W_CLASS_LARGE
|
||||||
|
w_type = RECYK_WOOD
|
||||||
|
|
||||||
/obj/item/weapon/spiked_bat/update_wield(mob/user)
|
/obj/item/weapon/spiked_bat/update_wield(mob/user)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
req_access = null
|
req_access = null
|
||||||
opened = 0
|
opened = 0
|
||||||
flags = FPRINT
|
flags = FPRINT
|
||||||
|
w_type = RECYK_PLASTIC //This one's plastic, not metal!
|
||||||
|
|
||||||
// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //???
|
// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //???
|
||||||
var/rigged = 0
|
var/rigged = 0
|
||||||
var/sound_effect_open = 'sound/machines/click.ogg'
|
var/sound_effect_open = 'sound/machines/click.ogg'
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "inflatable"
|
name = "inflatable"
|
||||||
w_class = W_CLASS_MEDIUM
|
w_class = W_CLASS_MEDIUM
|
||||||
icon = 'icons/obj/inflatable.dmi'
|
icon = 'icons/obj/inflatable.dmi'
|
||||||
w_type = RECYK_METAL
|
w_type = RECYK_PLASTIC
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
starting_materials = list(MAT_PLASTIC = 1.5*CC_PER_SHEET_MISC)
|
starting_materials = list(MAT_PLASTIC = 1.5*CC_PER_SHEET_MISC)
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
w_class = W_CLASS_TINY
|
w_class = W_CLASS_TINY
|
||||||
starting_materials = list(MAT_PLASTIC = 10)
|
starting_materials = list(MAT_PLASTIC = 10)
|
||||||
w_type = RECYK_MISC
|
w_type = RECYK_PLASTIC
|
||||||
var/to_cut = 0.8
|
var/to_cut = 0.8
|
||||||
var/authorized_name = "" // The name of the card. Edited at any ATM.
|
var/authorized_name = "" // The name of the card. Edited at any ATM.
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
/obj/item/smithing_placeholder
|
/obj/item/smithing_placeholder
|
||||||
name = "placeholder"
|
name = "placeholder"
|
||||||
desc = "An incomplete object, that requires forging and striking."
|
desc = "An incomplete object, that requires forging and striking."
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
starting_materials = list()
|
||||||
var/obj/result
|
var/obj/result
|
||||||
var/malleable = FALSE
|
var/malleable = FALSE
|
||||||
var/strikes_required
|
var/strikes_required
|
||||||
@@ -16,19 +18,20 @@
|
|||||||
|
|
||||||
/obj/item/smithing_placeholder/Destroy()
|
/obj/item/smithing_placeholder/Destroy()
|
||||||
result = null
|
result = null
|
||||||
|
materials = null
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/smithing_placeholder/New(loc, var/obj/item/stack/S, var/obj/R, var/required_strikes)
|
/obj/item/smithing_placeholder/New(loc, var/obj/item/stack/S, var/obj/R, var/required_strikes)
|
||||||
..()
|
..()
|
||||||
if(istype(S, /obj/item/stack/sheet/))
|
// Copy materials from result
|
||||||
var/obj/item/stack/sheet/SS = S
|
material_type = R.material_type
|
||||||
var/datum/materials/materials_list = new
|
materials.addFrom(R.materials)
|
||||||
material_type = materials_list.getMaterial(SS.mat_type)
|
|
||||||
qdel(materials_list)
|
//Stores recipe result in...
|
||||||
else if(S.material_type)
|
|
||||||
material_type = S.material_type
|
|
||||||
result = R
|
result = R
|
||||||
R.forceMove(null)
|
R.forceMove(null) //...nullspace?
|
||||||
|
|
||||||
|
// Makes it look like a metal sheet
|
||||||
var/obj/item/stack/sheet/mineral/M = material_type.sheettype
|
var/obj/item/stack/sheet/mineral/M = material_type.sheettype
|
||||||
appearance = initial(M.appearance)
|
appearance = initial(M.appearance)
|
||||||
desc = initial(desc)
|
desc = initial(desc)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/obj/item/item_head
|
/obj/item/item_head
|
||||||
icon = 'icons/obj/misc_components.dmi'
|
icon = 'icons/obj/misc_components.dmi'
|
||||||
|
w_type = RECYK_METAL
|
||||||
var/obj/item/result
|
var/obj/item/result
|
||||||
var/list/finishing_requirements = list(/obj/item/item_handle) //Things required to finish this object.
|
var/list/finishing_requirements = list(/obj/item/item_handle) //Things required to finish this object.
|
||||||
|
|
||||||
@@ -17,11 +18,18 @@
|
|||||||
if(do_after(user, src, 4 SECONDS))
|
if(do_after(user, src, 4 SECONDS))
|
||||||
if(istype(I, /obj/item/stack))
|
if(istype(I, /obj/item/stack))
|
||||||
var/obj/item/stack/S = I
|
var/obj/item/stack/S = I
|
||||||
|
var/datum/material/stack_material = S.materials
|
||||||
if(!S.use(1))
|
if(!S.use(1))
|
||||||
return
|
return
|
||||||
|
else
|
||||||
|
if (stack_material) // Not all sheets have a material type
|
||||||
|
materials.addAmount(stack_material.id, S.perunit)
|
||||||
else
|
else
|
||||||
if(!user.drop_item(I))
|
if(!user.drop_item(I))
|
||||||
return
|
return
|
||||||
|
else
|
||||||
|
materials.addFrom(I.materials)
|
||||||
|
|
||||||
finishing_requirements.Remove(I.type)
|
finishing_requirements.Remove(I.type)
|
||||||
gen_quality(quality-I.quality, quality, I.material_type)
|
gen_quality(quality-I.quality, quality, I.material_type)
|
||||||
if(!istype(I, /obj/item/stack))
|
if(!istype(I, /obj/item/stack))
|
||||||
@@ -30,6 +38,8 @@
|
|||||||
if(!finishing_requirements.len) //We're done
|
if(!finishing_requirements.len) //We're done
|
||||||
user.drop_item(src)
|
user.drop_item(src)
|
||||||
result = new result
|
result = new result
|
||||||
|
result.materials = new /datum/materials(result)
|
||||||
|
result.materials.addFrom(materials)
|
||||||
var/datum/material/mat = material_type
|
var/datum/material/mat = material_type
|
||||||
if(mat)
|
if(mat)
|
||||||
result.dorfify(mat, 0, quality)
|
result.dorfify(mat, 0, quality)
|
||||||
@@ -61,18 +71,23 @@
|
|||||||
icon = 'icons/obj/misc_components.dmi'
|
icon = 'icons/obj/misc_components.dmi'
|
||||||
icon_state = "item_handle"
|
icon_state = "item_handle"
|
||||||
desc = "a generic handle, with no purpose."
|
desc = "a generic handle, with no purpose."
|
||||||
|
starting_materials = list(MAT_WOOD = 0.5 * CC_PER_SHEET_WOOD)
|
||||||
|
w_type = RECYK_WOOD
|
||||||
|
|
||||||
/obj/item/sword_handle
|
/obj/item/sword_handle
|
||||||
name = "sword handle"
|
name = "sword handle"
|
||||||
icon = 'icons/obj/misc_components.dmi'
|
icon = 'icons/obj/misc_components.dmi'
|
||||||
icon_state = "sword_handle"
|
icon_state = "sword_handle"
|
||||||
desc = "A generic sword handle."
|
desc = "A generic sword handle."
|
||||||
|
starting_materials = list(MAT_WOOD = 0.5 * CC_PER_SHEET_WOOD, MAT_IRON = 0.5 * CC_PER_SHEET_METAL)
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/cross_guard
|
/obj/item/cross_guard
|
||||||
name = "sword crossguard"
|
name = "sword crossguard"
|
||||||
icon = 'icons/obj/misc_components.dmi'
|
icon = 'icons/obj/misc_components.dmi'
|
||||||
icon_state = "crossguard"
|
icon_state = "crossguard"
|
||||||
desc = "Used to make sure what you're stabbing doesn't slide all the way to your hand, or your hand slide to the stabby bit."
|
desc = "Used to make sure what you're stabbing doesn't slide all the way to your hand, or your hand slide to the stabby bit."
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|
||||||
/obj/item/item_head/sword
|
/obj/item/item_head/sword
|
||||||
name = "sword blade"
|
name = "sword blade"
|
||||||
@@ -106,3 +121,4 @@
|
|||||||
icon_state = "large_plate"
|
icon_state = "large_plate"
|
||||||
finishing_requirements = list(/obj/item/stack/leather_strip)
|
finishing_requirements = list(/obj/item/stack/leather_strip)
|
||||||
result = /obj/item/weapon/shield/riot/tower
|
result = /obj/item/weapon/shield/riot/tower
|
||||||
|
w_type = RECYK_METAL
|
||||||
|
|||||||
@@ -312,7 +312,7 @@
|
|||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
var/stored_name = null
|
var/stored_name = null
|
||||||
starting_materials = list(MAT_PLASTIC = 50)
|
starting_materials = list(MAT_PLASTIC = 50)
|
||||||
w_type = RECYK_MISC
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/clothing/accessory/assistantcard/attack_self(mob/user as mob)
|
/obj/item/clothing/accessory/assistantcard/attack_self(mob/user as mob)
|
||||||
if(!stored_name)
|
if(!stored_name)
|
||||||
|
|||||||
@@ -657,6 +657,8 @@ var/list/tag_suits_list = list()
|
|||||||
body_parts_covered = ARMS|LEGS|FULL_TORSO|IGNORE_INV //transparent
|
body_parts_covered = ARMS|LEGS|FULL_TORSO|IGNORE_INV //transparent
|
||||||
allowed = list (/obj/item/weapon/fireaxe)
|
allowed = list (/obj/item/weapon/fireaxe)
|
||||||
sterility = 100
|
sterility = 100
|
||||||
|
starting_materials = list(MAT_PLASTIC = 5*CC_PER_SHEET_MISC) //Recipe calls for 5 sheets
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/clothing/suit/kefkarobe
|
/obj/item/clothing/suit/kefkarobe
|
||||||
name = "Crazed Jester's Robe"
|
name = "Crazed Jester's Robe"
|
||||||
|
|||||||
@@ -88,6 +88,13 @@ var/global/list/initial_materials //Stores all the matids = 0 in helping New
|
|||||||
if(zero_after)
|
if(zero_after)
|
||||||
mats.storage[mat_id] = 0
|
mats.storage[mat_id] = 0
|
||||||
|
|
||||||
|
/datum/materials/proc/addRatioFrom(var/datum/materials/mats, var/ratio)
|
||||||
|
if(mats == null)
|
||||||
|
return
|
||||||
|
for(var/mat_id in storage)
|
||||||
|
if(mats.storage[mat_id]>0)
|
||||||
|
storage[mat_id] += mats.storage[mat_id] * abs(ratio)
|
||||||
|
|
||||||
//Used to remove all materials from a given materials datum, and transfer it to ours
|
//Used to remove all materials from a given materials datum, and transfer it to ours
|
||||||
/datum/materials/proc/removeFrom(var/datum/materials/mats)
|
/datum/materials/proc/removeFrom(var/datum/materials/mats)
|
||||||
src.addFrom(mats,zero_after=1)
|
src.addFrom(mats,zero_after=1)
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ proc/move_mining_shuttle()
|
|||||||
w_class = W_CLASS_LARGE
|
w_class = W_CLASS_LARGE
|
||||||
sharpness = 0.6
|
sharpness = 0.6
|
||||||
sharpness_flags = SHARP_TIP
|
sharpness_flags = SHARP_TIP
|
||||||
starting_materials = list(MAT_IRON = 3750) //one sheet, but where can you make them?
|
starting_materials = list(MAT_IRON = CC_PER_SHEET_METAL * 4, MAT_WOOD = CC_PER_SHEET_WOOD * 0.5) // Blacksmithing recipe
|
||||||
w_type = RECYK_METAL
|
w_type = RECYK_METAL
|
||||||
toolspeed = 0.4 //moving the delay to an item var so R&D can make improved picks. --NEO
|
toolspeed = 0.4 //moving the delay to an item var so R&D can make improved picks. --NEO
|
||||||
origin_tech = Tc_MATERIALS + "=1;" + Tc_ENGINEERING + "=1"
|
origin_tech = Tc_MATERIALS + "=1;" + Tc_ENGINEERING + "=1"
|
||||||
@@ -226,6 +226,7 @@ proc/move_mining_shuttle()
|
|||||||
toolspeed = 0.3
|
toolspeed = 0.3
|
||||||
origin_tech = Tc_MATERIALS + "=3"
|
origin_tech = Tc_MATERIALS + "=3"
|
||||||
desc = "This makes no metallurgic sense."
|
desc = "This makes no metallurgic sense."
|
||||||
|
starting_materials = list(MAT_SILVER = CC_PER_SHEET_SILVER * 4, MAT_WOOD = CC_PER_SHEET_WOOD * 0.5)
|
||||||
|
|
||||||
/obj/item/weapon/pickaxe/jackhammer
|
/obj/item/weapon/pickaxe/jackhammer
|
||||||
name = "sonic jackhammer"
|
name = "sonic jackhammer"
|
||||||
@@ -256,6 +257,7 @@ proc/move_mining_shuttle()
|
|||||||
toolspeed = 0.2
|
toolspeed = 0.2
|
||||||
origin_tech = Tc_MATERIALS + "=4"
|
origin_tech = Tc_MATERIALS + "=4"
|
||||||
desc = "This makes no metallurgic sense."
|
desc = "This makes no metallurgic sense."
|
||||||
|
starting_materials = list(MAT_GOLD = CC_PER_SHEET_GOLD * 4, MAT_WOOD = CC_PER_SHEET_WOOD * 0.5)
|
||||||
|
|
||||||
/obj/item/weapon/pickaxe/plasmacutter
|
/obj/item/weapon/pickaxe/plasmacutter
|
||||||
name = "plasma torch"
|
name = "plasma torch"
|
||||||
@@ -344,7 +346,8 @@ proc/move_mining_shuttle()
|
|||||||
toolspeed = 0.1
|
toolspeed = 0.1
|
||||||
sharpness = 1.2
|
sharpness = 1.2
|
||||||
origin_tech = Tc_MATERIALS + "=6;" + Tc_ENGINEERING + "=4"
|
origin_tech = Tc_MATERIALS + "=6;" + Tc_ENGINEERING + "=4"
|
||||||
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
|
desc = "A pickaxe with a diamond coated pick head, this is just like minecraft."
|
||||||
|
starting_materials = list(MAT_IRON = CC_PER_SHEET_METAL * 3.9, MAT_DIAMOND = CC_PER_SHEET_DIAMOND * 0.1, MAT_WOOD = CC_PER_SHEET_WOOD * 0.5) // Letting miners recycle their diamond pickaxes into 4 diamond sheets would be a tad bit much, so let's make it mostly iron with diamond bits
|
||||||
|
|
||||||
/obj/item/weapon/pickaxe/drill
|
/obj/item/weapon/pickaxe/drill
|
||||||
name = "mining drill" // Can dig sand as well!
|
name = "mining drill" // Can dig sand as well!
|
||||||
|
|||||||
@@ -388,6 +388,7 @@
|
|||||||
force = 1
|
force = 1
|
||||||
throwforce = 1
|
throwforce = 1
|
||||||
w_class = W_CLASS_TINY
|
w_class = W_CLASS_TINY
|
||||||
|
w_type = RECYK_METAL
|
||||||
var/string_attached
|
var/string_attached
|
||||||
var/material=MAT_IRON // Ore ID, used with coinbags.
|
var/material=MAT_IRON // Ore ID, used with coinbags.
|
||||||
var/credits = 0 // How many credits is this coin worth?
|
var/credits = 0 // How many credits is this coin worth?
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/swords_axes.dmi', "right_hand" = 'icons/mob/in-hand/right/swords_axes.dmi')
|
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/swords_axes.dmi', "right_hand" = 'icons/mob/in-hand/right/swords_axes.dmi')
|
||||||
icon_state = "sword"
|
icon_state = "sword"
|
||||||
w_class = W_CLASS_MEDIUM
|
w_class = W_CLASS_MEDIUM
|
||||||
|
w_type = RECYK_METAL
|
||||||
hitsound = "sound/weapons/bloodyslice.ogg"
|
hitsound = "sound/weapons/bloodyslice.ogg"
|
||||||
flags = FPRINT
|
flags = FPRINT
|
||||||
siemens_coefficient = 1
|
siemens_coefficient = 1
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
var/holes = 0
|
var/holes = 0
|
||||||
var/mode = BLOODPACK_NORMAL
|
var/mode = BLOODPACK_NORMAL
|
||||||
|
|
||||||
|
starting_materials = list(MAT_PLASTIC = 3*CC_PER_SHEET_MISC) //Recipe calls for 3 sheets
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/blood/New()
|
/obj/item/weapon/reagent_containers/blood/New()
|
||||||
..()
|
..()
|
||||||
if(blood_type != null)
|
if(blood_type != null)
|
||||||
|
|||||||
@@ -1220,6 +1220,7 @@
|
|||||||
origin_tech = Tc_MATERIALS + "=1"
|
origin_tech = Tc_MATERIALS + "=1"
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
starting_materials = list(MAT_PLASTIC = 500)
|
starting_materials = list(MAT_PLASTIC = 500)
|
||||||
|
w_type = RECYK_PLASTIC
|
||||||
volume = 100
|
volume = 100
|
||||||
amount_per_transfer_from_this = 10
|
amount_per_transfer_from_this = 10
|
||||||
|
|
||||||
|
|||||||
@@ -5230,7 +5230,7 @@
|
|||||||
slot_flags = SLOT_MASK
|
slot_flags = SLOT_MASK
|
||||||
throwforce = 1
|
throwforce = 1
|
||||||
autoignition_temperature = 0
|
autoignition_temperature = 0
|
||||||
w_type = RECYK_MISC
|
w_type = RECYK_PLASTIC
|
||||||
starting_materials = list(MAT_PLASTIC = 100)
|
starting_materials = list(MAT_PLASTIC = 100)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/chococoin/wrapped
|
/obj/item/weapon/reagent_containers/food/snacks/chococoin/wrapped
|
||||||
|
|||||||
@@ -613,7 +613,7 @@ var/datum/disease2/disease/wizarditis = null
|
|||||||
icon = 'icons/obj/chemical.dmi'
|
icon = 'icons/obj/chemical.dmi'
|
||||||
icon_state = "bleachbottle"
|
icon_state = "bleachbottle"
|
||||||
starting_materials = list(MAT_PLASTIC = 1000)
|
starting_materials = list(MAT_PLASTIC = 1000)
|
||||||
w_type = RECYK_MISC
|
w_type = RECYK_PLASTIC
|
||||||
melt_temperature = MELTPOINT_PLASTIC
|
melt_temperature = MELTPOINT_PLASTIC
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/glass/bottle/bleach/update_icon()
|
/obj/item/weapon/reagent_containers/glass/bottle/bleach/update_icon()
|
||||||
|
|||||||
@@ -302,6 +302,9 @@
|
|||||||
var/items_moved = 0
|
var/items_moved = 0
|
||||||
|
|
||||||
for(var/atom/movable/A in affecting)
|
for(var/atom/movable/A in affecting)
|
||||||
|
if(items_moved >= max_items_moved)
|
||||||
|
break
|
||||||
|
|
||||||
if(A.anchored)
|
if(A.anchored)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -311,8 +314,6 @@
|
|||||||
A.forceMove(out_T)
|
A.forceMove(out_T)
|
||||||
|
|
||||||
items_moved++
|
items_moved++
|
||||||
if(items_moved >= max_items_moved)
|
|
||||||
break
|
|
||||||
|
|
||||||
/obj/machinery/sorting_machine/attack_ai(mob/user)
|
/obj/machinery/sorting_machine/attack_ai(mob/user)
|
||||||
interact(user)
|
interact(user)
|
||||||
@@ -375,7 +376,7 @@
|
|||||||
return MT_UPDATE
|
return MT_UPDATE
|
||||||
//Honestly I didn't expect that to fit in, what, 10 lines of code?
|
//Honestly I didn't expect that to fit in, what, 10 lines of code?
|
||||||
|
|
||||||
//Return 1 if the atom is to be filtered of the line.
|
//Return 1 if the atom is to be filtered off the line.
|
||||||
/obj/machinery/sorting_machine/proc/sort(var/atom/movable/A)
|
/obj/machinery/sorting_machine/proc/sort(var/atom/movable/A)
|
||||||
return prob(50) //Henk because the base sorting machine shouldn't ever exist anyways.
|
return prob(50) //Henk because the base sorting machine shouldn't ever exist anyways.
|
||||||
|
|
||||||
@@ -384,8 +385,8 @@
|
|||||||
/obj/machinery/sorting_machine/recycling
|
/obj/machinery/sorting_machine/recycling
|
||||||
name = "Recycling Sorting Machine"
|
name = "Recycling Sorting Machine"
|
||||||
|
|
||||||
var/list/selected_types = list("Glasses", "Metals/Minerals", "Electronics")
|
var/list/selected_types = list("Glasses", "Metals/Minerals", "Electronics", "Plastic")
|
||||||
var/list/types[6]
|
var/list/types[7]
|
||||||
|
|
||||||
/obj/machinery/sorting_machine/recycling/New()
|
/obj/machinery/sorting_machine/recycling/New()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -405,8 +406,45 @@
|
|||||||
types[RECYK_ELECTRONIC] = "Electronics"
|
types[RECYK_ELECTRONIC] = "Electronics"
|
||||||
types[RECYK_GLASS] = "Glasses"
|
types[RECYK_GLASS] = "Glasses"
|
||||||
types[RECYK_METAL] = "Metals/Minerals"
|
types[RECYK_METAL] = "Metals/Minerals"
|
||||||
|
types[RECYK_PLASTIC] = "Plastic"
|
||||||
types[RECYK_MISC] = "Miscellaneous"
|
types[RECYK_MISC] = "Miscellaneous"
|
||||||
|
|
||||||
|
/obj/machinery/sorting_machine/recycling/process()
|
||||||
|
//Before sorting, we'll try and open any box and crate we find
|
||||||
|
if(stat & (BROKEN | NOPOWER))
|
||||||
|
return
|
||||||
|
|
||||||
|
var/turf/in_T = get_step(src, input_dir)
|
||||||
|
var/items_moved = 0
|
||||||
|
|
||||||
|
//Open any closets/crates
|
||||||
|
for(var/obj/structure/closet/C in in_T.contents)
|
||||||
|
//Only open a limited number of closets
|
||||||
|
if(items_moved >= max_items_moved)
|
||||||
|
break
|
||||||
|
|
||||||
|
if(C.open())
|
||||||
|
C.dump_contents()
|
||||||
|
items_moved++
|
||||||
|
|
||||||
|
//Open any storage items (including those that were in closets/cages)
|
||||||
|
for(var/obj/item/weapon/storage/S in in_T.contents)
|
||||||
|
//Only open a limited number of boxes
|
||||||
|
if(items_moved >= max_items_moved)
|
||||||
|
break
|
||||||
|
|
||||||
|
if(S.contents.len > 0)
|
||||||
|
var/S_old_contents = S.contents.len
|
||||||
|
S.mass_remove(in_T)
|
||||||
|
|
||||||
|
//If you just can't empty it out, treat it as normal rubbish
|
||||||
|
if(S.contents.len < S_old_contents)
|
||||||
|
items_moved++
|
||||||
|
|
||||||
|
//We can't start sorting items until we've made sure we've emptied every box and closet
|
||||||
|
if(items_moved == 0)
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/machinery/sorting_machine/recycling/Topic(href, href_list)
|
/obj/machinery/sorting_machine/recycling/Topic(href, href_list)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(.)
|
if(.)
|
||||||
@@ -426,6 +464,13 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/sorting_machine/recycling/sort(atom/movable/A)
|
/obj/machinery/sorting_machine/recycling/sort(atom/movable/A)
|
||||||
|
// A closet or crate that can't be opened can't be recycled, regardless of recycle type and selected types
|
||||||
|
if (istype(A, /obj/structure/closet))
|
||||||
|
var/obj/structure/closet/C = A
|
||||||
|
if (!C.can_open())
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
// Check atom recycle type is in selected types
|
||||||
return A.w_type && (types[A.w_type] in selected_types)
|
return A.w_type && (types[A.w_type] in selected_types)
|
||||||
|
|
||||||
/obj/machinery/sorting_machine/recycling/interact(mob/user)
|
/obj/machinery/sorting_machine/recycling/interact(mob/user)
|
||||||
|
|||||||
Reference in New Issue
Block a user