/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.CheckBox; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.utils.Align; import com.badlogic.gdx.utils.Scaling; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.achievements.AchievementEngine; import com.happydroids.droidtowers.graphics.Overlays; import com.happydroids.droidtowers.grid.GameGridRenderer; import com.happydroids.droidtowers.platform.Display; import static com.happydroids.droidtowers.TowerAssetManager.drawable; class DataOverlayPopOver extends PopOver { private final GameGridRenderer gameGridRenderer; DataOverlayPopOver(final GameGridRenderer gameGridRenderer) { this.gameGridRenderer = gameGridRenderer; alignArrow(Align.right); } @Override protected void show(Actor parentWidget, Actor relativeTo) { content.clear(); buildControls(); super.show(parentWidget, relativeTo); } @Override protected void hide() { super.hide(); gameGridRenderer.setActiveOverlay(null); } private void buildControls() { boolean unlockedJanitors = AchievementEngine.instance().findById("build5commercialspaces").hasGivenReward(); boolean unlockedMaids = AchievementEngine.instance().findById("build8hotelroom").hasGivenReward(); for (final Overlays overlay : Overlays.values()) { if (overlay.equals(Overlays.DIRT_LEVEL) && (!unlockedJanitors || !unlockedMaids)) { continue; } final CheckBox checkBox = FontManager.Roboto18.makeCheckBox(overlay.toString()); checkBox.align(Align.left); checkBox.getLabelCell().padLeft(0).spaceLeft(Display.devicePixel(8)); checkBox.addListener(new VibrateClickListener() { public void onClick(InputEvent event, float x, float y) { if (checkBox.isChecked()) { for (Actor otherCheckbox : getActors()) { if (otherCheckbox instanceof CheckBox && otherCheckbox != checkBox) { ((CheckBox) otherCheckbox).setChecked(false); } } gameGridRenderer.setActiveOverlay(overlay); } else { gameGridRenderer.setActiveOverlay(null); } } }); Image colorSwatch = new Image(drawable(TowerAssetManager.WHITE_SWATCH), Scaling.stretch); colorSwatch.setColor(overlay.getColor(1f)); row().left(); add(checkBox).pad(0).fillX(); add(colorSwatch) .width(16) .height(16); } } }