[go: up one dir, main page]

Skip to content

Add a separate overridable step to register listeners in AbstractGame

Summary

Currently, listeners are registered by default in setupWindowViewports implementation. That method is doing more than what its name implies and should be broken down.

Example

One possible way could be...

protected void setupListeners(RenderWindow rw) {
    rw.addKeyListener(this);
    rw.addMouseListener(this);
    rw.addMouseMotionListener(this);
    rw.addMouseWheelListener(this);
}

or

protected void setupListeners(Engine engine) {
    RenderWindow rw = engine.getRenderSystem().getRenderWindow();
    rw.addKeyListener(this);
    rw.addMouseListener(this);
    rw.addMouseMotionListener(this);
    rw.addMouseWheelListener(this);
}

Benefits

System initialization steps are divided more clearly and cleanly. It's unlikely anyone expects to be required to register listeners if they choose to override a method to setup viewports, so the immediate lack of response to key/mouse events would be less obvious.