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"
build_number = 32
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

View File

@@ -36,111 +36,6 @@
build_number = 16
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()
. = ..()

View File

@@ -139,23 +139,19 @@
part_sets.len = 0
var/list/cat_set
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])
cat_set = part_sets[D.category]
cat_set = list()
else
cat_set = part_sets[D.category]
cat_set.Add(D)
part_sets[D.category] = cat_set
part_sets[D.category] = cat_set.Copy()
i++
if(!D.category)
if(!part_sets["Misc"])
cat_set = part_sets[D.category]
cat_set = list()
else
if(!D.category && (D.build_type & src.build_number))
cat_set = part_sets["Misc"]
if(!part_sets["Misc"])
cat_set = list()
cat_set.Add(D)
part_sets[D.category] = cat_set
part_sets[D.category] = cat_set.Copy()
i++
if(!istype(D))
warning("[D] was passed into add_part_set and not found to be datum/design")
@@ -185,15 +181,16 @@
if(!part || !istype(part))
return 0
//src.add_part_set(set_name)//if no "set_name" set exists, create
var/list/part_set = part_sets[set_name]
var/list/part_set_list = part_sets[set_name]
if(!part_set_list)
part_set_list = list()
for(var/datum/design/D in part_set)
if(D.build_path == part.build_path)
// del part
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
//deletes an entire part set from part_sets

View File

@@ -24,6 +24,9 @@
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()
..()
@@ -133,8 +136,10 @@
if(istype(design))
if(!design.materials.len)
return 0
add_part_to_set(design.category, design)
if(add_part_to_set(design.category, design))
return 1
else
return 0
return 0
/obj/machinery/r_n_d/fabricator/mechanic_fab/attackby(var/obj/item/O as obj, var/mob/user as mob)