package Ġcom . dp . advanced gun n ery control . gui Ċ Ċ import Ġcom . fs . star f arer . api . campaign . Custom U IP anel Plugin Ċ import Ġcom . fs . star f arer . api . fleet . F leet Member API Ċ import Ġcom . fs . star f arer . api . input . Input Event API Ċ import Ġcom . fs . star f arer . api . ui .* Ċ import Ġorg . lwjgl . opengl . GL 1 1 Ċ Ċ class ĠShip View Ġ: ĠCustom U IP anel Plugin Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġpos Ġ: ĠPosition API ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbuttons Ġ: ĠMutable List < Button Base <* >> Ġ= Ġmutable ListOf () ĊĠĠĠ Ġoverride Ġfun Ġposition Changed ( pos : ĠPosition API ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġpos ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . pos Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender Below ( alpha : ĠFloat ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpos ?. let Ġ{ Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Push Matrix () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Disable ( GL 1 1 . GL _ TEXTURE _ 2 D ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Enable ( GL 1 1 . GL _ BLEND ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Blend Func ( GL 1 1 . GL _ SRC _ ALPHA , ĠGL 1 1 . GL _ ONE _ MINUS _ SRC _ ALPHA ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Color 4 f ( 0 f , Ġ 1 5 0 f Ġ/ Ġ 2 5 5 f , Ġ 9 0 f Ġ/ Ġ 2 5 5 f , Ġ 0 . 6 f Ġ* Ġalpha ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Begin ( GL 1 1 . GL _ LINES ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl LineWidth ( 1 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x , Ġp . y Ġ+ Ġp . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x Ġ+ Ġp . width , Ġp . y Ġ+ Ġp . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x Ġ+ Ġp . width , Ġp . y Ġ+ Ġp . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x Ġ+ Ġp . width , Ġp . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x Ġ+ Ġp . width , Ġp . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x , Ġp . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x , Ġp . y ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . glVertex 2 f ( p . x , Ġp . y Ġ+ Ġp . height ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl End () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGL 1 1 . gl Pop Matrix () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Mode Button Group ( group : ĠInt , Ġship : ĠF leet Member API , Ġtooltip : ĠTooltip Maker API ){ ĊĠĠĠĠĠĠĠ Ġbuttons . addAll ( Mode Button . create Mode Button Group ( ship , Ġgroup , Ġtooltip )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Suffix Buttons ( group : ĠInt , Ġship : ĠF leet Member API , Ġtooltip : ĠTooltip Maker API ){ ĊĠĠĠĠĠĠĠ Ġbuttons . addAll ( Suffix Button . create Mode Button Group ( ship , Ġgroup , Ġtooltip )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Ship Mode Button Group ( ship : ĠF leet Member API , Ġpanel : ĠCustom Panel API ){ ĊĠĠĠĠĠĠĠ Ġbuttons . addAll ( Ship Mode Button . create Mode Button Group ( ship , Ġpanel )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadvance ( t : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuttons . forEach Ġ{ Ġit . execute Callback If Checked () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess Input ( events : ĠMutable List < Input Event API > ?) Ġ{} Ċ Ċ }