Restore old machinery init behavior (#3380)

This commit is contained in:
Lohikar
2017-08-31 22:56:05 -05:00
committed by GitHub
parent c8510ec9a9
commit 67bac9475d
22 changed files with 31 additions and 88 deletions

View File

@@ -153,10 +153,6 @@
var/cap_rating = 0 var/cap_rating = 0
var/manip_rating = 0 var/manip_rating = 0
var/bin_rating = 0 var/bin_rating = 0
if(!component_parts)
cap_rating = 2
manip_rating = 1
bin_rating = 1
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(iscapacitor(P)) if(iscapacitor(P))
cap_rating += P.rating cap_rating += P.rating

View File

@@ -141,9 +141,6 @@
..() ..()
var/cap_rating = 0 var/cap_rating = 0
var/bin_rating = 0 var/bin_rating = 0
if(!component_parts)
cap_rating = 2
bin_rating = 1
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(iscapacitor(P)) if(iscapacitor(P))
cap_rating += P.rating cap_rating += P.rating

View File

@@ -24,7 +24,6 @@
) )
/obj/machinery/sleeper/Initialize() /obj/machinery/sleeper/Initialize()
. = ..() . = ..()
populate_components() // has a beaker so it needs to populate
update_icon() update_icon()
/obj/machinery/sleeper/machinery_process() /obj/machinery/sleeper/machinery_process()
@@ -50,8 +49,6 @@
..() ..()
var/scan_rating = 0 var/scan_rating = 0
var/cap_rating = 0 var/cap_rating = 0
if(!component_parts)
populate_components()
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(isscanner(P)) if(isscanner(P))

View File

@@ -279,9 +279,6 @@
..() ..()
var/mb_rating = 0 var/mb_rating = 0
var/man_rating = 0 var/man_rating = 0
if(!component_parts)
mb_rating = 3
man_rating = 1
for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts) for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts)
mb_rating += MB.rating mb_rating += MB.rating
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)

View File

@@ -250,9 +250,6 @@
..() ..()
var/man_rating = 1 var/man_rating = 1
var/bin_rating = 1 var/bin_rating = 1
if(!component_parts)
man_rating = 1
bin_rating = 1
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(ismatterbin(P)) if(ismatterbin(P))

View File

@@ -278,8 +278,7 @@
/obj/machinery/clonepod/RefreshParts() /obj/machinery/clonepod/RefreshParts()
..() ..()
var/rating = 0 var/rating = 0
if(!component_parts)
rating = 4
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(isscanner(P) || ismanipulator(P)) if(isscanner(P) || ismanipulator(P))
rating += P.rating rating += P.rating

View File

@@ -669,9 +669,6 @@
..() ..()
var/scan_rating = 0 var/scan_rating = 0
var/cap_rating = 0 var/cap_rating = 0
if(!component_parts)
scan_rating = 2
cap_rating = 3
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(isscanner(P)) if(isscanner(P))
@@ -689,4 +686,4 @@
req_components = list( req_components = list(
"/obj/item/weapon/stock_parts/capacitor" = 3, "/obj/item/weapon/stock_parts/capacitor" = 3,
"/obj/item/weapon/stock_parts/scanning_module" = 1, "/obj/item/weapon/stock_parts/scanning_module" = 1,
"/obj/item/weapon/stock_parts/matter_bin" = 2) "/obj/item/weapon/stock_parts/matter_bin" = 2)

View File

