mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Merge pull request #1933 from CHOMPStationBot/upstream-merge-10280
[MIRROR] Allow more than one ore processor
This commit is contained in:
@@ -69,6 +69,10 @@ var/global/list/endgame_safespawns = list()
|
|||||||
|
|
||||||
var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
|
var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
|
||||||
|
|
||||||
|
// Ores (for mining)
|
||||||
|
GLOBAL_LIST_EMPTY(ore_data)
|
||||||
|
GLOBAL_LIST_EMPTY(alloy_data)
|
||||||
|
|
||||||
// Strings which corraspond to bodypart covering flags, useful for outputting what something covers.
|
// Strings which corraspond to bodypart covering flags, useful for outputting what something covers.
|
||||||
var/global/list/string_part_flags = list(
|
var/global/list/string_part_flags = list(
|
||||||
"head" = HEAD,
|
"head" = HEAD,
|
||||||
@@ -213,6 +217,16 @@ GLOBAL_LIST_EMPTY(mannequins)
|
|||||||
var/datum/poster/P = new T
|
var/datum/poster/P = new T
|
||||||
NT_poster_designs += P
|
NT_poster_designs += P
|
||||||
|
|
||||||
|
//Ores
|
||||||
|
paths = typesof(/ore)-/ore
|
||||||
|
for(var/oretype in paths)
|
||||||
|
var/ore/OD = new oretype()
|
||||||
|
GLOB.ore_data[OD.name] = OD
|
||||||
|
|
||||||
|
paths = typesof(/datum/alloy)-/datum/alloy
|
||||||
|
for(var/alloytype in paths)
|
||||||
|
GLOB.alloy_data += new alloytype()
|
||||||
|
|
||||||
//Closet appearances
|
//Closet appearances
|
||||||
paths = typesof(/decl/closet_appearance)
|
paths = typesof(/decl/closet_appearance)
|
||||||
for(var/T in paths)
|
for(var/T in paths)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
for(var/ore in machine.ores_processing)
|
for(var/ore in machine.ores_processing)
|
||||||
if(!machine.ores_stored[ore] && !show_all_ores)
|
if(!machine.ores_stored[ore] && !show_all_ores)
|
||||||
continue
|
continue
|
||||||
var/ore/O = ore_data[ore]
|
var/ore/O = GLOB.ore_data[ore]
|
||||||
if(!O)
|
if(!O)
|
||||||
continue
|
continue
|
||||||
data["ores"].Add(list(list(
|
data["ores"].Add(list(list(
|
||||||
@@ -160,7 +160,6 @@
|
|||||||
var/sheets_per_tick = 10
|
var/sheets_per_tick = 10
|
||||||
var/list/ores_processing[0]
|
var/list/ores_processing[0]
|
||||||
var/list/ores_stored[0]
|
var/list/ores_stored[0]
|
||||||
var/static/list/alloy_data
|
|
||||||
var/active = FALSE
|
var/active = FALSE
|
||||||
|
|
||||||
var/points = 0
|
var/points = 0
|
||||||
@@ -188,24 +187,13 @@
|
|||||||
"verdantium" = 60,
|
"verdantium" = 60,
|
||||||
"rutile" = 40) //VOREStation Add
|
"rutile" = 40) //VOREStation Add
|
||||||
|
|
||||||
/obj/machinery/mineral/processing_unit/New()
|
|
||||||
..()
|
|
||||||
// initialize static alloy_data list
|
|
||||||
if(!alloy_data)
|
|
||||||
alloy_data = list()
|
|
||||||
for(var/alloytype in typesof(/datum/alloy)-/datum/alloy)
|
|
||||||
alloy_data += new alloytype()
|
|
||||||
|
|
||||||
// TODO - Initializing this here is insane. Put it in global lists init or something. ~Leshana
|
|
||||||
if(!ore_data || !ore_data.len)
|
|
||||||
for(var/oretype in typesof(/ore)-/ore)
|
|
||||||
var/ore/OD = new oretype()
|
|
||||||
ore_data[OD.name] = OD
|
|
||||||
ores_processing[OD.name] = 0
|
|
||||||
ores_stored[OD.name] = 0
|
|
||||||
|
|
||||||
/obj/machinery/mineral/processing_unit/Initialize()
|
/obj/machinery/mineral/processing_unit/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
for(var/ore in GLOB.ore_data)
|
||||||
|
var/ore/OD = GLOB.ore_data[ore]
|
||||||
|
ores_processing[OD.name] = 0
|
||||||
|
ores_stored[OD.name] = 0
|
||||||
|
|
||||||
// TODO - Eschew input/output machinery and just use dirs ~Leshana
|
// TODO - Eschew input/output machinery and just use dirs ~Leshana
|
||||||
//Locate our output and input machinery.
|
//Locate our output and input machinery.
|
||||||
for (var/dir in cardinal)
|
for (var/dir in cardinal)
|
||||||
@@ -264,13 +252,13 @@
|
|||||||
|
|
||||||
if(ores_stored[metal] > 0 && ores_processing[metal] != 0)
|
if(ores_stored[metal] > 0 && ores_processing[metal] != 0)
|
||||||
|
|
||||||
var/ore/O = ore_data[metal]
|
var/ore/O = GLOB.ore_data[metal]
|
||||||
|
|
||||||
if(!O) continue
|
if(!O) continue
|
||||||
|
|
||||||
if(ores_processing[metal] == PROCESS_ALLOY && O.alloy) //Alloying.
|
if(ores_processing[metal] == PROCESS_ALLOY && O.alloy) //Alloying.
|
||||||
|
|
||||||
for(var/datum/alloy/A in alloy_data)
|
for(var/datum/alloy/A in GLOB.alloy_data)
|
||||||
|
|
||||||
if(A.metaltag in tick_alloys)
|
if(A.metaltag in tick_alloys)
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -664,7 +664,7 @@ turf/simulated/mineral/floor/light_corner
|
|||||||
else
|
else
|
||||||
mineral_name = pickweight(list("marble" = 3,/* "quartz" = 10,*/ "copper" = 20, "tin" = 15, "bauxite" = 15, "uranium" = 10, "platinum" = 10, "hematite" = 70, "rutile" = 15, "carbon" = 70, "diamond" = 2, "gold" = 10, "silver" = 10, "phoron" = 20, "lead" = 3,/* "void opal" = 1,*/ "verdantium" = 1/*, "painite" = 1*/))
|
mineral_name = pickweight(list("marble" = 3,/* "quartz" = 10,*/ "copper" = 20, "tin" = 15, "bauxite" = 15, "uranium" = 10, "platinum" = 10, "hematite" = 70, "rutile" = 15, "carbon" = 70, "diamond" = 2, "gold" = 10, "silver" = 10, "phoron" = 20, "lead" = 3,/* "void opal" = 1,*/ "verdantium" = 1/*, "painite" = 1*/))
|
||||||
|
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/obj/effect/mineral/proc/get_scan_overlay()
|
/obj/effect/mineral/proc/get_scan_overlay()
|
||||||
if(!scanner_image)
|
if(!scanner_image)
|
||||||
var/ore/O = ore_data[ore_key]
|
var/ore/O = GLOB.ore_data[ore_key]
|
||||||
if(O)
|
if(O)
|
||||||
scanner_image = image(icon, loc = get_turf(src), icon_state = (O.scan_icon ? O.scan_icon : icon_state))
|
scanner_image = image(icon, loc = get_turf(src), icon_state = (O.scan_icon ? O.scan_icon : icon_state))
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
var/global/list/ore_data = list()
|
|
||||||
|
|
||||||
/ore
|
/ore
|
||||||
var/name
|
var/name
|
||||||
var/display_name
|
var/display_name
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral)
|
|||||||
|
|
||||||
var/mineral_name = pickweight(list("marble" = 5, "uranium" = 5, "platinum" = 5, "hematite" = 5, "carbon" = 5, "diamond" = 5, "gold" = 5, "silver" = 5, "lead" = 5, "verdantium" = 5, "rutile" = 10, "copper" = 5, "tin" = 5, "bauxite" = 5))
|
var/mineral_name = pickweight(list("marble" = 5, "uranium" = 5, "platinum" = 5, "hematite" = 5, "carbon" = 5, "diamond" = 5, "gold" = 5, "silver" = 5, "lead" = 5, "verdantium" = 5, "rutile" = 10, "copper" = 5, "tin" = 5, "bauxite" = 5))
|
||||||
|
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -95,8 +95,8 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
|
|||||||
"silver" = 3,
|
"silver" = 3,
|
||||||
"phoron" = 25,
|
"phoron" = 25,
|
||||||
"lead" = 1))
|
"lead" = 1))
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
@@ -128,8 +128,8 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
|
|||||||
"silver" = 7,
|
"silver" = 7,
|
||||||
"lead" = 4,
|
"lead" = 4,
|
||||||
"verdantium" = 1))
|
"verdantium" = 1))
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -162,8 +162,8 @@ VIRGO3BB_TURF_CREATE(/turf/simulated/mineral/floor)
|
|||||||
"silver" = 3,
|
"silver" = 3,
|
||||||
"phoron" = 25,
|
"phoron" = 25,
|
||||||
"lead" = 1))
|
"lead" = 1))
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
@@ -195,8 +195,8 @@ VIRGO3BB_TURF_CREATE(/turf/simulated/mineral/floor)
|
|||||||
"silver" = 7,
|
"silver" = 7,
|
||||||
"lead" = 4,
|
"lead" = 4,
|
||||||
"verdantium" = 1))
|
"verdantium" = 1))
|
||||||
if(mineral_name && (mineral_name in ore_data))
|
if(mineral_name && (mineral_name in GLOB.ore_data))
|
||||||
mineral = ore_data[mineral_name]
|
mineral = GLOB.ore_data[mineral_name]
|
||||||
UpdateMineral()
|
UpdateMineral()
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user