Gridarta Editor
Iso3DMapTilePane.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.gui.map.maptilepane;
21 
22 import javax.swing.filechooser.FileFilter;
31 import org.jetbrains.annotations.NotNull;
32 
38 public class Iso3DMapTilePane<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractMapTilePane<G, A, R> {
39 
43  private static final long serialVersionUID = 1L;
44 
48  private static final MapLink[][] TILE_LINK = new MapLink[10][2];
49 
50  static {
51  /* fine list of indirect links von maps around to other maps around us */
52  TILE_LINK[Direction.NORTH.ordinal()][0] = new MapLink(Direction.NORTH_WEST, Direction.WEST);
53  TILE_LINK[Direction.NORTH.ordinal()][1] = new MapLink(Direction.NORTH_EAST, Direction.EAST);
54 
55  TILE_LINK[Direction.NORTH_EAST.ordinal()][0] = new MapLink(Direction.NORTH, Direction.WEST);
56  TILE_LINK[Direction.NORTH_EAST.ordinal()][1] = new MapLink(Direction.EAST, Direction.SOUTH);
57 
58  TILE_LINK[Direction.EAST.ordinal()][0] = new MapLink(Direction.NORTH_EAST, Direction.NORTH);
59  TILE_LINK[Direction.EAST.ordinal()][1] = new MapLink(Direction.SOUTH_EAST, Direction.SOUTH);
60 
61  TILE_LINK[Direction.SOUTH_EAST.ordinal()][0] = new MapLink(Direction.EAST, Direction.NORTH);
62  TILE_LINK[Direction.SOUTH_EAST.ordinal()][1] = new MapLink(Direction.SOUTH, Direction.WEST);
63 
64  TILE_LINK[Direction.SOUTH.ordinal()][0] = new MapLink(Direction.SOUTH_EAST, Direction.EAST);
65  TILE_LINK[Direction.SOUTH.ordinal()][1] = new MapLink(Direction.SOUTH_WEST, Direction.WEST);
66 
67  TILE_LINK[Direction.SOUTH_WEST.ordinal()][0] = new MapLink(Direction.SOUTH, Direction.EAST);
68  TILE_LINK[Direction.SOUTH_WEST.ordinal()][1] = new MapLink(Direction.WEST, Direction.NORTH);
69 
70  TILE_LINK[Direction.WEST.ordinal()][0] = new MapLink(Direction.SOUTH_WEST, Direction.SOUTH);
71  TILE_LINK[Direction.WEST.ordinal()][1] = new MapLink(Direction.NORTH_WEST, Direction.NORTH);
72 
73  TILE_LINK[Direction.NORTH_WEST.ordinal()][0] = new MapLink(Direction.WEST, Direction.SOUTH);
74  TILE_LINK[Direction.NORTH_WEST.ordinal()][1] = new MapLink(Direction.NORTH, Direction.EAST);
75  }
76 
82 
86  private static final int[] NEXT_FOCUS = { 4, 5, 6, 7, 1, 2, 3, 0 };
87 
95  public Iso3DMapTilePane(final MapManager<G, A, R> mapManager, @NotNull final ProjectSettings projectSettings, final MapModel<G, A, R> mapModel, final FileFilter mapFileFilter) {
96  super(mapManager, projectSettings, mapModel, TILE_LINK, DIRECTION_MAPPING, NEXT_FOCUS, mapFileFilter);
97  }
98 
99 }
A MapModel reflects the data of a map.
Definition: MapModel.java:75
A MapManager manages all opened maps.
Definition: MapManager.java:37
static final long serialVersionUID
Serial Version UID.
static final int [] NEXT_FOCUS
Indices of next focus.
Settings that apply to a project.
final ProjectSettings projectSettings
The project settings instance.
A Panel for managing the tiling of maps.
Base package of all Gridarta classes.
Reflects a game object (object on a map).
Definition: GameObject.java:36
GameObjects are the objects based on Archetypes found on maps.
Iso3DMapTilePane(final MapManager< G, A, R > mapManager, @NotNull final ProjectSettings projectSettings, final MapModel< G, A, R > mapModel, final FileFilter mapFileFilter)
Create a MapTilePane.
final FileFilter mapFileFilter
Swing FileFilter for map files.
static final MapLink [][] TILE_LINK
The tile links used for the attach map algorithm.
static final Direction [] DIRECTION_MAPPING
Maps map direction to net.sf.gridarta.gui.utils.DirectionLayout direction.