package Ġcom . ser ge y . space game . common . ecs . system Ċ Ċ import Ġcom . badlogic . ash ley . core . Engine Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . badlogic . ash ley . core . Family Ċ import Ġcom . badlogic . ash ley . systems . Interval System Ċ import Ġcom . badlogic . ash ley . utils . Immutable Array Ċ import Ġcom . ser ge y . space game . common . Space Game Ċ import Ġcom . ser ge y . space game . common . ecs . component . In Contr uction Component Ċ import Ġcom . ser ge y . space game . common . ecs . component . Tick able Component Ċ import Ġcom . ser ge y . space game . common . event . Entity Tick Event Ċ Ċ /** Ċ Ġ* ĠThis Ġsystem Ġapplies Ġticks Ġto Ġtick able Ġentities Ċ Ġ* Ċ Ġ* Ġ@ author Ġser ge ys Ċ Ġ* Ċ Ġ* Ġ@ constructor ĠCreate Ġa Ġnew ĠTick able System Ċ Ġ*/ Ċ class ĠTick able System Ġ: ĠInterval System ( 0 . 0 5 f ) Ġ{ ĊĠĠĠĠĊĠĠĠ Ġprivate Ġvar Ġentities : ĠImmutable Array < Entity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtick Builder Ġ= ĠEntity Tick Event . Builder () ĊĠĠĠ Ġprivate Ġvar Ġtick Num : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġadded To Engine ( engine : ĠEngine ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġentities Ġ= Ġengine !!. get Entities For ( Family . all ( Tick able Component :: class . java ). exclude ( In Contr uction Component :: class . java ). get ()) ĊĠĠĠĠĠĠĠ Ġtick Num Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġremoved From Engine ( engine : ĠEngine ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġentities Ġ= Ġnull ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġfun Ġupdate Interval () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentities Ġ= Ġentities !! ĊĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġentities ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Entity ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ++ tick Num ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġprivate Ġfun Ġprocess Entity ( entity : ĠEntity ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSpace Game . getInstance (). event Bus . post ( tick Builder . get ( entity , ĠTick able Component . MAP PER . get ( entity ), Ġtick Num )) ĊĠĠĠ Ġ} Ċ }