package com.weem.epicinventor.hud;
import com.weem.epicinventor.*;
import com.weem.epicinventor.actor.*;
import com.weem.epicinventor.placeable.*;
import com.weem.epicinventor.utility.*;
import java.awt.*;
import java.util.ArrayList;
public class HUDScreenSettings extends HUD {
private final static int TITLE_WIDTH = 420;
private final static int TITLE_HEIGHT = 37;
private final static int TITLE_X = 188;
private final static int TITLE_Y = 110;
private final static int BUTTON_ARROW_WIDTH = 29;
private final static int BUTTON_ARROW_HEIGHT = 46;
private final static int BUTTON_ARROW_LEFT_X = 258;
private final static int BUTTON_ARROW_LEFT_Y = 155;
private final static int BUTTON_ARROW_RIGHT_X = 527;
private final static int BUTTON_ARROW_RIGHT_Y = 155;
private final static int BUTTON_SAVE_WIDTH = 232;
private final static int BUTTON_SAVE_HEIGHT = 52;
private final static int BUTTON_SAVE_X = 290;
private final static int BUTTON_SAVE_Y = 480;
private final static int BUTTON_KEYS_WIDTH = 232;
private final static int BUTTON_KEYS_HEIGHT = 52;
private final static int BUTTON_KEYS_X = 290;
private final static int BUTTON_KEYS_Y = 415;
private final static int LABEL_RESOLUTION_WIDTH = 124;
private final static int LABEL_RESOLUTION_HEIGHT = 18;
private final static int LABEL_RESOLUTION_X = 344;
private final static int LABEL_RESOLUTION_Y = 123;
private final static int LABEL_MUSIC_WIDTH = 160;
private final static int LABEL_MUSIC_HEIGHT = 18;
private final static int LABEL_MUSIC_X = 327;
private final static int LABEL_MUSIC_Y = 123;
private final static int LABEL_SFX_WIDTH = 208;
private final static int LABEL_SFX_HEIGHT = 19;
private final static int LABEL_SFX_X = 302;
private final static int LABEL_SFX_Y = 123;
private final static int RESOLUTION_WIDTH = 232;
private final static int RESOLUTION_HEIGHT = 52;
private final static int RESOLUTION_X = 291;
private final static int RESOLUTION_Y = 151;
private final static int RESOLUTION_TEXT_X = 50;
private final static int RESOLUTION_TEXT_Y = 35;
private final static int JDK_WIDTH = 327;
private final static int JDK_HEIGHT = 114;
private final static int JDK_X = 234;
private final static int JDK_Y = 252;
private final static int SPACER = 100;
private final static int SPACER2 = 200;
private final static int BUTTON_DONATE_WIDTH = 119;
private final static int BUTTON_DONATE_HEIGHT = 102;
private final static int BUTTON_DONATE_X = 33;
private final static int BUTTON_DONATE_Y = 155;
private final static int BUTTON_HELP_WIDTH = 119;
private final static int BUTTON_HELP_HEIGHT = 102;
private final static int BUTTON_HELP_X = 646;
private final static int BUTTON_HELP_Y = 155;
private ArrayList resolutions;
private int currentResolution;
private float currentVolumeMusic;
private float currentVolumeFX;
private boolean allowSoundChanges;
public HUDScreenSettings(HUDManager hm, Registry rg, int x, int y, int w, int h) {
super(hm, rg, x, y, w, h);
setImage("HUD/ScreenSettings/BG");
if (!(GameController.props.getProperty("os.name").contains("Linux") && GameController.props.getProperty("java.runtime.name").contains("OpenJDK"))) {
allowSoundChanges = true;
} else {
allowSoundChanges = false;
}
HUDArea hudArea = null;
//title
hudArea = addArea(TITLE_X, TITLE_Y, TITLE_WIDTH, TITLE_HEIGHT, "title");
hudArea.setImage("HUD/ScreenSettings/TitleCredits");
//resolution
hudArea = addArea(LABEL_RESOLUTION_X, LABEL_RESOLUTION_Y, LABEL_RESOLUTION_WIDTH, LABEL_RESOLUTION_HEIGHT, "label_resolution");
hudArea.setImage("HUD/ScreenSettings/LabelResolution");
hudArea = addArea(BUTTON_ARROW_LEFT_X, BUTTON_ARROW_LEFT_Y, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "resolution_left");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowLeft");
hudArea = addArea(BUTTON_ARROW_RIGHT_X, BUTTON_ARROW_RIGHT_Y, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "resolution_right");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowRight");
hudArea = addArea(RESOLUTION_X, RESOLUTION_Y, RESOLUTION_WIDTH, RESOLUTION_HEIGHT, "resolution");
hudArea.setImage("HUD/ScreenSettings/BGResolution");
hudArea.setFont("SansSerif", Font.BOLD, 28);
hudArea.setTextXY(RESOLUTION_TEXT_X, RESOLUTION_TEXT_Y);
if (allowSoundChanges) {
//music
hudArea = addArea(LABEL_MUSIC_X, LABEL_MUSIC_Y + SPACER, LABEL_MUSIC_WIDTH, LABEL_MUSIC_HEIGHT, "label_music");
hudArea.setImage("HUD/ScreenSettings/LabelMusicVolume");
hudArea = addArea(BUTTON_ARROW_LEFT_X, BUTTON_ARROW_LEFT_Y + SPACER, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "music_left");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowLeft");
hudArea = addArea(BUTTON_ARROW_RIGHT_X, BUTTON_ARROW_RIGHT_Y + SPACER, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "music_right");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowRight");
hudArea = addArea(RESOLUTION_X, RESOLUTION_Y + SPACER, RESOLUTION_WIDTH, RESOLUTION_HEIGHT, "music");
hudArea.setImage("HUD/ScreenSettings/BGResolution");
hudArea.setFont("SansSerif", Font.BOLD, 28);
hudArea.setTextXY(RESOLUTION_TEXT_X + 52, RESOLUTION_TEXT_Y);
//sound
hudArea = addArea(LABEL_SFX_X, LABEL_SFX_Y + SPACER2, LABEL_SFX_WIDTH, LABEL_SFX_HEIGHT, "label_sound");
hudArea.setImage("HUD/ScreenSettings/LabelSoundFXVolume");
hudArea = addArea(BUTTON_ARROW_LEFT_X, BUTTON_ARROW_LEFT_Y + SPACER2, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "sound_left");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowLeft");
hudArea = addArea(BUTTON_ARROW_RIGHT_X, BUTTON_ARROW_RIGHT_Y + SPACER2, BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, "sound_right");
hudArea.setImage("HUD/ScreenSettings/ButtonArrowRight");
hudArea = addArea(RESOLUTION_X, RESOLUTION_Y + SPACER2, RESOLUTION_WIDTH, RESOLUTION_HEIGHT, "sound");
hudArea.setImage("HUD/ScreenSettings/BGResolution");
hudArea.setFont("SansSerif", Font.BOLD, 28);
hudArea.setTextXY(RESOLUTION_TEXT_X + 52, RESOLUTION_TEXT_Y);
} else {
hudArea = addArea(JDK_X, JDK_Y, JDK_WIDTH, JDK_HEIGHT, "jdk");
hudArea.setImage("HUD/ScreenSettings/JDK");
}
//keys
hudArea = addArea(BUTTON_KEYS_X, BUTTON_KEYS_Y, BUTTON_KEYS_WIDTH, BUTTON_KEYS_HEIGHT, "keys");
hudArea.setImage("HUD/ScreenSettings/ButtonKeys");
//save
hudArea = addArea(BUTTON_SAVE_X, BUTTON_SAVE_Y, BUTTON_SAVE_WIDTH, BUTTON_SAVE_HEIGHT, "save");
hudArea.setImage("HUD/ScreenSettings/ButtonSave");
//donate
hudArea = addArea(BUTTON_DONATE_X, BUTTON_DONATE_Y, BUTTON_DONATE_WIDTH, BUTTON_DONATE_HEIGHT, "donate");
hudArea.setImage("HUD/Common/Donate");
//help
//hudArea = addArea(BUTTON_HELP_X, BUTTON_HELP_Y, BUTTON_HELP_WIDTH, BUTTON_HELP_HEIGHT, "help");
//hudArea.setImage("HUD/Common/Help");
resolutions = new ArrayList();
resolutions.add("800x600");
resolutions.add("1024x768");
resolutions.add("1152x864");
resolutions.add("1280x720");
resolutions.add("1280x768");
resolutions.add("1280x800");
resolutions.add("1280x960");
resolutions.add("1280x1024");
resolutions.add("1360x768");
resolutions.add("1366x768");
resolutions.add("1440x900");
resolutions.add("1600x900");
resolutions.add("1600x1024");
resolutions.add("1680x1050");
resolutions.add("1920x1080");
resolutions.add("1920x1200");
//resolutions.add("Full Screen");
currentResolution = Settings.resolution;
currentVolumeMusic = Settings.volumeMusic;
currentVolumeFX = Settings.volumeFX;
}
@Override
public void update() {
if (shouldRender) {
HUDArea hudArea;
//update slots
for (int i = 0; i < hudAreas.size(); i++) {
hudArea = hudAreas.get(i);
if (hudArea.getType().equals("resolution")) {
hudArea.setText(resolutions.get(currentResolution).toString());
} else if (hudArea.getType().equals("music")) {
hudArea.setText(Integer.toString((int) currentVolumeMusic));
} else if (hudArea.getType().equals("sound")) {
hudArea.setText(Integer.toString((int) currentVolumeFX));
}
}
}
super.update();
}
@Override
public void HUDAreaClicked(HUDArea ha) {
HUDArea hudArea = null;
for (int i = 0; i < hudAreas.size(); i++) {
hudArea = hudAreas.get(i);
if (hudArea == ha) {
if (hudArea.getType().equals("resolution_left")) {
currentResolution--;
if (currentResolution < 0) {
currentResolution = (resolutions.size() - 1);
}
} else if (hudArea.getType().equals("resolution_right")) {
currentResolution++;
if (currentResolution > (resolutions.size() - 1)) {
currentResolution = 0;
}
} else if (hudArea.getType().equals("music_right")) {
currentVolumeMusic++;
if (currentVolumeMusic > 10) {
currentVolumeMusic = 10;
}
hudManager.updateMusicVolume(currentVolumeMusic);
} else if (hudArea.getType().equals("music_left")) {
currentVolumeMusic--;
if (currentVolumeMusic < 0) {
currentVolumeMusic = 0;
}
hudManager.updateMusicVolume(currentVolumeMusic);
} else if (hudArea.getType().equals("sound_right")) {
currentVolumeFX++;
if (currentVolumeFX > 10) {
currentVolumeFX = 10;
}
SoundClip cl = new SoundClip("Projectile/Arrow", currentVolumeFX);
} else if (hudArea.getType().equals("sound_left")) {
currentVolumeFX--;
if (currentVolumeFX < 0) {
currentVolumeFX = 0;
}
SoundClip cl = new SoundClip("Projectile/Arrow", currentVolumeFX);
} else if (hudArea.getType().equals("keys")) {
hudManager.loadHUD(HUDManager.HUDType.ScreenKeys);
} else if (hudArea.getType().equals("save")) {
Settings.resolution = currentResolution;
Settings.volumeMusic = (int) currentVolumeMusic;
Settings.volumeFX = (int) currentVolumeFX;
registry.isSaving = false;
Settings.save();
hudManager.updateMusicVolume();
hudManager.unloadHUD(name);
hudManager.loadHUD(HUDManager.HUDType.ScreenMain);
} else if (hudArea.getType().equals("jdk")) {
String url = "http://forums.epicinventor.com/index.php?topic=851.0";
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
} catch (Exception e) {
}
} else if (hudArea.getType().equals("donate")) {
String url = "http://www.epicinventor.com/donate.html";
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
} catch (Exception e) {
}
} else if (hudArea.getType().equals("help")) {
String url = "http://www.epicinventor.com/help.html";
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
} catch (Exception e) {
}
}
}
}
}
}