package Ġme . w ie ku . circ uits . world . elements . io Ċ Ċ import Ġme . w ie ku . circ uits . api . element . Basic Output Ċ import Ġme . w ie ku . circ uits . api . math . Axis Ċ import Ġme . w ie ku . circ uits . api . math . Vector 2 i Ċ import Ġme . w ie ku . circ uits . api . state . State Ċ import Ġme . w ie ku . circ uits . api . world . I World Ċ import Ġme . w ie ku . circ uits . save . Save Manager Ċ import Ġme . w ie ku . circ uits . save . Save able Ċ import Ġme . w ie ku . circ uits . world . Classic World Ċ Ċ open Ġclass ĠOutput ( pos : ĠVector 2 i ): ĠBasic Output ( pos ), ĠSave able Ġ{ ĊĊ ĉ private Ġvar Ġstate : ĠState ? Ġ= Ġnull ĊĊ ĉ override Ġfun Ġon Place ( world : ĠI World ) Ġ{ Ċĉ ĉ state Ġ= Ġworld . getState Manager () () Ċĉ ĉ update IO ( world ) Ċĉ ĉ world . update Ne ighbours Of ( pos ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġon Ne ighbour Change ( position : ĠVector 2 i , Ġworld : ĠI World ) Ġ{ Ċĉ ĉ update IO ( world ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġon Remove ( world : ĠI World ) Ġ{ Ċĉ ĉ world . update Ne ighbours Of ( pos ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġset Out ( value : ĠBoolean ) Ġ{ Ċĉ ĉ state !!. setActive U ( value ) Ċĉ ĉ super . set Out ( value ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Idle Color (): ĠInt Ġ= Ġ 0 xA EE A 0 0 ĊĊ ĉ override Ġfun Ġget Active Color (): ĠInt Ġ= Ġ 0 xC 6 FF 0 0 ĊĊ ĉ override Ġfun Ġget Color (): ĠInt Ġ= Ġif ( state Ġ!= Ġnull Ġ&& Ġstate !!. isActive ()) Ġget Active Color () Ġelse Ġget Idle Color () ĊĊ ĉ override Ġfun ĠsetState ( state : ĠState , Ġaxis : ĠAxis ) Ġ{} ĊĊ ĉ override Ġfun ĠgetState ( axis : ĠAxis ): ĠState ? Ġ= Ġstate ĊĊ ĉ override Ġfun Ġsave ( manager : ĠSave Manager ) Ġ{ Ċĉ ĉ manager . put Integer ( state !!. id ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġload ( world : ĠClass ic World , Ġmanager : ĠSave Manager ) Ġ{ Ċĉ ĉ state Ġ= Ġworld . getState Manager (). getState ( manager . getInteger ()) !! Ċĉ ĉ state !!. register () Ċ ĉ } ĊĊ ĉ override Ġfun Ġafter Load ( world : ĠI World ) Ġ{ Ċĉ ĉ update IO ( world ) Ċ ĉ } Ċ }