package Ġcom . bm . autom ik . alpha Ċ Ċ import Ġcom . badlogic . gdx . graphics . Pixmap Ċ import Ġcom . bm . math s . extensions . clamp Ċ import Ġcom . bm . math s . extensions . difference Ċ import Ġcom . bm . math s . Math s Ċ import Ġcom . bm . autom ik . Cell 2 D Ċ import Ġcom . bm . autom ik . Cell Matrix Ċ Ċ class ĠAlpha Cell ( x : ĠFloat , Ġy : ĠFloat , Ġvar Ġvalue : ĠFloat ) Ġ: ĠCell 2 D < Alpha Cell , ĠAlpha Matrix Model >( x , Ġy ) Ġ{ ĊĠĠĠ Ġvar Ġalpha Per me ability Ġ= Ġ 0 . 5 f ĊĊĠĠĠ Ġprivate Ġval Ġgravity Mode Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġclone (): ĠAlpha Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAlpha Cell ( x , Ġy , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpush ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaverage ( cell , Ġimpact ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( matrix : ĠCell Matrix < Alpha Cell , ĠAlpha Matrix Model >, Ġpix map : ĠP ix map ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġ( matrix Ġas ĠAlpha Matrix ). color ĊĠĠĠĠĠĠĠ Ġpix map . setColor ( color . r , Ġcolor . g , Ġcolor . b , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġpix map . draw Pixel ( x . toInt (), Ġy . toInt ()) ĊĠĠĠĠĠĠĠ Ġ// pix map . fill Rectangle ( x . toInt (), Ġy . toInt (), Ġ 1 , 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmask ( alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġalpha ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ+= Ġcell . value ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubtract ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ-= Ġcell . value ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmultiply ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= ĠMath s . average ( this . value , Ġthis . value Ġ* Ġcell . value , Ġimpact ) ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdivide ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= ĠMath s . average ( this . value , Ġthis . value Ġ/ Ġcell . value , Ġimpact ) ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġaverage ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= ĠMath s . average ( this . value , Ġcell . value , Ġimpact ) ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġscreen ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= ĠMath s . average ( this . value , ĠMath s . screen ( this . value , Ġcell . value ), Ġimpact ) ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġthis . value . clamp ( 0 f , Ġ 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdifference ( cell : ĠAlpha Cell , Ġimpact : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue . difference ( cell . value ) Ġ* Ġimpact ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Empty Array ( size : ĠInt ): ĠArray < Alpha Cell ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf Null s < Alpha Cell ? >( size ) ĊĠĠĠ Ġ} Ċ } Ċ