package uk.co.flyingsquirrels.models; import org.jbox2d.common.Vec2; public abstract class ControllableComponentTemplate extends ComponentTemplate implements ControllableComponent { private final Control control; protected ControllableComponentTemplate(Vec2 localPosition, Control control) { super(localPosition); this.control = control; } public Control getControl() { return control; } public final void update(float seconds) { if (control != null) { control.update(seconds); } updateInternal(seconds); } public void updateInternal(float seconds) { // override in subclass } }