@@ -129,11 +129,24 @@ Class Procs:
var/tmp/machinery_processing = FALSE // Are we process()ing in SSmachinery? var/tmp/machinery_processing = FALSE // Are we process()ing in SSmachinery?
var/has_special_power_checks = FALSE // If true, call auto_use_power instead of doing it all in SSmachinery. var/has_special_power_checks = FALSE // If true, call auto_use_power instead of doing it all in SSmachinery.
/obj/machinery/Initialize(mapload, d = 0) /obj/machinery/Initialize(mapload, d = 0, populate_components = TRUE)
. = ..() . = ..()
if(d) if(d)
set_dir(d) set_dir(d)
if (populate_components && component_types)
component_parts = list()
for (var/type in component_types)
var/count = component_types[type]
if (count > 1)
for (var/i in 1 to count)
component_parts += new type(src)
else
component_parts += new type(src)
if(component_parts.len)
RefreshParts()
add_machine(src) add_machine(src)
/obj/machinery/Destroy() /obj/machinery/Destroy()
@@ -262,10 +275,7 @@ Class Procs:
return ..() return ..()
/obj/machinery/proc/RefreshParts(var/makeparts = 0) /obj/machinery/proc/RefreshParts()
if(makeparts)
populate_components()
return
/obj/machinery/proc/assign_uid() /obj/machinery/proc/assign_uid()
uid = gl_uid uid = gl_uid
@@ -325,11 +335,9 @@ Class Procs:
/obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R) /obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R)
if(!istype(R)) if(!istype(R))
return 0 return 0
if(!component_parts) if(!LAZYLEN(component_parts))
if(!component_types) return 0
return 0
else
RefreshParts(1) // make default parts for us to replace
if(panel_open) if(panel_open)
var/obj/item/weapon/circuitboard/CB = locate(/obj/item/weapon/circuitboard) in component_parts var/obj/item/weapon/circuitboard/CB = locate(/obj/item/weapon/circuitboard) in component_parts
var/P var/P
@@ -373,20 +381,6 @@ Class Procs:
user << "<span class='notice'> [C.name]</span>" user << "<span class='notice'> [C.name]</span>"
return 1 return 1
/obj/machinery/proc/populate_components()
if(component_types)
component_parts = list()
for (var/type in component_types)
var/count = component_types[type]
if (count > 1)
for (var/i in 1 to count)
component_parts += new type(src)
else
component_parts += new type(src)
if(component_parts.len)
RefreshParts()
/obj/machinery/proc/dismantle() /obj/machinery/proc/dismantle()
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(loc) var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(loc)

View File

@@ -145,8 +145,6 @@
..() ..()
var/man_rating = 0 var/man_rating = 0
var/cap_rating = 0 var/cap_rating = 0
if(!component_parts)
populate_components()
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(iscapacitor(P)) if(iscapacitor(P))

View File

@@ -32,9 +32,6 @@
..() ..()
charge = 0 charge = 0
repair = -5 repair = -5
if(!component_parts)
charge = 45
repair = 0
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(iscapacitor(P)) if(iscapacitor(P))

View File

@@ -68,18 +68,15 @@
/obj/machinery/mecha_part_fabricator/RefreshParts() /obj/machinery/mecha_part_fabricator/RefreshParts()
res_max_amount = 0 res_max_amount = 0
if(!component_parts)
res_max_amount = 200000
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
res_max_amount += M.rating * 100000 // 200k -> 600k res_max_amount += M.rating * 100000 // 200k -> 600k
var/T = 0 var/T = 0
if(!component_parts)
T = 1
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
T += M.rating T += M.rating
mat_efficiency = 1 - (T - 1) / 4 // 1 -> 0.5 mat_efficiency = 1 - (T - 1) / 4 // 1 -> 0.5
if(!component_parts)
T = 2
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) // Not resetting T is intended; speed is affected by both for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) // Not resetting T is intended; speed is affected by both
T += M.rating T += M.rating
speed = T / 2 // 1 -> 3 speed = T / 2 // 1 -> 3

View File

@@ -251,8 +251,7 @@
harvest_speed = 0 harvest_speed = 0
capacity = 0 capacity = 0
charge_use = 50 charge_use = 50
if(!component_parts)
populate_components()
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(ismicrolaser(P)) if(ismicrolaser(P))
harvest_speed = P.rating harvest_speed = P.rating

View File

@@ -318,10 +318,6 @@
var/scan_rating = 0 var/scan_rating = 0
var/cap_rating = 0 var/cap_rating = 0
var/laser_rating = 0 var/laser_rating = 0
if(!component_parts)
scan_rating = 1
cap_rating = 2
laser_rating = 2
for(var/obj/item/weapon/stock_parts/P in component_parts) for(var/obj/item/weapon/stock_parts/P in component_parts)
if(isscanner(P)) if(isscanner(P))
@@ -332,4 +328,3 @@
laser_rating += P.rating laser_rating += P.rating
sheets_per_tick += scan_rating + cap_rating + laser_rating sheets_per_tick += scan_rating + cap_rating + laser_rating

View File

@@ -20,8 +20,7 @@
/obj/machinery/power/smes/batteryrack/RefreshParts() /obj/machinery/power/smes/batteryrack/RefreshParts()
capacitors_amount = 0 capacitors_amount = 0
cells_amount = 0 cells_amount = 0
if(!component_parts)
populate_components()
var/max_level = 0 //for both input and output var/max_level = 0 //for both input and output
for(var/obj/item/weapon/stock_parts/capacitor/CP in component_parts) for(var/obj/item/weapon/stock_parts/capacitor/CP in component_parts)
max_level += CP.rating max_level += CP.rating

