package net.alcuria.umbracraft.engine.manager.input; import net.alcuria.umbracraft.Config; import net.alcuria.umbracraft.Game; import net.alcuria.umbracraft.editor.Drawables; import net.alcuria.umbracraft.engine.components.ControlledInputComponent; import net.alcuria.umbracraft.engine.entities.Entity; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; /** Our inspect button. For now actions are dictated by finding a * {@link ControlledInputComponent} attached to the PLAYER entity. * @author Andrew Keturi */ public class InspectButton extends OnscreenInput { public InspectButton(Stage stage) { Button button = new Button(Drawables.texture("ui/inspectButtonUp"), Drawables.texture("ui/inspectButtonDown")); stage.addActor(button); button.setPosition(Config.viewWidth - 68, 20); button.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); onInteractPressed(); } }); } private void onInteractPressed() { // TODO: do we really need to do a search every frame? Entity player = Game.entities().find(Entity.PLAYER); if (player != null) { ControlledInputComponent component = player.getComponent(ControlledInputComponent.class); if (component != null) { component.inspect(); } } } }