mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
fixes a lot of the outstanding problems with exofabs.
This commit is contained in:
@@ -9,26 +9,6 @@
|
|||||||
icon_state = "fab"
|
icon_state = "fab"
|
||||||
build_number = 32
|
build_number = 32
|
||||||
nano_file = "podfab.tmpl"
|
nano_file = "podfab.tmpl"
|
||||||
part_sets = list( //set names must be unique
|
|
||||||
"Pod_Frame" = list(
|
|
||||||
/obj/item/pod_parts/pod_frame/fore_port,
|
|
||||||
/obj/item/pod_parts/pod_frame/fore_starboard,
|
|
||||||
/obj/item/pod_parts/pod_frame/aft_port,
|
|
||||||
/obj/item/pod_parts/pod_frame/aft_starboard
|
|
||||||
),
|
|
||||||
"Pod_Armor" = list(
|
|
||||||
/obj/item/pod_parts/armor
|
|
||||||
),
|
|
||||||
"Pod_Parts" = list(
|
|
||||||
/obj/item/pod_parts/core
|
|
||||||
),
|
|
||||||
"Pod_Weaponry" = list(
|
|
||||||
/obj/item/device/spacepod_equipment/weaponry/taser
|
|
||||||
),
|
|
||||||
"Misc" = list(
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
research_flags = NANOTOUCH | HASOUTPUT | HASMAT_OVER | TAKESMATIN | ACCESS_EMAG | LOCKBOXES
|
research_flags = NANOTOUCH | HASOUTPUT | HASMAT_OVER | TAKESMATIN | ACCESS_EMAG | LOCKBOXES
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,112 +36,7 @@
|
|||||||
build_number = 16
|
build_number = 16
|
||||||
|
|
||||||
screen = MECH_SCREEN_MAIN
|
screen = MECH_SCREEN_MAIN
|
||||||
/*part_sets = list( //set names must be unique
|
|
||||||
"Robot"=list(
|
|
||||||
/obj/item/robot_parts/robot_suit,
|
|
||||||
/obj/item/robot_parts/chest,
|
|
||||||
/obj/item/robot_parts/head,
|
|
||||||
/obj/item/robot_parts/l_arm,
|
|
||||||
/obj/item/robot_parts/r_arm,
|
|
||||||
/obj/item/robot_parts/l_leg,
|
|
||||||
/obj/item/robot_parts/r_leg
|
|
||||||
),
|
|
||||||
"Ripley"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/ripley,
|
|
||||||
/obj/item/mecha_parts/part/ripley_torso,
|
|
||||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/ripley_right_leg
|
|
||||||
),
|
|
||||||
"Odysseus"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/odysseus,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_torso,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_head,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/odysseus_right_leg
|
|
||||||
),
|
|
||||||
|
|
||||||
"Gygax"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/gygax,
|
|
||||||
/obj/item/mecha_parts/part/gygax_torso,
|
|
||||||
/obj/item/mecha_parts/part/gygax_head,
|
|
||||||
/obj/item/mecha_parts/part/gygax_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/gygax_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/gygax_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/gygax_right_leg,
|
|
||||||
/obj/item/mecha_parts/part/gygax_armour
|
|
||||||
),
|
|
||||||
"Durand"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/durand,
|
|
||||||
/obj/item/mecha_parts/part/durand_torso,
|
|
||||||
/obj/item/mecha_parts/part/durand_head,
|
|
||||||
/obj/item/mecha_parts/part/durand_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/durand_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/durand_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/durand_right_leg,
|
|
||||||
/obj/item/mecha_parts/part/durand_armour
|
|
||||||
),
|
|
||||||
"HONK"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/honker,
|
|
||||||
/obj/item/mecha_parts/part/honker_torso,
|
|
||||||
/obj/item/mecha_parts/part/honker_head,
|
|
||||||
/obj/item/mecha_parts/part/honker_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/honker_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/honker_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/honker_right_leg
|
|
||||||
),
|
|
||||||
"Phazon"=list(
|
|
||||||
/obj/item/mecha_parts/chassis/phazon,
|
|
||||||
/obj/item/mecha_parts/part/phazon_torso,
|
|
||||||
/obj/item/mecha_parts/part/phazon_head,
|
|
||||||
/obj/item/mecha_parts/part/phazon_left_arm,
|
|
||||||
/obj/item/mecha_parts/part/phazon_right_arm,
|
|
||||||
/obj/item/mecha_parts/part/phazon_left_leg,
|
|
||||||
/obj/item/mecha_parts/part/phazon_right_leg
|
|
||||||
),
|
|
||||||
"Exosuit_Equipment"=list(
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/drill,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/sleeper,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,
|
|
||||||
/obj/item/mecha_parts/chassis/firefighter,
|
|
||||||
///obj/item/mecha_parts/mecha_equipment/repair_droid,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/generator,
|
|
||||||
///obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar,
|
|
||||||
/obj/item/mecha_parts/mecha_equipment/weapon/honker,
|
|
||||||
/obj/item/mecha_parts/part/phazon_phase_array
|
|
||||||
),
|
|
||||||
|
|
||||||
"Robotic_Upgrade_Modules" = list(
|
|
||||||
/obj/item/borg/upgrade/reset,
|
|
||||||
/obj/item/borg/upgrade/rename,
|
|
||||||
/obj/item/borg/upgrade/restart,
|
|
||||||
/obj/item/borg/upgrade/vtec,
|
|
||||||
/obj/item/borg/upgrade/tasercooler,
|
|
||||||
/obj/item/borg/upgrade/jetpack
|
|
||||||
),
|
|
||||||
|
|
||||||
"Space_Pod" = list(
|
|
||||||
/obj/item/pod_parts/core
|
|
||||||
),
|
|
||||||
"Misc"=list(
|
|
||||||
/obj/item/mecha_parts/mecha_tracking,
|
|
||||||
/obj/item/mecha_parts/janicart_upgrade
|
|
||||||
)
|
|
||||||
)*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/r_n_d/fabricator/mech/New()
|
/obj/machinery/r_n_d/fabricator/mech/New()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
|||||||
@@ -139,23 +139,19 @@
|
|||||||
part_sets.len = 0
|
part_sets.len = 0
|
||||||
var/list/cat_set
|
var/list/cat_set
|
||||||
for(var/datum/design/D in files.known_designs)
|
for(var/datum/design/D in files.known_designs)
|
||||||
if(D.category)
|
if(D.category && (D.build_type & src.build_number))
|
||||||
|
cat_set = part_sets[D.category]
|
||||||
if(!part_sets[D.category])
|
if(!part_sets[D.category])
|
||||||
cat_set = part_sets[D.category]
|
|
||||||
cat_set = list()
|
cat_set = list()
|
||||||
else
|
|
||||||
cat_set = part_sets[D.category]
|
|
||||||
cat_set.Add(D)
|
cat_set.Add(D)
|
||||||
part_sets[D.category] = cat_set
|
part_sets[D.category] = cat_set.Copy()
|
||||||
i++
|
i++
|
||||||
if(!D.category)
|
if(!D.category && (D.build_type & src.build_number))
|
||||||
|
cat_set = part_sets["Misc"]
|
||||||
if(!part_sets["Misc"])
|
if(!part_sets["Misc"])
|
||||||
cat_set = part_sets[D.category]
|
|
||||||
cat_set = list()
|
cat_set = list()
|
||||||
else
|
|
||||||
cat_set = part_sets["Misc"]
|
|
||||||
cat_set.Add(D)
|
cat_set.Add(D)
|
||||||
part_sets[D.category] = cat_set
|
part_sets[D.category] = cat_set.Copy()
|
||||||
i++
|
i++
|
||||||
if(!istype(D))
|
if(!istype(D))
|
||||||
warning("[D] was passed into add_part_set and not found to be datum/design")
|
warning("[D] was passed into add_part_set and not found to be datum/design")
|
||||||
@@ -184,16 +180,17 @@
|
|||||||
/obj/machinery/r_n_d/fabricator/proc/add_part_to_set(set_name as text, var/datum/design/part)
|
/obj/machinery/r_n_d/fabricator/proc/add_part_to_set(set_name as text, var/datum/design/part)
|
||||||
if(!part || !istype(part))
|
if(!part || !istype(part))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
//src.add_part_set(set_name)//if no "set_name" set exists, create
|
var/list/part_set_list = part_sets[set_name]
|
||||||
|
if(!part_set_list)
|
||||||
var/list/part_set = part_sets[set_name]
|
part_set_list = list()
|
||||||
|
|
||||||
for(var/datum/design/D in part_set)
|
for(var/datum/design/D in part_set)
|
||||||
if(D.build_path == part.build_path)
|
if(D.build_path == part.build_path)
|
||||||
// del part
|
// del part
|
||||||
return 0
|
return 0
|
||||||
part_set[++part_set.len] = part
|
part_set_list.Add(part)
|
||||||
|
part_sets[set_name] = part_set_list.Copy()
|
||||||
|
part_set_list.len = 0
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
//deletes an entire part set from part_sets
|
//deletes an entire part set from part_sets
|
||||||
@@ -341,7 +338,7 @@
|
|||||||
if(!files) return
|
if(!files) return
|
||||||
var/i = 0
|
var/i = 0
|
||||||
for(var/datum/design/D in files.known_designs)
|
for(var/datum/design/D in files.known_designs)
|
||||||
if(D.build_type &src.build_number)
|
if(D.build_type & src.build_number)
|
||||||
if(D.category in part_sets)//Checks if it's a valid category
|
if(D.category in part_sets)//Checks if it's a valid category
|
||||||
if(add_part_to_set(D.category, D))//Adds it to said category
|
if(add_part_to_set(D.category, D))//Adds it to said category
|
||||||
i++
|
i++
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
part_sets = list("Items" = list())
|
part_sets = list("Items" = list())
|
||||||
|
|
||||||
|
/obj/machinery/r_n_d/fabricator/mechanic_fab/setup_part_sets()
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/r_n_d/fabricator/mechanic_fab/New()
|
/obj/machinery/r_n_d/fabricator/mechanic_fab/New()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -133,8 +136,10 @@
|
|||||||
if(istype(design))
|
if(istype(design))
|
||||||
if(!design.materials.len)
|
if(!design.materials.len)
|
||||||
return 0
|
return 0
|
||||||
add_part_to_set(design.category, design)
|
if(add_part_to_set(design.category, design))
|
||||||
return 1
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/machinery/r_n_d/fabricator/mechanic_fab/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
/obj/machinery/r_n_d/fabricator/mechanic_fab/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||||
|
|||||||
Reference in New Issue
Block a user