[artemis-odb] When does it init Systems?

hey,
I am working for the first time with artemis-odb and don´t get how/when Systems are injected into other Systems.
The Wiki says that they are at the beginning added but I get always an Nullpointer.


void create(){
      WorldConfiguration builder = new WorldConfigurationBuilder()
                .with(new CameraSystem(1920, 1080, 1), new MapSystem(), new MapRenderSystem())
                .build();

        entityEngine = new World(builder);
}
 public void render() {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        entityEngine.setDelta(Gdx.graphics.getDeltaTime());
        entityEngine.process();
    }
public class MapRenderSystem extends BaseSystem {
public MapRenderSystem() {
        this.renderer = new OrthogonalTiledMapRenderer(mapSystem.getCurrentMap().getMap());
    }
}

public class MapSystem extends BaseSystem {
    private IGameMap currentMap;

    public MapSystem() {
        this(0);
    }
    public MapSystem(int id) { 
        changeMap(id);
    }
 public void changeMap(int id) {
        this.currentMap = MapHandler.get(id);
    }
   protected void processSystem(){}

It´s thrown from mapSystem.getCurrentMap(). mapSystem is null, although it should have been injected by artemis.

2nd)
Let´s say I want when an Character has the ChangeMapComponent to change the Map.
Means I will have to extend form BaseEntitySystem? but what then?
processSystem() is once per tick called. But changing the Map is rarely -> so more an Event. How do I get to know that an Character has that Component and then process the System? Or shall I just make an Method in mapSystem for that purpose which is called by something like MovementSystem?, But wouldn´t it be with that pretty useless to even extend from an System?

You’re getting a null-pointer exception because you try and use the mapSystem in the MapRenderSystem’s constructor. You want to override the initialize() method from the BaseSystem class, which gets called after the system injections.