package Ġwire seg al . cmd ctrl . common . config Ċ Ċ import Ġcom . google . gson . JsonObject Ċ Ċ /** Ċ Ġ* Ġ@ author ĠWire Se gal Ċ Ġ* ĠCreated Ġat Ġ 4 : 1 9 ĠPM Ġon Ġ 1 2 / 4 / 1 6 . Ċ Ġ*/ Ċ data Ġclass ĠScript Module ( val ĠonLoad : ĠList < Command Module >, Ġval Ġon Tick : ĠList < Command Module >, Ġval Ġtile Changes : ĠList < Change Watcher >) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġplus ( that : ĠScript Module ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠScript Module ( this . on Load Ġ+ Ġthat . on Load , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Tick Ġ+ Ġthat . on Tick , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . tile Changes Ġ+ Ġthat . tile Changes ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Object ( obj : ĠJsonObject ): ĠScript Module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdebug Ġ= Ġobj . has (" debug ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonLoad Ġ= Ġmutable ListOf < Command Module >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . has (" init ")) ĠonLoad . addAll ( Command Module . from Possible Array ( obj . get (" init "), Ġdebug )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġon Tick Ġ= Ġmutable ListOf < Command Module >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . has (" tick ")) Ġon Tick . addAll ( Command Module . from Possible Array ( obj . get (" tick "), Ġdebug )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtile Changes Ġ= Ġmutable ListOf < Change Watcher >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . has (" tile changes ")) Ġtile Changes . addAll ( Change Watcher . from Possible Array ( obj . get (" tile changes "), Ġdebug )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠScript Module ( on Load , Ġon Tick , Ġtile Changes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