Algae generator produces graphite instead

This commit is contained in:
Aronai Sieyes
2020-03-11 16:33:38 -04:00
parent 9567820d18
commit 86751ec8bd
@@ -1,5 +1,4 @@
#define MATERIAL_ALGAE "algae"
#define MATERIAL_CARBON "carbon"
#define MAT_ALGAE "algae"
/obj/machinery/atmospherics/binary/algae_farm
name = "algae oxygen generator"
@@ -16,9 +15,9 @@
//power_rating = 7500 //7500 W ~ 10 HP
pipe_flags = PIPING_DEFAULT_LAYER_ONLY|PIPING_ONE_PER_TURF
var/list/stored_material = list(MATERIAL_ALGAE = 0, MATERIAL_CARBON = 0)
var/list/stored_material = list(MAT_ALGAE = 0, MAT_GRAPHITE = 0)
// Capacity increases with matter bin quality
var/list/storage_capacity = list(MATERIAL_ALGAE = 10000, MATERIAL_CARBON = 10000)
var/list/storage_capacity = list(MAT_ALGAE = 10000, MAT_GRAPHITE = 10000)
// Speed at which we convert CO2 to O2. Increases with manipulator quality
var/moles_per_tick = 1
// Power required to convert one mole of CO2 to O2 (this is powering the grow lights). Improves with capacitors
@@ -35,7 +34,7 @@
var/const/output_gas = "oxygen"
/obj/machinery/atmospherics/binary/algae_farm/filled
stored_material = list(MATERIAL_ALGAE = 10000, MATERIAL_CARBON = 0)
stored_material = list(MAT_ALGAE = 10000, MAT_GRAPHITE = 0)
/obj/machinery/atmospherics/binary/algae_farm/New()
..()
@@ -70,17 +69,17 @@
last_power_draw = active_power_usage
// STEP 1 - Check material resources
if(stored_material[MATERIAL_ALGAE] < algae_per_mole)
ui_error = "Insufficient [material_display_name(MATERIAL_ALGAE)] to process."
if(stored_material[MAT_ALGAE] < algae_per_mole)
ui_error = "Insufficient [material_display_name(MAT_ALGAE)] to process."
update_icon()
return
if(stored_material[MATERIAL_CARBON] + carbon_per_mole > storage_capacity[MATERIAL_CARBON])
ui_error = "[material_display_name(MATERIAL_CARBON)] output storage is full."
if(stored_material[MAT_GRAPHITE] + carbon_per_mole > storage_capacity[MAT_GRAPHITE])
ui_error = "[material_display_name(MAT_GRAPHITE)] output storage is full."
update_icon()
return
var/moles_to_convert = min(moles_per_tick,\
stored_material[MATERIAL_ALGAE] * algae_per_mole,\
storage_capacity[MATERIAL_CARBON] - stored_material[MATERIAL_CARBON])
stored_material[MAT_ALGAE] * algae_per_mole,\
storage_capacity[MAT_GRAPHITE] - stored_material[MAT_GRAPHITE])
// STEP 2 - Take the CO2 out of the input!
var/power_draw = scrub_gas(src, list(input_gas), air1, internal, moles_to_convert)
@@ -101,8 +100,8 @@
var/converted_moles = min(co2_moles, moles_per_tick)
use_power(converted_moles * power_per_mole)
last_power_draw += converted_moles * power_per_mole
stored_material[MATERIAL_ALGAE] -= converted_moles * algae_per_mole
stored_material[MATERIAL_CARBON] += converted_moles * carbon_per_mole
stored_material[MAT_ALGAE] -= converted_moles * algae_per_mole
stored_material[MAT_GRAPHITE] += converted_moles * carbon_per_mole
// STEP 5 - Output the converted oxygen. Fow now we output for free!
internal.adjust_gas(input_gas, -converted_moles)
@@ -275,7 +274,7 @@
return 1
/material/algae
name = MATERIAL_ALGAE
name = MAT_ALGAE
stack_type = /obj/item/stack/material/algae
icon_colour = "#557722"
shard_type = SHARD_STONE_PIECE
@@ -288,29 +287,9 @@
name = "algae sheet"
icon_state = "sheet-uranium"
color = "#557722"
default_type = MATERIAL_ALGAE
default_type = MAT_ALGAE
/obj/item/stack/material/algae/ten
amount = 10
/material/carbon
name = MATERIAL_CARBON
stack_type = /obj/item/stack/material/carbon
icon_colour = "#303030"
shard_type = SHARD_SPLINTER
weight = 5
hardness = 20
icon_base = "stone"
icon_reinf = "reinf_stone"
door_icon_base = "stone"
sheet_singular_name = "sheet"
sheet_plural_name = "sheets"
/obj/item/stack/material/carbon
name = "carbon sheet"
icon_state = "sheet-metal"
color = "#303030"
default_type = MATERIAL_CARBON
#undef MATERIAL_ALGAE
#undef MATERIAL_CARBON
#undef MAT_ALGAE