package Ġcom . in ari . fire fly . control . action Ċ Ċ import Ġcom . in ari . fire fly . system . component . System Component Ċ import Ġcom . in ari . fire fly . system . component . System Component Single Type Ċ Ċ class ĠAction Ġprivate Ġconstructor () Ġ: ĠSystem Component ( Action :: class . simple Name !! ) Ġ{ ĊĊĠĠĠ Ġvar Ġcall : ĠAction Call Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġ} ĊĊĠĠĠ Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity 1 : ĠInt Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity 2 : ĠInt Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity 3 : ĠInt Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity 4 : ĠInt Ġ= Ġ- 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcall ( entity 1 , Ġentity 2 , Ġentity 3 , Ġentity 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcomponent Type () Ġ= ĠComp anion ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠSystem Component Single Type < Action >( Action :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Empty () Ġ= ĠAction () ĊĠĠĠ Ġ} Ċ } ĊĊĊ