View File

@@ -130,9 +130,7 @@
/obj/machinery/power/port_gen/pacman/RefreshParts() /obj/machinery/power/port_gen/pacman/RefreshParts()
var/temp_rating = 0 var/temp_rating = 0
if(!component_parts)
max_sheets = 50
temp_rating = 2
for(var/obj/item/weapon/stock_parts/SP in component_parts) for(var/obj/item/weapon/stock_parts/SP in component_parts)
if(istype(SP, /obj/item/weapon/stock_parts/matter_bin)) if(istype(SP, /obj/item/weapon/stock_parts/matter_bin))
max_sheets = SP.rating * SP.rating * 50 max_sheets = SP.rating * SP.rating * 50

View File

@@ -15,8 +15,7 @@
/obj/machinery/power/tesla_coil/RefreshParts() /obj/machinery/power/tesla_coil/RefreshParts()
var/power_multiplier = 0 var/power_multiplier = 0
if(!component_parts)
power_multiplier = 1
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
power_multiplier += C.rating power_multiplier += C.rating
input_power_multiplier = power_multiplier input_power_multiplier = power_multiplier
@@ -89,4 +88,4 @@
name = "tesla coil circuitry" name = "tesla coil circuitry"
desc = "The circuitboard for a tesla coil." desc = "The circuitboard for a tesla coil."
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2) origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
req_components = list("/obj/item/weapon/stock_parts/capacitor" = 1) req_components = list("/obj/item/weapon/stock_parts/capacitor" = 1)

View File

@@ -56,8 +56,6 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
/obj/machinery/r_n_d/circuit_imprinter/RefreshParts() /obj/machinery/r_n_d/circuit_imprinter/RefreshParts()
// Adjust reagent container volume to match combined volume of the inserted beakers // Adjust reagent container volume to match combined volume of the inserted beakers
if(!component_parts)
populate_components()
var/T = 0 var/T = 0
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
T += G.reagents.maximum_volume T += G.reagents.maximum_volume

View File

@@ -25,8 +25,7 @@ Note: Must be placed within 3 tiles of the R&D Console
/obj/machinery/r_n_d/destructive_analyzer/RefreshParts() /obj/machinery/r_n_d/destructive_analyzer/RefreshParts()
var/T = 0 var/T = 0
if(!component_parts)
T = 3
for(var/obj/item/weapon/stock_parts/S in component_parts) for(var/obj/item/weapon/stock_parts/S in component_parts)
T += S.rating T += S.rating
decon_mod = T * 0.1 decon_mod = T * 0.1

View File

@@ -56,8 +56,6 @@
return t return t
/obj/machinery/r_n_d/protolathe/RefreshParts() /obj/machinery/r_n_d/protolathe/RefreshParts()
if(!component_parts)
populate_components()
// Adjust reagent container volume to match combined volume of the inserted beakers // Adjust reagent container volume to match combined volume of the inserted beakers
var/T = 0 var/T = 0
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)

View File

@@ -11,11 +11,6 @@
var/busy = 0 var/busy = 0
var/obj/machinery/computer/rdconsole/linked_console var/obj/machinery/computer/rdconsole/linked_console
/obj/machinery/r_n_d/Initialize()
. = ..()
populate_components()
/obj/machinery/r_n_d/attack_hand(mob/user as mob) /obj/machinery/r_n_d/attack_hand(mob/user as mob)
return return
@@ -52,4 +47,4 @@
if(/obj/item/stack/material/uranium) if(/obj/item/stack/material/uranium)
return "uranium" return "uranium"
if(/obj/item/stack/material/diamond) if(/obj/item/stack/material/diamond)
return "diamond" return "diamond"

View File

@@ -26,8 +26,7 @@
/obj/machinery/r_n_d/server/RefreshParts() /obj/machinery/r_n_d/server/RefreshParts()
var/tot_rating = 0 var/tot_rating = 0
if(!component_parts)
tot_rating = 2
for(var/obj/item/weapon/stock_parts/SP in component_parts) for(var/obj/item/weapon/stock_parts/SP in component_parts)
tot_rating += SP.rating tot_rating += SP.rating
idle_power_usage /= max(1, tot_rating) idle_power_usage /= max(1, tot_rating)

View File

@@ -20,8 +20,6 @@
/obj/machinery/telepad/RefreshParts() /obj/machinery/telepad/RefreshParts()
var/E var/E
if(!component_parts)
populate_components()
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
E += C.rating E += C.rating
efficiency = E efficiency = E