/** Ċ MIT ĠLicense Ċ Ċ Copyright Ġ( c ) Ġ 2 0 1 6 ĠSh a un ĠRe ich Ġ< s re ich 0 2 @ gmail . com > Ċ Ċ Permission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ of Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ in Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ to Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ copies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ furnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ċ The Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ copies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ċ THE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ IMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ AUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ LIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ OUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ SOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . ore . in fin ium Ċ Ċ import Ġcom . art emis . Component Mapper Ċ import Ġcom . art emis . managers . Tag Manager Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . Input Ċ import Ġcom . badlogic . gdx . Input Multip lexer Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Bitmap Font Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . freet ype . Free Type Font Generator Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Stage Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . Tooltip Manager Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . utils . Drag And Drop Ċ import Ġcom . badlogic . gdx . utils . viewport . Stretch Viewport Ċ import Ġcom . es ot eric software . min log . Log Ċ import Ġcom . kot cr ab . vis . ui . Vis UI Ċ import Ġcom . kot cr ab . vis . ui . widget . Vis Dialog Ċ import Ġcom . kot cr ab . vis . ui . widget . Vis Table Ċ import Ġcom . kot cr ab . vis . ui . widget . Vis Text Button Ċ import Ġcom . ore . in fin ium . components .* Ċ import Ġcom . ore . in fin ium . systems . client .* Ċ import Ġcom . ore . in fin ium . util .* Ċ import Ġk tx . app . K tx Application Adapter Ċ import Ġk tx . app . K tx Input Adapter Ċ import Ġk tx . assets . file Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ import Ġkotlin . concurrent . thread Ċ Ċ class ĠO re Client Ġ: ĠK tx Application Adapter , ĠK tx Input Adapter Ġ{ ĊĊĠĠĠ Ġvar Ġleft MouseDown : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġright MouseDown : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġlateinit Ġvar Ġviewport : ĠSt retch Viewport ĊĠĠĠ Ġvar Ġworld : ĠO re World ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġzoom Ġevery Ġn Ġms , Ġwhile Ġzoom Ġkey Ġis Ġheld Ġdown ĊĠĠĠ Ġprivate Ġval Ġzoom Interval Ġ= Ġ 3 0 L ĊĠĠĠ Ġprivate Ġval Ġzoom Timer Ġ= ĠO re Timer () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Player : ĠComponent Mapper < Player Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Sprite : ĠComponent Mapper < Sprite Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Control : ĠComponent Mapper < Cont rollable Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Item : ĠComponent Mapper < Item Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Jump : ĠComponent Mapper < Jump Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Block : ĠComponent Mapper < Block Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Tool : ĠComponent Mapper < Tool Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Light : ĠComponent Mapper < Light Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Device : ĠComponent Mapper < Power Device Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Power Generator : ĠComponent Mapper < Power Generator Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Power Consumer : ĠComponent Mapper < Power Consumer Component > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Door : ĠComponent Mapper < Door Component > ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclient Network System : ĠClient Network System ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtag Manager : ĠTag Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdebug Text Render System : ĠDebug Text Render System ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpower Overlay Render System : ĠPower Overlay Render System ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtile Render System : ĠTile Render System ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsound System : ĠSound System ĊĊĠĠĠ Ġlateinit Ġprivate Ġvar Ġmultip lexer : ĠInput Multip lexer ĊĊĠĠĠ Ġlateinit Ġvar Ġstage : ĠStage ĊĊĠĠĠ Ġlateinit Ġvar Ġroot Table : ĠVis Table ĊĠĠĠ Ġlateinit Ġvar Ġchat : ĠChat ĊĠĠĠ Ġprivate Ġvar Ġsidebar : ĠSidebar ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġh ud : ĠH ud ĊĠĠĠ Ġlateinit Ġvar Ġloading Screen : ĠLoading Screen ĊĊĠĠĠ Ġprivate Ġvar Ġdrag And Drop : ĠDrag And Drop ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġdialog : ĠVis Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchat Dialog : ĠChat Dialog ĊĊĠĠĠ Ġprivate Ġvar Ġhot bar View : ĠHot bar Inventory View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġinventory View : ĠInventory View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdebug Profiler View : ĠDebug Profiler View ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġhot bar Inventory : ĠHot bar Inventory ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġinventory : ĠInventory ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġgenerator Control Panel View : ĠGenerator Control Panel View ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġgenerator Inventory : ĠGenerator Inventory ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġserver : ĠO re Server ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġserver Thread : ĠThread ? Ġ= Ġnull ĊĊĠĠĠ Ġlateinit Ġvar Ġbitmap Font _ 8 pt : ĠBitmap Font ĊĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġfont Generator : ĠFree Type Font Generator ĊĊĠĠĠ Ġclass ĠState ( val Ġtype : ĠGui State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenter : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexit : Ġ() Ġ-> ĠUnit ) ĊĊĠĠĠ Ġenum Ġclass ĠGui State Ġ{ ĊĠĠĠĠĠĠĠ ĠLoading Screen , ĊĠĠĠĠĠĠĠ ĠIn Game , ĊĠĠĠĠĠĠĠ ĠMain Menu ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠState Machine Stack Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstack Ġ= ĠArray Deque < State >() ĊĠĠĠĠĠĠĠ Ġfun Ġpop (): ĠState ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġstack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ?. exit ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġs ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġpeek (): ĠState ? Ġ= Ġstack . peek () ĊĊĠĠĠĠĠĠĠ Ġfun Ġpush ( s : ĠState ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs . enter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġgui States Ġ= ĠState Machine Stack () ĊĠĠĠ Ġlateinit Ġvar Ġin GameState : ĠState ĊĠĠĠ Ġlateinit Ġvar Ġloading Screen State : ĠState ĊĊĠĠĠ Ġoverride Ġfun Ġcreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġfor Ġdebugging Ġk ry onet ĊĠĠĠĠĠĠĠ Ġif Ġ( O re Settings . network Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . set ( Log . LEVEL _ DEBUG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠThread . currentThread (). name Ġ= Ġ" client Ġrender Ġthread Ġ( GL )" ĊĊĠĠĠĠĠĠĠ Ġdrag And Drop Ġ= ĠDrag And Drop () ĊĊĠĠĠĠĠĠĠ Ġviewport Ġ= ĠSt retch Viewport ( O re Settings . width . toFloat (), ĠO re Settings . height . toFloat ()) ĊĊĠĠĠĠĠĠĠ Ġ// load Ġbefore Ġstage ĊĠĠĠĠĠĠĠ ĠVis UI . load ( ore Skin ) ĊĠĠĠĠĠĠĠ ĠTooltip Manager . getInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Time Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide All () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstage Ġ= ĠStage ( viewport ) ĊĠĠĠĠĠĠĠ Ġroot Table Ġ= ĠVis Table () ĊĠĠĠĠĠĠĠ Ġroot Table . setFill Parent ( true ) ĊĠĠĠĠĠĠĠ Ġstage . add Actor ( root Table ) ĊĊĠĠĠĠĠĠĠ Ġmultip lexer Ġ= ĠInput Multip lexer ( stage , Ġthis ) ĊĠĠĠĠĠĠĠ ĠG dx . input . input Processor Ġ= Ġmultip lexer ĊĊĠĠĠĠĠĠĠ Ġ// fix me : Ġthis Ġreally Ġneeds Ġto Ġbe Ġstripped Ġout Ġof Ġthe Ġclient , Ġput Ġin Ġa Ġproper ĊĠĠĠĠĠĠĠ Ġ// system Ġor Ġsomething ĊĠĠĠĠĠĠĠ Ġfont Generator Ġ= ĠFree Type Font Generator ( file (" fonts / Ubuntu - L . ttf ")) ĊĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= ĠFree Type Font Generator . Free Type Font Parameter () ĊĠĠĠĠĠĠĠ Ġparameter . size Ġ= Ġ 1 3 ĊĠĠĠĠĠĠĠ Ġbitmap Font _ 8 pt Ġ= Ġfont Generator . generate Font ( parameter ) ĊĊĠĠĠĠĠĠĠ Ġfont Generator . dispose () ĊĊĠĠĠĠĠĠĠ Ġchat Dialog Ġ= ĠChat Dialog ( this , Ġstage , Ġroot Table ) ĊĠĠĠĠĠĠĠ Ġmultip lexer . add Processor ( chat Dialog . input Listener ) ĊĊĠĠĠĠĠĠĠ Ġchat Ġ= ĠChat () ĊĠĠĠĠĠĠĠ Ġchat . addListener ( chat Dialog ) ĊĊĠĠĠĠĠĠĠ Ġh ud Ġ= ĠH ud ( this , Ġstage , Ġroot Table ) ĊĠĠĠĠĠĠĠ Ġloading Screen Ġ= ĠLoading Screen ( this , Ġstage , Ġroot Table ) ĊĊĠĠĠĠĠĠĠ Ġsidebar Ġ= ĠSidebar ( stage , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġin GameState Ġ= ĠState ( type Ġ= ĠGui State . Loading Screen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Table . add ( chat Dialog . container ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expand (). bottom (). left () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. pad Bottom ( 5 f ). size ( 4 0 0 f , Ġ 2 0 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit Ġ= Ġ{ Ġroot Table . clear () Ġ}) ĊĊĠĠĠĠĠĠĠ Ġloading Screen State Ġ= ĠState ( type Ġ= ĠGui State . Loading Screen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* se vere Ġhack */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Table . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Table . add ( loading Screen ). fill (). expand () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit Ġ= Ġ{ Ġroot Table . clear () Ġ}) ĊĠĠĠĠĠĠĠ Ġgui States . push ( loading Screen State ) ĊĊĠĠĠĠĠĠĠ Ġstart Client Hosted Server And Join () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Primary Attack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmouse World Coords Ġ= Ġworld !!. mouse Position World Coords () ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĊĠĠĠĠĠĠĠ Ġval Ġc Player Ġ= Ġm Player . get ( player ) ĊĠĠĠĠĠĠĠ Ġval Ġequ ipped Item Ġ= Ġc Player . equ ipped Primary Item ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Invalid Entity ( equ ipped Item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġblock Comp Ġ= Ġm Block . opt ( equ ipped Item ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( block Comp Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġmouse World Coords . x . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġmouse World Coords . y . toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock Pl aced Ġ= Ġworld !!. attempt Block Placement ( x , Ġy , Ġblock Comp . block Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block Pl aced ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Network System . send Block Place ( x , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsound System . play Dir t Place () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġequ ipped Item Comp Ġ= Ġm Item . opt ( equ ipped Item ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġequ ipped Tool Comp Ġ= Ġm Tool . opt ( equ ipped Item ) ĊĠĠĠĠĠĠĠ Ġif Ġ( equ ipped Tool Comp Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// note , Ġdig ging Ġis Ġhandled Ġby Ġits Ġown Ġsystem , Ġnot Ġanywhere Ġnear Ġhere . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattempt Tool Attack ( c Player , Ġequ ipped Tool Comp , Ġmouse World Coords ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( c Player . place able Item Timer . reset If Expired ( Player Component . place able Item Delay )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Player . place able Item Timer . reset () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġattempt Item Place () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Secondary Attack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĠĠĠĠĠĠĠ Ġval Ġc Player Ġ= Ġm Player . get ( player ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( c Player . secondary Action Timer . reset If Expired ( Player Component . secondary Action Delay )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo Ġdo Ġwe Ġwant Ġright Ġclick Ġto Ġbe Ġactiv ating Ġstuff ? Ġto g gling Ġdo ors , Ġopening Ġup Ġm achinery Ġcontrol Ġpanels ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// or Ġdo Ġwe Ġwant Ġa Ġseparate Ġkey Ġfor Ġthat ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmouse Ġ= Ġworld !!. mouse Position World Coords () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġworld !!. entity At Position ( mouse ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// is Ġit Ġa Ġdevice Ġand Ġcan Ġwe Ġactivate Ġit ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attempt Activate Device Control Panel ( entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attempt Activate Door ( entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attempt Activate Light ( entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// fix me , Ġthis Ġand Ġdo ors ... and Ġother Ġdevices , Ġthey Ġcould Ġpossible Ġbe Ġcombined Ġand Ġmade Ġmore Ġgeneric ĊĠĠĠ Ġ// at Ġleast Ġwhen Ġit Ġcomes Ġto Ġpackets Ġsent ĊĠĠĠ Ġprivate Ġfun Ġattempt Activate Light ( entity : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Light . has ( entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġc Device Ġ= Ġm Device . get ( entity ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( c Device . running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Device . running Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Device . running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient Network System . send Device Toggle ( entity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattempt Activate Door ( entity : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Door Ġ= Ġm Door . get ( entity ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// toggle Ġstate Ġright Ġnow , Ġtell Ġserver . ĊĠĠĠĠĠĠĠ Ġc Door . state Ġ= Ġwhen Ġ( c Door . state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDoor Component . Door State . Closed Ġ-> ĠDoor Component . Door State . Open ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDoor Component . Door State . Open Ġ-> ĠDoor Component . Door State . Closed ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient Network System . send Door Open ( entity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġattempts Ġto Ġopen Ġa Ġdevice 's Ġcontrol Ġpanel , Ġif Ġthis Ġeven Ġis Ġa Ġdevice ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġattempt Activate Device Control Panel ( entityId : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// todo Ġrequest Ġfrom Ġserver Ġpop ulating Ġcontrol Ġpanel Ġ( with Ġitems Ġwithin Ġit ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Device . has ( entityId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! m Power Generator . has ( entityId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( generator Control Panel View !!. visible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( generator Inventory !!. own ing Generator EntityId Ġ== Ġentity Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// close Ġit , Ġhe Ġclicked Ġon Ġthe Ġsame Ġdevice ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerator Control Panel View !!. close Panel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// open Ġon Ġthis Ġentity Ġinstead , Ġit 's Ġdifferent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerator Control Panel View !!. open Panel ( entityId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerator Control Panel View !!. open Panel ( entityId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattempt Tool Attack ( c Player : ĠPlayer Component , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequ ipped Tool Comp : ĠTool Component , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmouse World Coords : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( c Player . primary Attack Timer . reset If Expired ( equ ipped Tool Comp . attack Interval Ms )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// fix me Ġobviously , Ġiter ating Ġover Ġevery Ġentity Id Ġto Ġfind Ġthe Ġone Ġunder Ġposition Ġis Ġbeyond Ġd umb , Ġuse Ġa Ġspatial Ġhash / quad tree Ġetc ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( equ ipped Tool Comp . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTool Component . Tool Type . Bucket Ġ-> Ġliquid Gun Attack And Send ( mouse World Coords ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTool Component . Tool Type . Explo s ive Ġ-> Ġexplo s ive Attack And Send ( mouse World Coords ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// for Ġattack ing Ġlike Ġtrees Ġand Ġstuff . Ġlikely Ġneeds Ġa Ġmuch Ġbetter Ġsystem Ġdesigned Ġlater Ġon , Ġas Ġit Ġe vol ves .. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattempt Tool Attack On An Entity And Send ( mouse World Coords ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexplo s ive Attack And Send ( mouse World Coords : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient Network System . send Equ ipped Item Attack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Type Ġ= ĠNetwork . Client . Player Equ ipped Item Attack . Item Attack Type . Primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Position World Coords Ġ= Ġmouse World Coords ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġliquid Gun Attack And Send ( mouse World Coords : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// todo Ġplay Ġsound Ġimmediately , Ġthen Ġsend Ġattack Ġcommand ĊĊĠĠĠĠĠĠĠ Ġclient Network System . send Equ ipped Item Attack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Type Ġ= ĠNetwork . Client . Player Equ ipped Item Attack . Item Attack Type . Primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Position World Coords Ġ= Ġmouse World Coords ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattempt Tool Attack On An Entity And Send ( mouse : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentities Ġ= Ġworld !!. art emis World . entities ( all Of ()). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ Ġval Ġentity To Attack Ġ= Ġentities . filter Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsprite Comp Ġ= Ġm Sprite . get ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ignore Ġplayers , Ġwe Ġdon 't Ġattack Ġthem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! m Player . has ( e ) Ġ&& Ġ! world !!. should Ignore Client Entity Tag ( e ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsprite Comp . sprite . rect . contains ( mouse ) Ġ&& Ġworld !!. can Attack Entity ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// hack , Ġabove Ġdoes Ġnothing .. we Ġshould Ġverify Ġbefore hand Ġthere 's Ġsomething Ġto Ġattack Ġbefore Ġasking Ġthe Ġserver ĊĊĠĠĠĠĠĠĠ Ġclient Network System . send Equ ipped Item Attack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Type Ġ= ĠNetwork . Client . Player Equ ipped Item Attack . Item Attack Type . Primary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ attack Position World Coords Ġ= Ġmouse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEverything Ġabout Ġthe Ġplaced Ġitem Ġ( including Ġplaced Ġposition ) Ġis Ġdetermined ĊĠĠĠĠ Ġ* Ġby Ġthe Ġplacement Ġoverlay . Ġthen Ġif Ġvalid Ġto Ġplace , Ġwe Ġthen Ġnotify Ġthe Ġserver ĊĠĠĠĠ Ġ* Ġand Ġit Ġcl ones Ġthe Ġcurrently Ġequ ipped Ġitem Ġand Ġplaces Ġit Ġat Ġthe Ġposition ĊĠĠĠĠ Ġ* Ġwe Ġprovided ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġattempt Item Place () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplacement Overlay Ġ= Ġtag Manager . getEntity ( O re World . s _ item Placement Overlay ). id ĊĠĠĠĠĠĠĠ Ġval Ġplacement Overlay Sprite Ġ= Ġm Sprite . get ( placement Overlay ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplace X Ġ= Ġplacement Overlay Sprite . sprite . x ĊĠĠĠĠĠĠĠ Ġval Ġplace Y Ġ= Ġplacement Overlay Sprite . sprite . y ĊĊĠĠĠĠĠĠĠ Ġif Ġ( world !!. is Placement Valid ( placement Overlay )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Network System . send Item Place ( place X , Ġplace Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsound System . play Item Place () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Chat Visible () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( chat Dialog . chat Visibility State Ġ== ĠChat Dialog . Chat Visibility . Normal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Dialog . close Chat Dialog () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Dialog . open Chat Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Inventory Visible () Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory View !!. visible Ġ= Ġ! inventory View !!. visible ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġimmediately Ġh ops Ġinto Ġhosting Ġand Ġjoining Ġits Ġown Ġlocal Ġserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġstart Client Hosted Server And Join () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworld Size Ġ= ĠO re World . World Size . Test Tiny ĊĊĠĠĠĠĠĠĠ Ġserver Ġ= ĠO re Server ( world Size ) ĊĠĠĠĠĠĠĠ Ġserver Thread Ġ= Ġthread ( name Ġ= Ġ" main Ġserver Ġthread ") Ġ{ Ġserver !!. run () Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// wait Ġfor Ġthe Ġlocal Ġserver Ġthread Ġto Ġreport Ġthat Ġit Ġis Ġlive Ġand Ġrunning , Ġbefore Ġwe Ġattempt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġa Ġconnection Ġto Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver !!. connect Host Latch . await () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġworld Ġ= ĠO re World ( this , Ġserver , ĠO re World . World Instance Type . Client Hosting Server , Ġworld Size ) ĊĠĠĠĠĠĠĠ Ġworld !!. init () ĊĠĠĠĠĠĠĠ Ġworld !!. art emis World . inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġclient Network System . addListener ( Network Connect Listener ( this )) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Network System . connect (" 1 2 7 . 0 . 0 . 1 ", ĠNetwork . PORT ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// f uck . Ġgonna Ġhave Ġto Ġshow Ġthe Ġfail Ġto Ġconnect Ġdialog . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// could Ġbe Ġa Ġsocket Ġerror .. or Ġanything , Ġi Ġguess ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// show Fail To Connect Dialog (); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġavoid Ġdouble - dis posals , Ġbecause Ġdispose () Ġgets Ġcalled Ġfor Ġwindow ĠX Ġbutton Ġclose ĊĠĠĠĠ Ġ* Ġas Ġwell Ġas Ġus Ġcalling Ġshutdown () Ġduring Ġexit Ġkey , Ġwhich Ġthen Ġeventually Ġhits Ġdispose () Ġtoo ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġshutdown Trigger edBy Button Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! shutdown Trigger edBy Button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshutdown ( shutdown Trigger edBy Button Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// se vere Ġgot ta Ġbe Ġa Ġbetter Ġsolution Ġw / Ġcor outines ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// it 's Ġour Ġhosted Ġserver , Ġbut Ġit 's Ġstill Ġtrying Ġto Ġgenerate Ġthe Ġworld ... keep Ġwaiting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( server Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworld Gen Job Ġ= Ġserver !!. ore World . world Gen Job ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( world Gen Job . isActive ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġworld Gen Job . poll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Screen . progress Received ( progress , Ġworld Gen Job ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" CLIENT ĠRE CE IVED Ġworld gen ĠPROG RESS : Ġ$ progress ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( world Gen Job . is Completed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// se vere Ġthis Ġgets Ġrun Ġevery time Ġafter Ġit Ġgets Ġcompleted , Ġtr ashing Ġmy Ġfram erate Ġ; -) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// need Ġa Ġbetter Ġsolution .. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gui States . peek () Ġ!= Ġin GameState ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Screen . progress Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgui States . pop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgui States . push ( in GameState ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( server Ġ!= Ġnull Ġ&& Ġserver !!. ore World . world Generator !!. finished ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// we 're Ġjust Ġa Ġd umb Ġclient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld !!. process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! O re Settings . debug Disable Gui ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage . act ( G dx . graphics . deltaTime . coerce At Least ( 1 f Ġ/ Ġ 3 0 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage . draw () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// fix me : Ġminus Ġwasn 't Ġworking ?? Ġbut Ġplus ( equals ) Ġis , Ġhad Ġto Ġres ort Ġto Ġleft Ġbracket Ġfor Ġnow ĊĠĠĠĠĠĠĠ Ġif Ġ( G dx . input . is Key Pressed ( Input . Keys . LEFT _ BRACK ET )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( zoom Timer . reset If Expired ( zoom Interval )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// zoom Ġout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzoom ( 1 . 0 f Ġ+ ĠO re Settings . zoom Amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( G dx . input . is Key Pressed ( Input . Keys . EQUAL S )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( zoom Timer . reset If Expired ( zoom Interval )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzoom ( 1 . 0 f Ġ- ĠO re Settings . zoom Amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Fail To Connect Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Ġ= Ġobject Ġ: ĠVis Dialog ("", Ġ" dialog ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġresult ( obj : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Ch osen : Ġ" Ġ+ Ġobj !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġd button Ġ= ĠVis Text Button (" Yes ") ĊĠĠĠĠĠĠĠ Ġdialog !!. button ( d button , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġd button Ġ= ĠVis Text Button (" No ") ĊĠĠĠĠĠĠĠ Ġdialog !!. button ( d button , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdialog !!. key ( Input . Keys . ENTER , Ġtrue ). key ( Input . Keys . ESCAPE , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdialog !!. invalidate Hierarchy () ĊĠĠĠĠĠĠĠ Ġdialog !!. invalidate () ĊĠĠĠĠĠĠĠ Ġdialog !!. layout () ĊĠĠĠĠĠĠĠ Ġ// stage . add Actor ( dialog ); ĊĠĠĠĠĠĠĠ Ġdialog !!. show ( stage ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshutdown ( shutdown Trigger edBy Button : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . shutdown Trigger edBy Button Ġ= Ġshutdown Trigger edBy Button ĊĠĠĠĠĠĠĠ Ġ// only Ġhave Ġto Ġshutdown Ġthe Ġserver Ġif Ġit 's Ġa Ġclient - hosted Ġserver ĊĠĠĠĠĠĠĠ Ġif Ġ( server Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver !!. shutdown Latch . count Down () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// merge Ġthe Ġserver Ġthread Ġover , Ġit Ġshould Ġalready Ġhave ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// got ten Ġthe Ġshutdown Ġsignal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Thread !!. join () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġworld ?. shutdown () ĊĊĠĠĠĠĠĠĠ ĠG dx . app . exit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġzoom ( factor : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld !!. camera . zoom Ġ*= Ġfactor ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstage . viewport . update ( width , Ġheight , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Down ( key code : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( chat Dialog . chat Visibility State Ġ== ĠChat Dialog . Chat Visibility . Normal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// chat Ġis Ġhappening Ġand Ġconsuming Ġinput ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( key code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . ESCAPE Ġ-> Ġshutdown ( shutdown Trigger edBy Button Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 6 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( client Network System . connected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO re Settings . profiler Enabled Ġ= Ġ! O re Settings . profiler Enabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Profiler View !!. profiler Visible Ġ= Ġ! debug Profiler View !!. profiler Visible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 7 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtile Render System . debug Render Tile Lighting Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! tile Render System . debug Render Tile Lighting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 8 Ġ-> Ġ// fix me ; Ġthis Ġkind Ġof Ġstuff Ġcould Ġbe Ġmaybe Ġput Ġinto Ġa Ġbase Ġinterface Ġwhich Ġsystems Ġinterested Ġin Ġinput ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcould Ġderive Ġfrom . Ġso Ġwe Ġcould Ġjust Ġcall Ġthis , Ġand Ġawait Ġthe Ġreturn ... all Ġof Ġthe Ġdebug Ġthings Ġcould Ġbe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhandled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// direct ly Ġin Ġthere . Ġbut Ġthe Ġquestion Ġis , Ġwhat Ġto Ġdo Ġfor Ġeverything Ġelse . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO re Settings . render Debug Client Ġ= Ġ! O re Settings . render Debug Client ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 9 Ġ-> ĠO re Settings . render Debug Server Ġ= Ġ! O re Settings . render Debug Server ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 1 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtile Render System . debug Render Tiles Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! tile Render System . debug Render Tiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 1 1 Ġ-> ĠO re Settings . debug Disable Gui Ġ= Ġ! O re Settings . debug Disable Gui ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . F 1 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Text Render System . gui Debug Ġ= Ġ! debug Text Render System . gui Debug ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage . set Debug All ( debug Text Render System . gui Debug ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . I Ġ-> Ġif Ġ( inventory View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Inventory Visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// everything Ġbelow Ġhere Ġrequires Ġa Ġworld . Ġit 's Ġter rible , Ġi Ġknow ... fix me ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! client Network System . connected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĠĠĠĠĠĠĠ Ġval Ġc Control Ġ= Ġm Control . get ( player ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( key code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . Q Ġ-> Ġattempt Item Drop () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . E Ġ-> Ġ// power Ġoverlay ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpower Overlay Render System . toggle Overlay () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 1 Ġ-> Ġhot bar Inventory !!. select Slot ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 2 Ġ-> Ġhot bar Inventory !!. select Slot ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 3 Ġ-> Ġhot bar Inventory !!. select Slot ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 4 Ġ-> Ġhot bar Inventory !!. select Slot ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 5 Ġ-> Ġhot bar Inventory !!. select Slot ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 6 Ġ-> Ġhot bar Inventory !!. select Slot ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 7 Ġ-> Ġhot bar Inventory !!. select Slot ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . NUM _ 8 Ġ-> Ġhot bar Inventory !!. select Slot ( 7 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . LEFT Ġ|| Ġkey code Ġ== ĠInput . Keys . A ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . x Ġ= Ġ- 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . RIGHT Ġ|| Ġkey code Ġ== ĠInput . Keys . D ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . x Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . UP Ġ|| Ġkey code Ġ== ĠInput . Keys . W ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . y Ġ= Ġ- 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . DOWN Ġ|| Ġkey code Ġ== ĠInput . Keys . S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . y Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . SPACE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Jump Ġ= Ġm Jump . get ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Jump . should Jump Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattempt Item Drop () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĠĠĠĠĠĠĠ Ġval Ġc Player Ġ= Ġm Player . get ( player ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Entity Ġ= Ġc Player . equ ipped Primary Item ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item Entity Ġ== ĠINVALID _ ENTITY _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Equ ipped Index Ġ= Ġc Player . hot bar Inventory !!. selected Slot ĊĠĠĠĠĠĠĠ Ġval Ġdrop Item Request From Client Ġ= ĠNetwork . Client . Inventory Drop Item ( index Ġ= Ġcurrent Equ ipped Index . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ Ġinventory Type Ġ= ĠNetwork . Shared . Inventory Type . Hot bar ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġdecrement Ġcount , Ġwe Ġassume Ġit 'll Ġget Ġspawn ed Ġshortly Ġwhen Ġthe Ġserver Ġtells Ġus Ġto . ĊĠĠĠĠĠĠĠ Ġ// Ġdelete Ġin - inventory Ġentity Id Ġif Ġnecessary Ġserver Ġassumes Ġwe Ġalready Ġdo Ġso ĊĠĠĠĠĠĠĠ Ġval Ġc Item Ġ= Ġm Item . get ( item Entity ) ĊĠĠĠĠĠĠĠ Ġif Ġ( c Item . stack Size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// decrement Ġcount , Ġserver Ġhas Ġalready Ġdone Ġso . Ġwe Ġassume Ġhere Ġthat Ġit Ġwent Ġthrough Ġproperly . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Item . stack Size Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot bar Inventory !!. set Count ( current Equ ipped Index , Ġc Item . stack Size ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// delete Ġit , Ġserver Ġknows / ass umes Ġwe Ġalready Ġdid , Ġsince Ġthere Ġare Ġno Ġmore Ġleft . Ġso Ġserver Ġdoesn 't Ġhave Ġto ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// send Ġanother Ġuseless Ġpacket Ġback Ġto Ġthe Ġour Ġclient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġc Player . hot bar Inventory !!. take Item ( drop Item Request From Client . index . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld !!. art emis World . delete ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclient Network System . client K ry o . send TCP ( drop Item Request From Client ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Up ( key code : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld Ġ== Ġnull Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! client Network System . connected Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĊĠĠĠĠĠĠĠ Ġval Ġc Control Ġ= Ġm Control . get ( player ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . LEFT Ġ|| Ġkey code Ġ== ĠInput . Keys . A ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . x Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . RIGHT Ġ|| Ġkey code Ġ== ĠInput . Keys . D ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . x Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . UP Ġ|| Ġkey code Ġ== ĠInput . Keys . W ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . y Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( key code Ġ== ĠInput . Keys . DOWN Ġ|| Ġkey code Ġ== ĠInput . Keys . S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Control . desired Direction . y Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Down ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠInput . Buttons . LEFT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft MouseDown Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠInput . Buttons . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright MouseDown Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġworld !!. touch Down ( screen X , Ġscreen Y , Ġpointer , Ġbutton ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// fix me ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Up ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠInput . Buttons . LEFT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft MouseDown Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠInput . Buttons . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright MouseDown Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġworld !!. touch Up ( screen X , Ġscreen Y , Ġpointer , Ġbutton ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsc rolled ( amount : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld Ġ== Ġnull Ġ-> Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! client Network System . connected Ġ-> Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// don 't Ġallow Ġitem / inventory Ġselection Ġduring Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpower Overlay Render System . overlay Visible Ġ-> Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġhot bar Inventory !!. selected Slot ĊĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// right , Ġinventory Ġselection Ġscrolling Ġdoes Ġnot Ġwrap Ġaround . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot bar Inventory !!. select Slot (( index Ġ+ Ġ 1 ). coerce At Most ( Inventory . max Hot bar Slots Ġ- Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// left ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhot bar Inventory !!. select Slot (( index Ġ- Ġ 1 ). coerce At Least ( 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer Name ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconnection Id ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmain Player ĊĠĠĠĠ Ġ* Ġ* ĠĠĠĠĠĠĠĠ Ġtrue Ġif Ġwe Ġshould Ġspawn Ġour Ġclients Ġplayer Ġ( first Ġplayer Ġwe Ġget ) ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Player ( player Name : ĠString , Ġconnection Id : ĠInt , Ġmain Player : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġworld !!. entity Factory . create Player ( player Name , Ġconnection Id ) ĊĠĠĠĠĠĠĠ Ġval Ġc Control Ġ= Ġm Control . create ( player ) ĊĊĠĠĠĠĠĠĠ Ġ// only Ġdo Ġthis Ġfor Ġthe Ġmain Ġplayer ! Ġeach Ġother Ġplayer Ġthat Ġgets Ġspawn ed Ġwill Ġnot Ġneed Ġthis Ġinformation , Ġever . ĊĠĠĠĠĠĠĠ Ġval Ġc Player Ġ= Ġm Player . get ( player ) ĊĊĠĠĠĠĠĠĠ Ġhot bar Inventory Ġ= ĠHot bar Inventory ( slot Count Ġ= ĠInventory . max Hot bar Slots , Ġart emis World Ġ= Ġworld !!. art emis World ) ĊĠĠĠĠĠĠĠ Ġc Player . hot bar Inventory Ġ= Ġhot bar Inventory ĊĊĠĠĠĠĠĠĠ Ġhot bar Inventory !!. addListener ( Hot bar Slot Listener ()) ĊĊĠĠĠĠĠĠĠ Ġinventory Ġ= ĠInventory ( slot Count Ġ= ĠInventory . max Slots , Ġart emis World Ġ= Ġworld !!. art emis World ) ĊĠĠĠĠĠĠĠ Ġc Player . inventory Ġ= Ġinventory ĊĊĠĠĠĠĠĠĠ Ġhot bar View Ġ= ĠHot bar Inventory View ( stage Ġ= Ġstage , Ġinventory Ġ= Ġhot bar Inventory !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag And Drop Ġ= Ġdrag And Drop !! , Ġworld Ġ= Ġworld !! ) ĊĊĠĠĠĠĠĠĠ Ġinventory View Ġ= ĠInventory View ( stage Ġ= Ġstage , Ġinventory Ġ= Ġinventory !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag And Drop Ġ= Ġdrag And Drop !! , Ġworld Ġ= Ġworld !! ) ĊĊĠĠĠĠĠĠĠ Ġgenerator Inventory Ġ= ĠGenerator Inventory ( Generator Inventory . MAX _ SLOT S , Ġworld !!. art emis World ) ĊĠĠĠĠĠĠĠ Ġgenerator Control Panel View Ġ= ĠGenerator Control Panel View ( stage Ġ= Ġstage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerator Control Panel Inventory Ġ= Ġgenerator Inventory !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag And Drop Ġ= Ġdrag And Drop !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld Ġ= Ġworld !! ) ĊĊĠĠĠĠĠĠĠ Ġdebug Profiler View Ġ= ĠDebug Profiler View ( stage Ġ= Ġstage , Ġworld Ġ= Ġworld !! ) ĊĊĠĠĠĠĠĠĠ Ġworld !!. art emis World . ore Inject ( hot bar Inventory !! ) ĊĠĠĠĠĠĠĠ Ġworld !!. art emis World . ore Inject ( inventory !! ) ĊĠĠĠĠĠĠĠ Ġworld !!. art emis World . ore Inject ( generator Inventory !! ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( main Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Manager . register ( O re World . s _ main Player , Ġplayer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// fix me Ġpush Ġinto Ġthe Ġmodel Ġand Ġhave Ġview Ġpull . Ġor Ġjust Ġin Ġview Ġinit ĊĠĠĠĠĠĠĠ Ġ// select Ġthe Ġfirst Ġslot , Ġso Ġthe Ġinventory Ġview Ġhighlight s Ġsomething ĊĠĠĠĠĠĠĠ Ġc Player . hot bar Inventory !!. select Slot ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠ ĠSprite Component Ġc Sprite Ġ= Ġm Sprite . get ( player ); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġc Sprite . sprite . set Texture (); ĊĊĠĠĠĠĠĠĠ Ġreturn Ġplayer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠHot bar Slot Listener Ġ: ĠInventory . Slot Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġslot ItemSelected ( index : ĠInt , Ġinventory : ĠInventory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( world Ġ!= Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġtag Manager . getEntity ( O re World . s _ main Player ). id ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Network System . send Hot bar Equ ipped ( index . to Byte ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Player Ġ= Ġm Player . get ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNetwork Connect Listener ( private Ġval Ġclient : ĠO re Client ) Ġ: ĠClient Network System . Network Client Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconnected () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo Ġsure ly Ġthere 's Ġsome Ġfirst - time Ġconnection Ġstuff Ġwe Ġmust Ġdo ? ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdisconnected ( disconnect Reason : ĠNetwork . Shared . Disconnect Reason ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo Ġshow Ġgui , Ġsay Ġwe 've Ġdisconnected ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠO RE _ VERSION _ MAJOR Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval ĠO RE _ VERSION _ MINOR Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval ĠO RE _ VERSION _ REVISION Ġ= Ġ 1 ĊĠĠĠ Ġ} Ċ } Ċ