Search in sources :

Example 11 with Map

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");
}
Also used : GameData(de.gurkenlabs.litiengine.GameData) JFileChooser(javax.swing.JFileChooser) IOException(java.io.IOException) File(java.io.File) Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map)

Example 12 with Map

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();
}
Also used : Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map)

Example 13 with Map

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();
}
Also used : Color(java.awt.Color) UIManager(javax.swing.UIManager) Enumeration(java.util.Enumeration) Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map) Emitter(de.gurkenlabs.litiengine.graphics.particles.Emitter) ImageCache(de.gurkenlabs.litiengine.graphics.ImageCache) MouseAdapter(java.awt.event.MouseAdapter) TitledBorder(javax.swing.border.TitledBorder) BorderLayout(java.awt.BorderLayout) MouseListener(java.awt.event.MouseListener) Trigger(de.gurkenlabs.litiengine.entities.Trigger) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) Creature(de.gurkenlabs.litiengine.entities.Creature) Resources(de.gurkenlabs.litiengine.Resources) BufferedImage(java.awt.image.BufferedImage) TreePath(javax.swing.tree.TreePath) Font(java.awt.Font) Predicate(java.util.function.Predicate) IEntity(de.gurkenlabs.litiengine.entities.IEntity) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) Dimension(java.awt.Dimension) List(java.util.List) IMapObjectLayer(de.gurkenlabs.litiengine.environment.tilemap.IMapObjectLayer) JCheckBox(javax.swing.JCheckBox) EmptyBorder(javax.swing.border.EmptyBorder) IconTreeListItem(de.gurkenlabs.utiliti.swing.IconTreeListItem) Spawnpoint(de.gurkenlabs.litiengine.environment.tilemap.Spawnpoint) JPanel(javax.swing.JPanel) Game(de.gurkenlabs.litiengine.Game) ListSelectionModel(javax.swing.ListSelectionModel) Rectangle(java.awt.Rectangle) Insets(java.awt.Insets) JSplitPane(javax.swing.JSplitPane) JTextField(javax.swing.JTextField) CollisionBox(de.gurkenlabs.litiengine.entities.CollisionBox) LineBorder(javax.swing.border.LineBorder) IMapObject(de.gurkenlabs.litiengine.environment.tilemap.IMapObject) FocusAdapter(java.awt.event.FocusAdapter) IconTreeListRenderer(de.gurkenlabs.utiliti.swing.IconTreeListRenderer) JMenuItem(javax.swing.JMenuItem) Graphics2D(java.awt.Graphics2D) JTabbedPane(javax.swing.JTabbedPane) Prop(de.gurkenlabs.litiengine.entities.Prop) ImageProcessing(de.gurkenlabs.litiengine.util.ImageProcessing) ImageIcon(javax.swing.ImageIcon) LightSource(de.gurkenlabs.litiengine.graphics.LightSource) JButton(javax.swing.JButton) JPopupMenu(javax.swing.JPopupMenu) JList(javax.swing.JList) JTree(javax.swing.JTree) MouseEvent(java.awt.event.MouseEvent) MapArea(de.gurkenlabs.litiengine.environment.tilemap.MapArea) StaticShadow(de.gurkenlabs.litiengine.graphics.StaticShadow) JScrollPane(javax.swing.JScrollPane) DefaultListModel(javax.swing.DefaultListModel) MapObjectType(de.gurkenlabs.litiengine.environment.tilemap.MapObjectType) FocusEvent(java.awt.event.FocusEvent) JCheckBoxList(de.gurkenlabs.utiliti.swing.JCheckBoxList) Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map) Spawnpoint(de.gurkenlabs.litiengine.environment.tilemap.Spawnpoint)

Example 14 with Map

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());
    }
}
Also used : ITileset(de.gurkenlabs.litiengine.environment.tilemap.ITileset) Resources(de.gurkenlabs.litiengine.Resources) TreePath(javax.swing.tree.TreePath) EditorScreen(de.gurkenlabs.utiliti.EditorScreen) Icons(de.gurkenlabs.utiliti.Icons) JTree(javax.swing.JTree) Collectors(java.util.stream.Collectors) Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map) CreaturePanel(de.gurkenlabs.utiliti.swing.panels.CreaturePanel) ArrayList(java.util.ArrayList) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) GameData(de.gurkenlabs.litiengine.GameData) Program(de.gurkenlabs.utiliti.Program) Dimension(java.awt.Dimension) Tileset(de.gurkenlabs.litiengine.environment.tilemap.xml.Tileset) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) GameData(de.gurkenlabs.litiengine.GameData) TreePath(javax.swing.tree.TreePath) ITileset(de.gurkenlabs.litiengine.environment.tilemap.ITileset) ArrayList(java.util.ArrayList) ITileset(de.gurkenlabs.litiengine.environment.tilemap.ITileset) Tileset(de.gurkenlabs.litiengine.environment.tilemap.xml.Tileset) Map(de.gurkenlabs.litiengine.environment.tilemap.xml.Map)

Aggregations

Map (de.gurkenlabs.litiengine.environment.tilemap.xml.Map)14 Resources (de.gurkenlabs.litiengine.Resources)5 BufferedImage (java.awt.image.BufferedImage)5 Game (de.gurkenlabs.litiengine.Game)4 IMap (de.gurkenlabs.litiengine.environment.tilemap.IMap)4 Tileset (de.gurkenlabs.litiengine.environment.tilemap.xml.Tileset)4 Color (java.awt.Color)4 Dimension (java.awt.Dimension)4 Font (java.awt.Font)4 Graphics2D (java.awt.Graphics2D)4 File (java.io.File)4 ArrayList (java.util.ArrayList)4 GameData (de.gurkenlabs.litiengine.GameData)3 IMapObjectLayer (de.gurkenlabs.litiengine.environment.tilemap.IMapObjectLayer)3 ITileset (de.gurkenlabs.litiengine.environment.tilemap.ITileset)3 ImageCache (de.gurkenlabs.litiengine.graphics.ImageCache)3 Input (de.gurkenlabs.litiengine.input.Input)3 Point2D (java.awt.geom.Point2D)3 IOException (java.io.IOException)3 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)3