/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.happydroids.droidtowers.Colors; import com.happydroids.droidtowers.achievements.TutorialEngine; import com.happydroids.droidtowers.input.GestureTool; import com.happydroids.droidtowers.input.InputSystem; import com.happydroids.droidtowers.input.PickerTool; import com.happydroids.droidtowers.platform.Display; import com.happydroids.droidtowers.types.*; public class ToolMenu extends RadialMenu { private static final String TAG = ToolMenu.class.getSimpleName(); private GridObjectPurchaseMenu purchaseDialog; private final ImageButton housingButton; private final ImageButton transitButton; private final ImageButton commerceButton; private final ImageButton servicesButton; private final ImageButton sellButton; private final HudToolButton hudToolButton; public ToolMenu(TextureAtlas hudAtlas, HudToolButton hudToolButton) { super(); this.hudToolButton = hudToolButton; arc = 35f; arcStart = -3.5f; radius = Display.devicePixel(180); setRotation(0); housingButton = new ColorizedImageButton(hudAtlas.findRegion("tool-housing"), Colors.ICS_BLUE); transitButton = new ColorizedImageButton(hudAtlas.findRegion("tool-transit"), Colors.ICS_BLUE); commerceButton = new ColorizedImageButton(hudAtlas.findRegion("tool-commerce"), Colors.ICS_BLUE); servicesButton = new ColorizedImageButton(hudAtlas.findRegion("tool-services"), Colors.ICS_BLUE); sellButton = new ColorizedImageButton(hudAtlas.findRegion("tool-sell"), Colors.ICS_BLUE); addActor(housingButton); addActor(transitButton); addActor(commerceButton); addActor(servicesButton); addActor(sellButton); makeClickListeners(); } private void makeClickListeners() { housingButton.addListener(makePurchaseButtonClickListener("Housing", RoomTypeFactory.instance())); transitButton.addListener(makePurchaseButtonClickListener("Transit", TransitTypeFactory.instance())); commerceButton.addListener(makePurchaseButtonClickListener("Commerce", CommercialTypeFactory.instance())); servicesButton.addListener(makePurchaseButtonClickListener("Services", ServiceRoomTypeFactory.instance())); sellButton.addListener(new VibrateClickListener() { public void onClick(InputEvent event, float x, float y) { close(); hudToolButton.setStyle(sellButton.getStyle()); InputSystem.instance().switchTool(GestureTool.SELL, new Runnable() { @Override public void run() { hudToolButton.resetStyle(); } }); } }); } private ClickListener makePurchaseButtonClickListener(final String dialogTitle, final GridObjectTypeFactory typeFactory) { return new VibrateClickListener() { public void onClick(InputEvent event, float x, float y) { close(); if (purchaseDialog == null) { if (typeFactory instanceof RoomTypeFactory) { TutorialEngine.instance().moveToStepWhenReady("tutorial-unlock-lobby"); } makePurchaseDialog(dialogTitle, typeFactory, ((ImageButton) event.getListenerActor()).getStyle()); } else { purchaseDialog.dismiss(); purchaseDialog = null; } } }; } private void makePurchaseDialog(String title, GridObjectTypeFactory typeFactory, final ImageButton.ImageButtonStyle purchaseButtonStyle) { purchaseDialog = new GridObjectPurchaseMenu(getStage(), title, typeFactory, new Runnable() { public void run() { hudToolButton.resetStyle(); } }); purchaseDialog.setDismissCallback(new Runnable() { public void run() { Gdx.app.log(TAG, "Tool: " + InputSystem.instance().getCurrentTool()); purchaseDialog = null; if (InputSystem.instance().getCurrentTool() instanceof PickerTool) { hudToolButton.resetStyle(); } else { hudToolButton.setStyle(purchaseButtonStyle); } } }).show(); } }