fixes a lot of the outstanding problems with exofabs.

This commit is contained in:
ririchiyo
2015-02-07 23:29:38 -05:00
parent 6b6d816d2d
commit f8869f1dbb
4 changed files with 22 additions and 145 deletions

View File

@@ -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

View File

@@ -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()
. = ..() . = ..()

View File

@@ -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++

View File

@@ -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)