package Ġsh mp . simulation . culture . aspect Ċ Ċ import Ġsh mp . simulation . culture . aspect . label er . make Aspect Label er Ċ import Ġsh mp . simulation . space . resource . Gen ome Ċ import Ġsh mp . simulation . space . resource . Resource Ċ import Ġsh mp . simulation . space . resource . inst anti ation . Default Tag Parser Ċ import Ġsh mp . simulation . space . resource . tag . Resource Tag Ċ import Ġsh mp . simulation . space . resource . tag . label er . Resource Label er ĊĊ Ċ class ĠAs pect Resource Tag Parser ( allowed Tags : ĠCollection < Resource Tag >) Ġ: ĠDefault Tag Parser ( allowed Tags ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġparse ( key : ĠChar , Ġtag : ĠString ) Ġ= Ġsuper . parse ( key , Ġtag ) Ġ?: Ġwhen Ġ( key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ'& ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġtag . split ("- ". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAs pect Impro vement Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmake Aspect Label er ( elements [ 0 ]. split ("; ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelements [ 1 ]. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠResource . get Aspect Impro vement ( aspect : ĠAs pect ) Ġ= Ġamount . toDouble () Ġ* Ġtags . get Aspect Impro vement ( aspect ) Ċ Ċ private Ġfun ĠSet < Resource Tag >. get Aspect Impro vement ( aspect : ĠAs pect ) Ġ= Ġfilter Is Instance < Aspect Impro vement Tag >() ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . label er . is Suit able ( aspect ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. sum By Double Ġ{ Ġit . impro vement Ġ} Ċ Ċ class ĠAs pect Impro vement Label er ( val Ġaspect : ĠAs pect ): ĠResource Label er Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis Suit able ( genome : ĠGen ome ) Ġ= Ġgenome . tags . get Aspect Impro vement ( aspect ) Ġ> Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Resource Ġimproves ĠAs pect Ġ${ aspect . name }" Ċ } Ċ