package Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . gui . views Ċ Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . Game Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . blocks . Game Block Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . Game Config Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . gui . controls . Keyboard Controls Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . events .* Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . gui . Camera M over Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . gui . fragments . Inventory Fragment Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . gui . fragments . Stats Fragment Ċ import Ġcz . c uni . game dev . nail 1 2 3 . rog ue like . world . World . Companion . with World Ċ import Ġorg . hex works . cob alt . events . api . Dispose Subscription Ċ import Ġorg . hex works . cob alt . events . api . Keep Subscription Ċ import Ġorg . hex works . z ir con . api . Color Themes Ċ import Ġorg . hex works . z ir con . api . Component Decor ations Ċ import Ġorg . hex works . z ir con . api . Components Ċ import Ġorg . hex works . z ir con . api . Game Components Ċ import Ġorg . hex works . z ir con . api . component . Component Alignment Ċ import Ġorg . hex works . z ir con . api . component . Fragment Ċ import Ġorg . hex works . z ir con . api . data . Tile Ċ import Ġorg . hex works . z ir con . api . grid . Tile Grid Ċ import Ġorg . hex works . z ir con . api . u ie vent . Keyboard EventType Ċ import Ġorg . hex works . z ir con . api . view . base . Base View Ċ import Ġorg . hex works . z ir con . internal . Z ir con Ċ Ċ class ĠPlay View ( val Ġtile Grid : ĠTile Grid , Ġval Ġgame : ĠGame Ġ= ĠGame ()): ĠBase View ( tile Grid , ĠColor Themes . arc ()) Ġ{ ĊĠĠĠ Ġval Ġkeyboard Controls Ġ= ĠKeyboard Controls ( game , Ġthis ) ĊĠĠĠ Ġval Ġstats Fragment Ġ= Ġcreate Stats Fragment () ĊĠĠĠ Ġval Ġinventory Fragment Ġ= Ġcreate Inventory Fragment () ĊĊĠĠĠ Ġoverride Ġfun Ġon Dock () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsidebar Ġ= ĠComponents . panel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Size ( Game Config . SIDE BAR _ WIDTH , ĠGame Config . WINDOW _ HEIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Decor ations ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Decor ations . box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġsidebar . add Fragment ( stats Fragment ) ĊĠĠĠĠĠĠĠ Ġsidebar . add Fragment ( inventory Fragment ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlog Area Ġ= ĠComponents . log Area () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Size ( Game Config . WINDOW _ WIDTH Ġ- ĠGame Config . SIDE BAR _ WIDTH , ĠGame Config . LOG _ AREA _ HEIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Alignment Within ( screen , ĠComponent Alignment . BOTTOM _ RIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Decor ations ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Decor ations . box ( title Ġ= Ġ" Log ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Component Ġ= ĠGame Components . new Game Component Builder < Tile , ĠGame Block >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with World ( game . world ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Alignment Within ( screen , ĠComponent Alignment . TOP _ RIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġscreen . addComponent ( sidebar ) ĊĠĠĠĠĠĠĠ Ġscreen . addComponent ( log Area ) ĊĠĠĠĠĠĠĠ Ġscreen . addComponent ( game Component ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHandling Ġkey Ġp resses ĊĠĠĠĠĠĠĠ Ġscreen . handle Keyboard Events ( Keyboard EventType . KEY _ PRES SED ) Ġ{ Ġevent , Ġphase Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Controls . handle Input ( event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠScroll ing ĊĠĠĠĠĠĠĠ Ġval Ġcamera M over Ġ= ĠCamera M over ( game . world ) ĊĠĠĠĠĠĠĠ Ġcamera M over . update () ĊĠĠĠĠĠĠĠ Ġgame . world . player . position Property . onChange Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera M over . update () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠLogging Ġto Ġlog Ġarea ĊĠĠĠĠĠĠĠ ĠZ ir con . event Bus . subscribe To < Logged Event >( key =" Logged Event ") Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Area . add Paragraph ( event . log Message , Ġwith NewLine Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeep Subscription ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠGame Over ĊĠĠĠĠĠĠĠ ĠZ ir con . event Bus . subscribe To < Game Over >( key =" Game Over ") Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace With ( Lo se View ( tile Grid )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDispose Subscription ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Stats Fragment (): ĠStats Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstats Fragment Ġ= ĠStats Fragment ( game . world ) ĊĊĠĠĠĠĠĠĠ ĠZ ir con . event Bus . subscribe To < Game Step >( key =" Game Step ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstats Fragment . update () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeep Subscription ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstats Fragment . update () ĊĠĠĠĠĠĠĠ Ġreturn Ġstats Fragment ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġcreate Inventory Fragment (): ĠInventory Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinventory Fragment Ġ= ĠInventory Fragment ( game . world ) ĊĠĠĠĠĠĠĠ ĠZ ir con . event Bus . subscribe To < Game Step >( key =" Game Step ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory Fragment . update () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeep Subscription ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠZ ir con . event Bus . subscribe To < Inventory Updated >( key =" Inventory Updated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory Fragment . update () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeep Subscription ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinventory Fragment . update () ĊĠĠĠĠĠĠĠ Ġreturn Ġinventory Fragment ĊĠĠĠ Ġ} Ċ }