package Ġio . rs box . engine . task . sync . segment Ċ Ċ import Ġio . rs box . engine . net . packet . model . Game Packet Builder Ċ import Ġio . rs box . engine . task . sync . Sync Segment Ċ Ċ /** Ċ Ġ* Ġ@ author ĠK yle ĠEs co bar Ċ Ġ*/ Ċ Ċ class ĠPlayer Location Hash Segment ( private Ġval Ġlast Hash : ĠInt , Ġprivate Ġval Ġcurr Hash : ĠInt ) Ġ: ĠSync Segment Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġencode ( buf : ĠGame Packet Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlast X Ġ= Ġ( last Hash Ġshr Ġ 8 ) Ġand Ġ 0 xFF ĊĠĠĠĠĠĠĠ Ġval Ġlast Z Ġ= Ġlast Hash Ġand Ġ 0 xFF ĊĠĠĠĠĠĠĠ Ġval Ġlast H Ġ= Ġlast Hash Ġshr Ġ 1 6 ĊĊĠĠĠĠĠĠĠ Ġval Ġcurr X Ġ= Ġ( curr Hash Ġshr Ġ 8 ) Ġand Ġ 0 xFF ĊĠĠĠĠĠĠĠ Ġval Ġcurr Z Ġ= Ġcurr Hash Ġand Ġ 0 xFF ĊĠĠĠĠĠĠĠ Ġval Ġcurr H Ġ= Ġcurr Hash Ġshr Ġ 1 6 ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff X Ġ= Ġcurr X Ġ- Ġlast X ĊĠĠĠĠĠĠĠ Ġval Ġdiff Z Ġ= Ġcurr Z Ġ- Ġlast Z ĊĠĠĠĠĠĠĠ Ġval Ġdiff H Ġ= Ġ( curr H Ġ- Ġlast H ) Ġand Ġ 0 x 3 ĊĊĠĠĠĠĠĠĠ Ġif Ġ( last X Ġ== Ġcurr X Ġ&& Ġlast Z Ġ== Ġcurr Z ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAssume Ġthere 's Ġonly Ġa Ġheight Ġdifference Ġas Ġwe Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthat Ġthe Ġhashes Ġdid Ġnot Ġmatch . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġdiff H ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Math . abs ( diff X ) Ġ<= Ġ 1 Ġ&& ĠMath . abs ( diff Z ) Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġonly Ġmoved Ġa Ġtile . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirection : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdx Ġ= Ġcurr X Ġ- Ġlast X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdy Ġ= Ġcurr Z Ġ- Ġlast Z ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dx Ġ== Ġ- 1 Ġ&& Ġdy Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dx Ġ== Ġ 1 Ġ&& Ġdy Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dx Ġ== Ġ- 1 Ġ&& Ġdy Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dx Ġ== Ġ 1 Ġ&& Ġdy Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dy Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dx Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dx Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġdiff H ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 3 , Ġdirection ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġmoved Ġfurther . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 2 , Ġdiff H ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 8 , Ġdiff X Ġand Ġ 0 xFF ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . put Bits ( 8 , Ġdiff Z Ġand Ġ 0 xFF ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }