package com.inari.firefly.libgdx;

import com.inari.commons.event.EventDispatcher;
import com.inari.firefly.animation.AnimationSystem;
import com.inari.firefly.asset.AssetSystem;
import com.inari.firefly.control.ControllerSystem;
import com.inari.firefly.entity.EntityPrefabSystem;
import com.inari.firefly.entity.EntityProvider;
import com.inari.firefly.entity.EntitySystem;
import com.inari.firefly.movement.MovementSystem;
import com.inari.firefly.renderer.sprite.SpriteViewRenderer;
import com.inari.firefly.renderer.sprite.SpriteViewSystem;
import com.inari.firefly.renderer.tile.TileGridRenderer;
import com.inari.firefly.renderer.tile.TileGridSystem;
import com.inari.firefly.sound.SoundSystem;
import com.inari.firefly.state.StateSystem;
import com.inari.firefly.system.FFContext;
import com.inari.firefly.system.FFContextImpl.InitMap;
import com.inari.firefly.system.view.ViewSystem;

public interface GDXConfiguration {
    
    public final static InitMap GDX_INIT_MAP = new InitMap()
        .put( FFContext.EVENT_DISPATCHER, EventDispatcher.class )
        .put( FFContext.TIMER, GDXTimerImpl.class )
        .put( FFContext.INPUT, GDXInputImpl.class )
        .put( FFContext.LOWER_SYSTEM_FACADE, GDXLowerSystemImpl.class )
        .put( FFContext.ENTITY_PROVIDER, EntityProvider.class )
        .put( FFContext.Systems.ASSET_SYSTEM, AssetSystem.class )
        .put( FFContext.Systems.STATE_SYSTEM, StateSystem.class )
        .put( FFContext.Systems.VIEW_SYSTEM, ViewSystem.class )
        .put( FFContext.Systems.ENTITY_SYSTEM, EntitySystem.class )
        .put( FFContext.Systems.ENTITY_PREFAB_SYSTEM, EntityPrefabSystem.class )
        .put( FFContext.Systems.SPRITE_VIEW_SYSTEM, SpriteViewSystem.class )
        .put( FFContext.Systems.TILE_GRID_SYSTEM, TileGridSystem.class )
        .put( FFContext.Systems.MOVEMENT_SYSTEM, MovementSystem.class )
        .put( FFContext.Systems.ENTITY_CONTROLLER_SYSTEM, ControllerSystem.class )
        .put( FFContext.Systems.ANIMATION_SYSTEM, AnimationSystem.class )
        .put( FFContext.Systems.SOUND_SYSTEM, SoundSystem.class )
        .put( FFContext.Renderer.SPRITE_VIEW_RENDERER, SpriteViewRenderer.class )
        .put( FFContext.Renderer.TILE_GRID_RENDERER, TileGridRenderer.class );

}

@@ -205,16 +205,25 @@
 control.
+Component
 Controll
@@ -1322,38 +1322,31 @@
 ut( 
-FFContext.Systems.ASSET_SYSTEM
+AssetSystem.CONTEXT_KEY
 , As
@@ -1381,38 +1381,31 @@
 ut( 
-FFContext.Systems.STATE_SYSTEM
+StateSystem.CONTEXT_KEY
 , St
@@ -1440,37 +1440,30 @@
 ut( 
-FFContext.Systems.VIEW_SYSTEM
+ViewSystem.CONTEXT_KEY
 , Vi
@@ -1497,39 +1497,32 @@
 ut( 
-FFContext.Systems.ENTITY_SYSTEM
+EntitySystem.CONTEXT_KEY
 , En
@@ -1558,46 +1558,38 @@
 ut( 
-FFContext.Systems.ENTITY_PREFAB_SYSTEM
+EntityPrefabSystem.CONTEXT_KEY
 , En
@@ -1631,44 +1631,36 @@
 ut( 
-FFContext.Systems.SPRITE_VIEW_SYSTEM
+SpriteViewSystem.CONTEXT_KEY
 , Sp
@@ -1700,42 +1700,34 @@
 ut( 
-FFContext.Systems.TILE_GRID_SYSTEM
+TileGridSystem.CONTEXT_KEY
 , Ti
@@ -1765,41 +1765,34 @@
 ut( 
-FFContext.Systems.MOVEMENT_SYSTEM
+MovementSystem.CONTEXT_KEY
 , Mo
@@ -1830,52 +1830,56 @@
 ut( 
-FFContext.Systems.ENTITY_CONTROLLER_SYSTEM, 
+ComponentControllerSystem.CONTEXT_KEY, Component
 Cont
@@ -1917,42 +1917,35 @@
 ut( 
-FFContext.Systems.ANIMATION_SYSTEM
+AnimationSystem.CONTEXT_KEY
 , An
@@ -1984,38 +1984,31 @@
 ut( 
-FFContext.Systems.SOUND_SYSTEM
+SoundSystem.CONTEXT_KEY
 , So
@@ -2043,47 +2043,38 @@
 ut( 
-FFContext.Renderer.SPRITE_VIEW_RENDERER
+SpriteViewRenderer.CONTEXT_KEY
 , Sp
@@ -2116,45 +2116,36 @@
 ut( 
-FFContext.Renderer.TILE_GRID_RENDERER
+TileGridRenderer.CONTEXT_KEY
 , Ti

change context keys and move movement to lib