package Ġk ot city . ui . layers Ċ Ċ import Ġjavafx . scene . paint . Color Ċ import Ġk ot city . data . Block Coordinate Ċ import Ġk ot city . data . City Map Ċ import Ġk ot city . ui . Algorithms Ċ import Ġk ot city . ui . map . City Renderer Ċ import Ġk ot city . util . interpolate Ċ Ċ class ĠDes ir ability Renderer ( private Ġval Ġcity Renderer : ĠCity Renderer , Ġprivate Ġval Ġcity Map : ĠCity Map ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠNE G ATIVE _ COLOR : Ġjava . awt . Color Ġ= Ġjava . awt . Color . RED ĊĠĠĠĠĠĠĠ Ġval ĠPOS ITIVE _ COLOR : Ġjava . awt . Color Ġ= Ġjava . awt . Color . GREEN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( start Block , Ġend Block ) Ġ= Ġcity Renderer . visible Block Range () ĊĊĠĠĠĠĠĠĠ ĠBlock Coordinate . iterate All ( start Block , Ġend Block ) Ġ{ Ġcoord Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdes ir ability Scores Ġ= Ġcity Map . des ir ability Layers . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ coord ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Des ir ability Ġ= Ġ 2 0 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Des ir ability Ġ= Ġ- 2 0 0 . 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Renderer . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Ġ= Ġcoord . x Ġ- Ġblock Offset X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġty Ġ= Ġcoord . y Ġ- Ġblock Offset Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠblockSize Ġ= ĠblockSize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . graphics Context 2 D . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdes ir ability Ġ= Ġdes ir ability Scores . max () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( des ir ability Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Ġ= Ġdetermine Color ( des ir ability , Ġmin Des ir ability , Ġmax Des ir ability ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Rect ( tx Ġ* ĠblockSize , Ġty Ġ* ĠblockSize , ĠblockSize , ĠblockSize ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdetermine Color ( des ir ability : ĠDouble , Ġmin Des ir ability : ĠDouble , Ġmax Des ir ability : ĠDouble ): ĠColor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfraction Ġ= ĠAlgorithms . scale ( des ir ability , Ġmin Des ir ability , Ġmax Des ir ability , Ġ 0 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Color Ġ= ĠNE G ATIVE _ COLOR . interpolate ( POSITIVE _ COLOR , Ġfraction . toFloat ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠColor ( new Color . red , Ġnew Color . green , Ġnew Color . blue , Ġ 0 . 8 ) ĊĠĠĠ Ġ} Ċ } Ċ