use of de.gurkenlabs.litiengine.environment.tilemap.xml.Map in project litiengine by gurkenlabs.
the class EditorScreen method create.
public void create() {
JFileChooser chooser;
try {
chooser = new JFileChooser(new File(".").getCanonicalPath());
chooser.setDialogTitle(Resources.get("input_select_project_folder"));
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (chooser.showOpenDialog(Game.getScreenManager().getRenderComponent()) != JFileChooser.APPROVE_OPTION) {
return;
}
if (Game.getEnvironment() != null) {
Game.loadEnvironment(null);
}
// set up project settings
this.setProjectPath(chooser.getSelectedFile().getCanonicalPath());
// load all maps in the directory
this.mapComponent.loadMaps(this.getProjectPath());
this.currentResourceFile = null;
this.gameFile = new GameData();
// add sprite sheets by tile sets of all maps in the project director
for (Map map : this.mapComponent.getMaps()) {
this.loadSpriteSheets(map);
}
Program.getAssetTree().forceUpdate();
// load custom emitter files
this.loadCustomEmitters(this.getGameFile().getEmitters());
// update new game file by the loaded information
this.updateGameFileMaps();
// display first available map after loading all stuff
if (!this.mapComponent.getMaps().isEmpty()) {
this.mapComponent.loadEnvironment(this.mapComponent.getMaps().get(0));
this.changeComponent(ComponentType.MAP);
}
} catch (IOException e) {
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
this.setCurrentStatus("created new project");
}
use of de.gurkenlabs.litiengine.environment.tilemap.xml.Map in project litiengine by gurkenlabs.
the class EditorScreen method updateGameFileMaps.
public void updateGameFileMaps() {
this.getGameFile().getMaps().clear();
for (Map map : this.mapComponent.getMaps()) {
this.getGameFile().getMaps().add(map);
}
Program.getAssetTree().forceUpdate();
}
use of de.gurkenlabs.litiengine.environment.tilemap.xml.Map in project litiengine by gurkenlabs.
the class MapSelectionPanel method bind.
public synchronized void bind(List<Map> maps, boolean clear) {
if (clear) {
this.model.clear();
}
for (Map map : maps) {
String name = map.getFileName();
if (UndoManager.hasChanges(map)) {
name += " *";
}
// update existing strings
int indexToReplace = getIndexToReplace(map.getFileName());
if (indexToReplace != -1) {
this.model.set(indexToReplace, name);
} else {
// add new maps
this.model.addElement(name);
}
}
// remove maps that are no longer present
for (int i = 0; i < this.model.getSize(); i++) {
final String current = this.model.get(i);
if (current == null || maps.stream().noneMatch(x -> current.startsWith(x.getFileName()))) {
this.model.remove(i);
}
}
mapList.revalidate();
}
use of de.gurkenlabs.litiengine.environment.tilemap.xml.Map in project litiengine by gurkenlabs.
the class AssetTree method loadAssetsOfCurrentSelection.
private void loadAssetsOfCurrentSelection(TreePath selectedPath) {
if (selectedPath == null) {
return;
}
final TreePath spritePath = new TreePath(this.nodeSpritesheets.getPath());
final TreePath propPath = new TreePath(this.nodeSpriteProps.getPath());
final TreePath creaturePath = new TreePath(this.nodeCreatures.getPath());
final TreePath miscPath = new TreePath(this.nodeSpriteMisc.getPath());
final TreePath tilesetPath = new TreePath(this.nodeTileSets.getPath());
final TreePath emitterPath = new TreePath(this.nodeEmitters.getPath());
final TreePath blueprintPath = new TreePath(this.nodeBlueprints.getPath());
final GameData gameFile = EditorScreen.instance().getGameFile();
if (selectedPath.equals(spritePath)) {
Program.getAssetPanel().loadSprites(gameFile.getSpriteSheets().stream().collect(Collectors.toList()));
} else if (this.getSelectionPath().equals(propPath)) {
Program.getAssetPanel().loadSprites(gameFile.getSpriteSheets().stream().filter(x -> x.getName() != null && x.getName().contains(Program.PROP_SPRITE_PREFIX)).collect(Collectors.toList()));
} else if (this.getSelectionPath().equals(creaturePath)) {
Program.getAssetPanel().loadSprites(gameFile.getSpriteSheets().stream().filter(x -> x.getName() != null && CreaturePanel.getCreatureSpriteName(x.getName()) != null).collect(Collectors.toList()));
} else if (selectedPath.equals(miscPath)) {
Program.getAssetPanel().loadSprites(gameFile.getSpriteSheets().stream().filter(x -> x.getName() != null && !x.getName().contains(Program.PROP_SPRITE_PREFIX) && CreaturePanel.getCreatureSpriteName(x.getName()) == null).collect(Collectors.toList()));
} else if (selectedPath.equals(tilesetPath)) {
ArrayList<Tileset> allTilesets = new ArrayList<>();
allTilesets.addAll(gameFile.getTilesets().stream().filter(x -> x.getName() != null).collect(Collectors.toList()));
for (Map map : gameFile.getMaps()) {
for (ITileset tileset : map.getTilesets()) {
if (allTilesets.stream().anyMatch(x -> x.getName() != null && x.getName().equals(tileset.getName()))) {
continue;
}
allTilesets.add((Tileset) tileset);
}
}
Program.getAssetPanel().loadTilesets(allTilesets);
} else if (selectedPath.equals(emitterPath)) {
Program.getAssetPanel().loadEmitters(gameFile.getEmitters());
} else if (selectedPath.equals(blueprintPath)) {
Program.getAssetPanel().loadBlueprints(gameFile.getBluePrints());
}
}
Aggregations