mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-10 15:45:05 +01:00
Fixed plant analyzer crash when the plant graft gives reagent gene, rather than trait gene [NO GBP] (#89089)
## About The Pull Request  Didn't know that some plants have reagent traits defined for grafted traits. It didn't work because the trait_db contained only subtypes of `/datum/plant_gene/trait`, but not `/datum/plant_gene/reagent`. ## Why It's Good For The Game Fix ## Changelog 🆑 fix: Fixed plant analyzer UI crashing on plants that have a reagent gene on their graft fix: Plants with reagent traits in the graft now properly say the name of the grafted reagent /🆑
This commit is contained in:
@@ -219,7 +219,7 @@ GLOBAL_LIST_INIT(allowed_money, typecacheof(list(
|
||||
/// Inits GLOB.plant_traits
|
||||
/proc/init_plant_traits()
|
||||
var/traits = list()
|
||||
for(var/trait_path in subtypesof(/datum/plant_gene/trait))
|
||||
for(var/trait_path in subtypesof(/datum/plant_gene))
|
||||
traits += new trait_path
|
||||
sort_list(traits, GLOBAL_PROC_REF(cmp_typepaths_asc))
|
||||
return traits
|
||||
|
||||
@@ -104,5 +104,3 @@ GLOBAL_LIST_INIT(prototype_organs, typecacheof(list(
|
||||
/obj/item/organ/eyes/dullahan,
|
||||
), only_root_path = TRUE))
|
||||
|
||||
/// list of all plan traits
|
||||
GLOBAL_LIST_INIT(plant_traits, init_plant_traits())
|
||||
|
||||
@@ -56,6 +56,8 @@ GLOBAL_LIST_INIT(blacklisted_metalgen_types, typecacheof(list(
|
||||
)))
|
||||
/// Map of reagent names to its datum path
|
||||
GLOBAL_LIST_INIT(name2reagent, build_name2reagentlist())
|
||||
/// list of all plan traits
|
||||
GLOBAL_LIST_INIT(plant_traits, init_plant_traits())
|
||||
|
||||
/// Initialises all /datum/reagent into a list indexed by reagent id
|
||||
/proc/init_chemical_reagent_list()
|
||||
|
||||
@@ -140,10 +140,10 @@
|
||||
var/list/data = list()
|
||||
data["cycle_seconds"] = HYDROTRAY_CYCLE_DELAY / 10
|
||||
data["trait_db"] = list()
|
||||
for(var/datum/plant_gene/trait/trait as anything in GLOB.plant_traits)
|
||||
for(var/datum/plant_gene/trait as anything in GLOB.plant_traits)
|
||||
var/trait_data = list(list(
|
||||
"path" = trait.type,
|
||||
"name" = trait.name,
|
||||
"name" = trait.get_name(),
|
||||
"icon" = trait.icon,
|
||||
"description" = trait.description
|
||||
))
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
/datum/plant_gene
|
||||
/// The name of the gene.
|
||||
var/name
|
||||
/// Bonus lines displayed on examine.
|
||||
var/description = ""
|
||||
/// The font awesome icon name representing the gene in the seed extractor UI
|
||||
var/icon = FA_ICON_DNA
|
||||
/// Flags that determine if a gene can be modified.
|
||||
@@ -62,7 +64,8 @@
|
||||
var/formatted_name
|
||||
if(!(mutability_flags & PLANT_GENE_REMOVABLE))
|
||||
formatted_name += "Fragile "
|
||||
formatted_name += "[name] production [rate*100]%"
|
||||
var/datum/reagent/reagent = reagent_id
|
||||
formatted_name += "[reagent.name] production [rate*100]%"
|
||||
return formatted_name
|
||||
|
||||
/*
|
||||
@@ -117,8 +120,6 @@
|
||||
/datum/plant_gene/trait
|
||||
/// The rate at which this trait affects something. This can be anything really - why? I dunno.
|
||||
var/rate = 0.05
|
||||
/// Bonus lines displayed on examine.
|
||||
var/description = ""
|
||||
/// Flag - Traits that share an ID cannot be placed on the same plant.
|
||||
var/trait_ids
|
||||
/// Flag - Modifications made to the final product.
|
||||
|
||||
@@ -268,10 +268,10 @@
|
||||
var/list/data = list()
|
||||
data["cycle_seconds"] = HYDROTRAY_CYCLE_DELAY / 10
|
||||
data["trait_db"] = list()
|
||||
for(var/datum/plant_gene/trait/trait as anything in GLOB.plant_traits)
|
||||
for(var/datum/plant_gene/trait as anything in GLOB.plant_traits)
|
||||
var/trait_data = list(list(
|
||||
"path" = trait.type,
|
||||
"name" = trait.name,
|
||||
"name" = trait.get_name(),
|
||||
"icon" = trait.icon,
|
||||
"description" = trait.description
|
||||
))
|
||||
|
||||
@@ -436,9 +436,11 @@ export const TraitTooltip = (props) => {
|
||||
const trait = props.trait_db.find((t) => {
|
||||
return t.path === props.path;
|
||||
});
|
||||
if (!trait) {
|
||||
return;
|
||||
}
|
||||
return (
|
||||
<Tooltip
|
||||
key=""
|
||||
content={
|
||||
<Table>
|
||||
{!!props.grafting && (
|
||||
|
||||
Reference in New Issue
Block a user