use of org.pepsoft.worldpainter.tools.BiomesViewerFrame in project WorldPainter by Captain-Chaos.
the class App method createToolsMenu.
private JMenu createToolsMenu() {
JMenuItem menuItem = new JMenuItem(strings.getString("respawn.player") + "...");
menuItem.addActionListener(e -> {
RespawnPlayerDialog dialog = new RespawnPlayerDialog(App.this);
dialog.setVisible(true);
});
menuItem.setMnemonic('r');
JMenu menu = new JMenu(strings.getString("tools"));
menu.setMnemonic('t');
menu.add(menuItem);
menuItem = new JMenuItem(strings.getString("open.custom.brushes.folder"));
menuItem.addActionListener(e -> {
File brushesDir = new File(Configuration.getConfigDir(), "brushes");
if (!brushesDir.exists()) {
if (!brushesDir.mkdirs()) {
Toolkit.getDefaultToolkit().beep();
return;
}
}
DesktopUtils.open(brushesDir);
});
menuItem.setMnemonic('c');
menu.add(menuItem);
menuItem = new JMenuItem(strings.getString("open.plugins.folder"));
menuItem.addActionListener(e -> {
File pluginsDir = new File(Configuration.getConfigDir(), "plugins");
if (!pluginsDir.exists()) {
if (!pluginsDir.mkdirs()) {
Toolkit.getDefaultToolkit().beep();
return;
}
}
DesktopUtils.open(pluginsDir);
});
menuItem.setMnemonic('p');
menu.add(menuItem);
menuItem = new JMenuItem(strings.getString("biomes.viewer") + "...");
// Disable the menu item after the biome scheme manager has been
// initialised, if it turns out there are no supported biome algorithms
// (because no supported Minecraft installation could be found, for
// instance), but without blocking the GUI
final JMenuItem biomesViewerMenuItem = menuItem;
new Thread("Biomes Viewer Menu Item Initialiser") {
@Override
public void run() {
if (BiomeSchemeManager.getAvailableBiomeAlgorithms().isEmpty()) {
logger.info("No supported Minecraft installation found; disabling biomes preview and Biomes Viewer");
SwingUtilities.invokeLater(() -> {
biomesViewerMenuItem.setEnabled(false);
biomesViewerMenuItem.setToolTipText("No supported Minecraft installation found");
});
}
}
}.start();
menuItem.addActionListener(event -> {
if (BiomeSchemeManager.getAvailableBiomeAlgorithms().isEmpty()) {
// the menu item is still enabled
return;
}
if (biomesViewerFrame != null) {
biomesViewerFrame.requestFocus();
} else {
int preferredAlgorithm = -1;
if ((dimension != null) && (dimension.getDim() == DIM_NORMAL) && (dimension.getMaxHeight() == DEFAULT_MAX_HEIGHT_2)) {
if (world.getGenerator() == Generator.LARGE_BIOMES) {
preferredAlgorithm = BIOME_ALGORITHM_1_7_LARGE;
} else {
preferredAlgorithm = BIOME_ALGORITHM_1_7_DEFAULT;
}
}
logger.info("Opening biomes viewer");
biomesViewerFrame = new BiomesViewerFrame(dimension.getMinecraftSeed(), world.getSpawnPoint(), preferredAlgorithm, colourSchemes[0], App.this);
biomesViewerFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
biomesViewerFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// was
if (biomesViewerFrame != null) {
biomesViewerFrame.destroy();
biomesViewerFrame.dispose();
biomesViewerFrame = null;
}
}
});
biomesViewerFrame.setLocationRelativeTo(App.this);
biomesViewerFrame.setVisible(true);
}
});
menuItem.setMnemonic('b');
menu.add(menuItem);
// menuItem = new JMenuItem("Manage plugins...");
// menuItem.addActionListener(e -> {
// StringBuilder url = new StringBuilder("http://bo.worldpainter.net:8081/wp/plugins/overview.jsp");
// url.append("?uuid=").append(Configuration.getInstance().getUuid().toString());
// boolean first = true;
// for (Plugin plugin: PluginManager.getInstance().getAllPlugins()) {
// if (plugin.getName().equals("Default")) {
// continue;
// }
// if (first) {
// url.append("&plugins=");
// first = false;
// } else {
// url.append(',');
// }
// url.append(plugin.getName().replaceAll("\\s", "").toLowerCase());
// }
// SimpleBrowser browser = new SimpleBrowser(App.this, true, "Manage Plugins", url.toString());
// browser.setVisible(true);
// });
// menuItem.setMnemonic('p');
// menu.add(menuItem);
menuItem = new JMenuItem("Run script...");
menuItem.addActionListener(e -> {
new ScriptRunner(this, world, dimension, undoManagers.values()).setVisible(true);
});
menu.add(menuItem);
menu.putClientProperty(HELP_KEY_KEY, "Menu/Tools");
return menu;
}
Aggregations