package Ġch . lead rian . samp . k amp . core . api . data Ċ Ċ import Ġch . lead rian . samp . k amp . core . api . constants . Player Key Ċ import Ġch . lead rian . samp . k amp . core . runtime . data . Player Keys Impl Ċ Ċ interface ĠPlayer Keys Ġ{ ĊĊĠĠĠ Ġval Ġkeys : ĠInt ĊĊĠĠĠ Ġval Ġup Down : ĠInt ĊĊĠĠĠ Ġval Ġleft Right : ĠInt ĊĊĠĠĠ Ġfun Ġis Pressed ( var arg Ġkeys : ĠPlayer Key ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeys . all Ġ{ Ġthis . keys Ġand Ġit . value Ġ!= Ġ 0 Ġ} ĊĊĠĠĠ Ġfun Ġis Pressed Exactly ( var arg Ġkeys : ĠPlayer Key ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeys . fold ( 0 ) Ġ{ Ġexpected Keys , Ġkey Ġ-> Ġexpected Keys Ġor Ġkey . value Ġ} Ġ== Ġthis . keys ĊĊĠĠĠ Ġfun Ġto Player Keys (): ĠPlayer Keys ĊĊĠĠĠ Ġfun Ġto Mutable Player Keys (): ĠMutable Player Keys Ċ } Ċ Ċ fun Ġplayer Keys Of ( keys : ĠInt Ġ= Ġ 0 , Ġup Down : ĠInt Ġ= Ġ 0 , Ġleft Right : ĠInt Ġ= Ġ 0 ): ĠPlayer Keys Ġ= ĊĠĠĠĠĠĠĠ ĠPlayer Keys Impl ( keys Ġ= Ġkeys , Ġleft Right Ġ= Ġleft Right , Ġup Down Ġ= Ġup Down ) Ċ Ċ fun Ġplayer Keys Of ( var arg Ġkeys : ĠPlayer Key , Ġup Down : ĠInt Ġ= Ġ 0 , Ġleft Right : ĠInt Ġ= Ġ 0 ): ĠPlayer Keys Ġ{ ĊĠĠĠ Ġvar Ġpressed Keys Ġ= Ġ 0 ĊĠĠĠ Ġkeys . forEach Ġ{ Ġkey Ġ-> ĊĠĠĠĠĠĠĠ Ġpressed Keys Ġ= Ġpressed Keys Ġor Ġkey . value ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġplayer Keys Of ( keys Ġ= Ġpressed Keys , Ġup Down Ġ= Ġup Down , Ġleft Right Ġ= Ġleft Right ) Ċ }