Gridarta Editor
TestMapModelCreator.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 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.model.mapmodel;
21 
22 import java.awt.Point;
23 import java.awt.image.BufferedImage;
24 import javax.swing.ImageIcon;
55 import net.sf.gridarta.utils.Size2D;
56 import org.jetbrains.annotations.NotNull;
57 import org.junit.Assert;
58 
63 public class TestMapModelCreator {
64 
68  @NotNull
70 
74  @NotNull
76 
80  @NotNull
82 
86  @NotNull
88 
92  @NotNull
94 
98  @NotNull
100 
104  @NotNull
106 
110  @NotNull
112 
116  @NotNull
118 
122  @NotNull
124 
128  @NotNull
130 
134  @NotNull
136 
141  public TestMapModelCreator(final boolean createIcons) {
144  if (createIcons) {
145  final ImageIcon imageIcon = new ImageIcon(new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB));
146  for (final String iconName : ICON_NAMES) {
147  resourceIcons.addToCache(iconName, imageIcon);
148  }
149  }
150  final FaceObjects faceObjects = new TestFaceObjects();
152  final FaceProvider faceProvider = new EmptyFaceProvider();
153  faceObjectProviders.setNormal(faceProvider);
155  archetypeSet = new DefaultArchetypeSet<>(archetypeFactory, null);
159  }
160 
167  @NotNull
169  final TestMapArchObject mapArchObject = new TestMapArchObject();
170  mapArchObject.setMapSize(new Size2D(w, h));
172  }
173 
180  @NotNull
181  public TestGameObject newGameObject(@NotNull final String archetypeName, @NotNull final String objectName) {
182  return newGameObject(archetypeName, objectName, 0);
183  }
184 
192  @NotNull
193  public TestGameObject newGameObject(@NotNull final String archetypeName, @NotNull final String objectName, final int type) {
194  final TestArchetype archetype = getArchetype(archetypeName, type);
195  final TestGameObject gameObject = new TestGameObject(archetype, faceObjectProviders, animationObjects);
196  gameObject.setAttributeString(BaseObject.NAME, objectName);
197  return gameObject;
198  }
199 
209  public void addGameObjectToMap(@NotNull final MapModel<TestGameObject, TestMapArchObject, TestArchetype> mapModel, @NotNull final String archetypeName, @NotNull final String name, final int x, final int y, @NotNull final InsertionMode insertionMode) {
210  final TestGameObject gameObject = newGameObject(archetypeName, name);
211  mapModel.addGameObjectToMap(gameObject, new Point(x, y), insertionMode);
212  }
213 
220  public void insertGameObject(@NotNull final GameObject<TestGameObject, TestMapArchObject, TestArchetype> gameObject, @NotNull final String archetypeName, @NotNull final String name) {
221  final TestGameObject inv = newGameObject(archetypeName, name);
222  gameObject.addLast(inv);
223  }
224 
229  @NotNull
231  return insertionModeSet;
232  }
233 
238  @NotNull
240  return topmostInsertionMode;
241  }
242 
248  @NotNull
249  public TestArchetype getArchetype(@NotNull final String archetypeName) {
250  return getArchetype(archetypeName, 0);
251  }
252 
259  @NotNull
260  private TestArchetype getArchetype(@NotNull final String archetypeName, final int type) {
261  try {
262  return archetypeSet.getArchetype(archetypeName);
263  } catch (final UndefinedArchetypeException ignored) {
264  // ignore
265  }
266 
267  final TestArchetype archetype = newArchetype(archetypeName);
268  archetype.setAttributeInt(BaseObject.TYPE, type);
269  try {
270  archetypeSet.addArchetype(archetype);
271  } catch (final DuplicateArchetypeException ex) {
272  Assert.fail(ex.getMessage());
273  throw new AssertionError(ex);
274  }
275  return archetype;
276  }
277 
284  @NotNull
285  public TestArchetype newArchetype(@NotNull final String archetypeName) {
286  return new TestDefaultArchetype(archetypeName, faceObjectProviders, animationObjects);
287  }
288 
293  @NotNull
295  return gameObjectFactory;
296  }
297 
302  @NotNull
304  return mapViewSettings;
305  }
306 
312  @NotNull
315  }
316 
321  @NotNull
323  return autojoinLists;
324  }
325 
330  @NotNull
332  return archetypeChooserModel;
333  }
334 
339  @NotNull
341  return gameObjectMatchers;
342  }
343 
348  @NotNull
350  return archetypeSet;
351  }
352 
359  }
360 
365  @NotNull
367  return faceObjectProviders;
368  }
369 
374  @NotNull
376  return resourceIcons;
377  }
378 
379 }
net.sf.gridarta.model.archetype.TestArchetype
An Archetype implementation for testing purposes.
Definition: TestArchetype.java:30
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getInsertionModeSet
InsertionModeSet< TestGameObject, TestMapArchObject, TestArchetype > getInsertionModeSet()
Returns the InsertionModeSet instance.
Definition: TestMapModelCreator.java:230
net.sf.gridarta.model.face.FaceProvider
This interface represents a lazy loader that provides images on demand.
Definition: FaceProvider.java:30
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newArchetype
TestArchetype newArchetype(@NotNull final String archetypeName)
Creates a new TestArchetype instance but doesn't add it to the archetype set.
Definition: TestMapModelCreator.java:285
name
name
Definition: ArchetypeTypeSetParserTest-ignoreDefaultAttribute1-result.txt:2
net.sf.gridarta.model.mapmodel.MapModel
A MapModel reflects the data of a map.
Definition: MapModel.java:75
net.sf.gridarta.model.mapmodel.TestMapModelCreator.autojoinLists
final AutojoinLists< TestGameObject, TestMapArchObject, TestArchetype > autojoinLists
The AutojoinLists instance.
Definition: TestMapModelCreator.java:111
net.sf.gridarta.model.archetype.TestDefaultArchetype
An Archetype implementation for testing purposes.
Definition: TestDefaultArchetype.java:32
net.sf.gridarta.utils.ResourceIcons.SQUARE_PRE_SELECTED_SQUARE
static final String SQUARE_PRE_SELECTED_SQUARE
Definition: ResourceIcons.java:74
net.sf.gridarta.model.mapmodel.TestMapModelCreator.gameObjectMatchers
final GameObjectMatchers gameObjectMatchers
The GameObjectMatchers instance.
Definition: TestMapModelCreator.java:99
net.sf.gridarta.model.gameobject.GameObjectFactory
Abstract factory for creating GameObject instances.
Definition: GameObjectFactory.java:31
net.sf.gridarta.model.mapmodel.DefaultMapModel
Implementation of MapModel that covers the similarities between crossfire and daimonin.
Definition: DefaultMapModel.java:61
net.sf.gridarta.model.mapmodel.InsertionModeSet
A set of InsertionModes.
Definition: InsertionModeSet.java:33
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newTestMapModelHelper
TestMapModelHelper newTestMapModelHelper()
Creates a new TestMapModelHelper instance.
Definition: TestMapModelCreator.java:313
net.sf.gridarta.model.archetypechooser.ArchetypeChooserModel
The view of the archetype chooser.
Definition: ArchetypeChooserModel.java:38
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.utils.ResourceIcons.SQUARE_SELECTED_SQUARE_EAST
static final String SQUARE_SELECTED_SQUARE_EAST
Definition: ResourceIcons.java:65
net.sf.gridarta.model.mapmodel.TestMapModelHelper
Helper class for creating MapModel instances for regression tests.
Definition: TestMapModelHelper.java:45
net.sf.gridarta.model.archetype.UndefinedArchetypeException
Exception thrown if an Archetype does not exist.
Definition: UndefinedArchetypeException.java:28
net.sf.gridarta.model.anim.AnimationObjects
AnimationObjects is a container for AnimationObjects.
Definition: AnimationObjects.java:30
net.sf.gridarta.model.archetypechooser
Definition: ArchetypeChooserFolder.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getMapViewSettings
MapViewSettings getMapViewSettings()
Returns the MapViewSettings instance.
Definition: TestMapModelCreator.java:303
net.sf.gridarta.model.mapviewsettings
Definition: AbstractMapViewSettings.java:20
net.sf.gridarta.model.gameobject.TestGameObject
A GameObject implementation for testing purposes.
Definition: TestGameObject.java:34
net.sf.gridarta.utils.ResourceIcons.SQUARE_NO_FACE
static final String SQUARE_NO_FACE
Definition: ResourceIcons.java:94
net.sf
net.sf.gridarta.model.mapmodel.TestMapModelCreator.insertGameObject
void insertGameObject(@NotNull final GameObject< TestGameObject, TestMapArchObject, TestArchetype > gameObject, @NotNull final String archetypeName, @NotNull final String name)
Inserts a game object into the inventory of another game object.
Definition: TestMapModelCreator.java:220
net.sf.gridarta.model.mapmodel.TestMapModelCreator
Helper class for regression tests to create MapModel instances.
Definition: TestMapModelCreator.java:63
net.sf.gridarta.model.archetype
Definition: AbstractArchetype.java:20
net.sf.gridarta.utils.ResourceIcons.SQUARE_EMPTY
static final String SQUARE_EMPTY
Definition: ResourceIcons.java:80
net.sf.gridarta.model.face.FaceObjectProviders
Provider for faces of GameObjects and Archetypes.
Definition: FaceObjectProviders.java:46
net.sf.gridarta.model.gameobject.GameObject
Reflects a game object (object on a map).
Definition: GameObject.java:36
net.sf.gridarta.model.mapviewsettings.MapViewSettings
Container for settings that affect the rendering of maps.
Definition: MapViewSettings.java:30
net.sf.gridarta.utils.ResourceIcons.SQUARE_SELECTED_SQUARE_WEST
static final String SQUARE_SELECTED_SQUARE_WEST
Definition: ResourceIcons.java:71
net.sf.gridarta.model.baseobject.BaseObject.NAME
String NAME
The attribute name of the object's name.
Definition: BaseObject.java:60
net.sf.gridarta.model.anim.TestAnimationObjects
An AnimationObjects for regression tests.
Definition: TestAnimationObjects.java:26
net.sf.gridarta.model.face.FaceObjectProviders.setNormal
void setNormal(@NotNull final FaceProvider normalFaceProvider)
Sets the normal FaceProvider.
Definition: FaceObjectProviders.java:231
net.sf.gridarta.model.io.TestGameObjectParser
A GameObjectParser for regression tests.
Definition: TestGameObjectParser.java:35
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getAutojoinLists
AutojoinLists< TestGameObject, TestMapArchObject, TestArchetype > getAutojoinLists()
Returns the AutojoinLists instance.
Definition: TestMapModelCreator.java:322
net.sf.gridarta.model.maparchobject.AbstractMapArchObject.setMapSize
void setMapSize(@NotNull final Size2D mapSize)
Definition: AbstractMapArchObject.java:209
net.sf.gridarta.model.gameobject
GameObjects are the objects based on Archetypes found on maps.
Definition: AbstractGameObject.java:20
net.sf.gridarta.utils.ResourceIcons.SQUARE_SELECTED_SQUARE_SOUTH
static final String SQUARE_SELECTED_SQUARE_SOUTH
Definition: ResourceIcons.java:68
net
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newMapModel
MapModel< TestGameObject, TestMapArchObject, TestArchetype > newMapModel(final int w, final int h)
Creates a new MapModel instance.
Definition: TestMapModelCreator.java:168
net.sf.gridarta.model.match.TypeNrsGameObjectMatcher
An GameObjectMatcher matching certain archetype types.
Definition: TypeNrsGameObjectMatcher.java:30
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getFaceObjectProviders
FaceObjectProviders getFaceObjectProviders()
Returns the FaceObjectProviders instance.
Definition: TestMapModelCreator.java:366
net.sf.gridarta.utils.ResourceIcons.DEFAULT_ICON
static final String DEFAULT_ICON
The default map icon to use if no icon can be created.
Definition: ResourceIcons.java:115
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getGameObjectFactory
GameObjectFactory< TestGameObject, TestMapArchObject, TestArchetype > getGameObjectFactory()
Returns the GameObjectFactory instance.
Definition: TestMapModelCreator.java:294
net.sf.gridarta.model.gameobject.TestGameObjectFactory
A GameObjectFactory for regression tests.
Definition: TestGameObjectFactory.java:34
net.sf.gridarta.model.match
Classes related to matching {GameObjects}, so called { net.sf.gridarta.model.match....
Definition: AndGameObjectMatcher.java:20
net.sf.gridarta.model.autojoin
Definition: AutojoinList.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.topmostInsertionMode
final InsertionMode topmostInsertionMode
The "topmost" InsertionMode instance.
Definition: TestMapModelCreator.java:129
net.sf.gridarta.model.mapmodel.TestMapModelCreator.mapViewSettings
final MapViewSettings mapViewSettings
The MapViewSettings instance.
Definition: TestMapModelCreator.java:81
net.sf.gridarta.model.archetype.ArchetypeFactory
A factory for creating Archetype instances.
Definition: ArchetypeFactory.java:30
net.sf.gridarta.model.face.EmptyFaceProvider
A FaceProvider that does not return any faces.
Definition: EmptyFaceProvider.java:30
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getArchetypeSet
ArchetypeSet< TestGameObject, TestMapArchObject, TestArchetype > getArchetypeSet()
Returns the ArchetypeSet.
Definition: TestMapModelCreator.java:349
net.sf.gridarta.model.match.GameObjectMatchers
Maintains GameObjectMatcher instances.
Definition: GameObjectMatchers.java:40
net.sf.gridarta.model.mapviewsettings.TestMapViewSettings
A MapViewSettings implementation for regression tests.
Definition: TestMapViewSettings.java:27
net.sf.gridarta.model.face.FaceObjects
FaceObjects is a container for FaceObjects.
Definition: FaceObjects.java:31
net.sf.gridarta.model.archetypeset.ArchetypeSet
Interface that captures similarities between different ArchetypeSet implementations.
Definition: ArchetypeSet.java:37
net.sf.gridarta.utils.ResourceIcons.SQUARE_WARNING
static final String SQUARE_WARNING
Definition: ResourceIcons.java:85
net.sf.gridarta.model.mapmodel.InsertionMode
Insertion modes.
Definition: InsertionMode.java:33
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getGameObjectMatchers
GameObjectMatchers getGameObjectMatchers()
Returns the GameObjectMatchers instance.
Definition: TestMapModelCreator.java:340
net.sf.gridarta.model.baseobject.BaseObject
Definition: BaseObject.java:34
net.sf.gridarta.model.autojoin.AutojoinLists
Manages a mapping between archetypes to AutojoinLists.
Definition: AutojoinLists.java:35
net.sf.gridarta.model.archetype.TestArchetypeFactory
An ArchetypeFactory implementation for testing purposes.
Definition: TestArchetypeFactory.java:32
net.sf.gridarta.utils.ResourceIcons.SQUARE_CURSOR
static final String SQUARE_CURSOR
Definition: ResourceIcons.java:77
net.sf.gridarta.model.io
Reading and writing of maps, handling of paths.
Definition: AbstractAnimationObjectsReader.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.animationObjects
final AnimationObjects animationObjects
The AnimationObjects instance.
Definition: TestMapModelCreator.java:123
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getArchetypeChooserModel
ArchetypeChooserModel< TestGameObject, TestMapArchObject, TestArchetype > getArchetypeChooserModel()
Returns the ArchetypeChooserModel instance.
Definition: TestMapModelCreator.java:331
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newGameObject
TestGameObject newGameObject(@NotNull final String archetypeName, @NotNull final String objectName, final int type)
Creates a new game object.
Definition: TestMapModelCreator.java:193
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getArchetype
TestArchetype getArchetype(@NotNull final String archetypeName)
Returns an archetype.
Definition: TestMapModelCreator.java:249
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newGameObject
TestGameObject newGameObject(@NotNull final String archetypeName, @NotNull final String objectName)
Creates a new game object.
Definition: TestMapModelCreator.java:181
net.sf.gridarta.utils.ResourceIcons.SQUARE_UNKNOWN
static final String SQUARE_UNKNOWN
Definition: ResourceIcons.java:83
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getTopmostInsertionMode
InsertionMode getTopmostInsertionMode()
Returns the "topmost" insertion mode.
Definition: TestMapModelCreator.java:239
net.sf.gridarta.utils.ResourceIcons.DEFAULT_PREVIEW
static final String DEFAULT_PREVIEW
The default map preview to use if no icon can be created.
Definition: ResourceIcons.java:121
net.sf.gridarta.model.mapmodel.TestMapModelCreator.TestMapModelCreator
TestMapModelCreator(final boolean createIcons)
Creates a new instance.
Definition: TestMapModelCreator.java:141
net.sf.gridarta.model
net.sf.gridarta.utils.ResourceIcons.addToCache
void addToCache(@NotNull final String name, @NotNull final ImageIcon imageIcon)
Add an image to the cache.
Definition: ResourceIcons.java:208
net.sf.gridarta.model.baseobject
Definition: AbstractBaseObject.java:20
net.sf.gridarta.utils.ResourceIcons.SQUARE_SELECTED_SQUARE_NORTH
static final String SQUARE_SELECTED_SQUARE_NORTH
Definition: ResourceIcons.java:62
net.sf.gridarta.model.mapmodel.TestMapModelCreator.addGameObjectToMap
void addGameObjectToMap(@NotNull final MapModel< TestGameObject, TestMapArchObject, TestArchetype > mapModel, @NotNull final String archetypeName, @NotNull final String name, final int x, final int y, @NotNull final InsertionMode insertionMode)
Inserts a game object into a map.
Definition: TestMapModelCreator.java:209
net.sf.gridarta.model.face
The face is the appearance of an object.
Definition: AbstractFaceObjects.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.resourceIcons
final ResourceIcons resourceIcons
The ResourceIcons instance.
Definition: TestMapModelCreator.java:87
net.sf.gridarta.model.anim
Gridarta can handle frame information of animations and allow the selection of an animation using a t...
Definition: AbstractAnimationObjects.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.insertionModeSet
final InsertionModeSet< TestGameObject, TestMapArchObject, TestArchetype > insertionModeSet
The InsertionModeSet instance.
Definition: TestMapModelCreator.java:135
net.sf.gridarta.model.archetype.DuplicateArchetypeException
An Exception indicating that an Archetype name is not unique.
Definition: DuplicateArchetypeException.java:29
net.sf.gridarta.model.mapmodel.TestMapModelCreator.archetypeChooserModel
final ArchetypeChooserModel< TestGameObject, TestMapArchObject, TestArchetype > archetypeChooserModel
The ArchetypeChooserModel instance.
Definition: TestMapModelCreator.java:105
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getArchetype
TestArchetype getArchetype(@NotNull final String archetypeName, final int type)
Returns an archetype.
Definition: TestMapModelCreator.java:260
net.sf.gridarta.model.mapmodel.TestMapModelCreator.archetypeSet
final ArchetypeSet< TestGameObject, TestMapArchObject, TestArchetype > archetypeSet
The ArchetypeSet instance.
Definition: TestMapModelCreator.java:69
net.sf.gridarta.model.maparchobject.TestMapArchObject
A MapArchObject implementation for testing purposes.
Definition: TestMapArchObject.java:28
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.utils.ResourceIcons
Creates ImageIcon instances from resources.
Definition: ResourceIcons.java:46
net.sf.gridarta.model.baseobject.BaseObject.TYPE
String TYPE
The attribute name of the object's type.
Definition: BaseObject.java:66
net.sf.gridarta.model.io.GameObjectParser
Interface for classes that read or write GameObject instances.
Definition: GameObjectParser.java:37
net.sf.gridarta.model.archetypeset
Definition: ArchetypeSet.java:20
net.sf.gridarta.model.mapmodel.TopmostInsertionMode
Insert topmost.
Definition: TopmostInsertionMode.java:31
net.sf.gridarta.model.archetypeset.DefaultArchetypeSet
Base implementation of ArchetypeSet.
Definition: DefaultArchetypeSet.java:44
net.sf.gridarta.utils.Size2D
The class Size2D represents a 2d rectangular area.
Definition: Size2D.java:30
net.sf.gridarta.utils
Definition: ActionBuilderUtils.java:20
net.sf.gridarta.model.mapmodel.TestMapModelCreator.gameObjectFactory
final GameObjectFactory< TestGameObject, TestMapArchObject, TestArchetype > gameObjectFactory
The GameObjectFactory instance.
Definition: TestMapModelCreator.java:117
net.sf.gridarta.model.mapmodel.TestMapModelCreator.getResourceIcons
ResourceIcons getResourceIcons()
Returns the ResourceIcons instance.
Definition: TestMapModelCreator.java:375
net.sf.gridarta.model.face.TestFaceObjects
A FaceObjects for regression tests.
Definition: TestFaceObjects.java:30
net.sf.gridarta.utils.ResourceIcons.SQUARE_NO_ARCH
static final String SQUARE_NO_ARCH
Definition: ResourceIcons.java:97
net.sf.gridarta.model.mapmodel.TestMapModelCreator.newGameObjectParser
GameObjectParser< TestGameObject, TestMapArchObject, TestArchetype > newGameObjectParser()
Creates a new GameObjectParser instance.
Definition: TestMapModelCreator.java:357
net.sf.gridarta.model.mapmodel.TestMapModelCreator.faceObjectProviders
final FaceObjectProviders faceObjectProviders
The FaceObjectProviders instance.
Definition: TestMapModelCreator.java:93
net.sf.gridarta.model.mapmodel.TestMapModelCreator.ICON_NAMES
static final String[] ICON_NAMES
Predefined icon names.
Definition: TestMapModelCreator.java:75
net.sf.gridarta.utils.ResourceIcons.SQUARE_SELECTED_SQUARE
static final String SQUARE_SELECTED_SQUARE
Definition: ResourceIcons.java:59