Gridarta Editor
net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R > Class Template Reference

Implementation of MapModel that covers the similarities between crossfire and daimonin. More...

+ Inheritance diagram for net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >:
+ Collaboration diagram for net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >:

Public Member Functions

void addActiveEditType (final int editType)
 
void addGameObjectToMap (@NotNull final G gameObject, @NotNull final Point pos, @NotNull final InsertionMode< G, A, R > insertionMode)
 
void addMapModelListener (@NotNull final MapModelListener< G, A, R > listener)
 
void addMapTransactionListener (@NotNull final MapTransactionListener< G, A, R > listener)
 
void addObjectListToMap (@NotNull final Iterable< G > objects)
 
void beginGameObjectChange (@NotNull final G gameObject)
 
void beginSquareChange (@NotNull final MapSquare< G, A, R > mapSquare)
 
void beginTransaction (@NotNull final String name)
 
void clearMap ()
 
 DefaultMapModel (@NotNull final AutojoinLists< G, A, R > autojoinLists, @NotNull final A mapArchObject, @NotNull final ArchetypeChooserModel< G, A, R > archetypeChooserModel, @NotNull final GameObjectFactory< G, A, R > gameObjectFactory, @NotNull final GameObjectMatchers gameObjectMatchers, @NotNull final InsertionMode< G, A, R > topmostInsertionMode)
 Create a new instance. More...
 
void endAllTransactions ()
 
void endGameObjectChange (@NotNull final G gameObject)
 
void endSquareChange (@NotNull final MapSquare< G, A, R > mapSquare)
 
void endTransaction ()
 
void endTransaction (final boolean fireEvent)
 
void facesReloaded ()
 
List< G > getAllGameObjects ()
 
ErrorCollector< G, A, R > getErrors ()
 
getMapArchObject ()
 
MapFile getMapFile ()
 
MapFile getMapFile (@NotNull final MapPath mapPath) throws SameMapException, UnsavedMapException
 
MapSquare< G, A, R > getMapSquare (@NotNull final Point pos)
 
int getTransactionDepth ()
 
insertArchToMap (@NotNull final BaseObject< G, A, R, ?> templateBaseObject, @Nullable final G nextGameObject, @NotNull final Point pos, final boolean join)
 I'm too complex More...
 
insertBaseObject (@NotNull final BaseObject< G, A, R, ?> baseObject, @NotNull final Point pos, final boolean allowMany, final boolean join, @NotNull final InsertionMode< G, A, R > insertionMode)
 
boolean isAnyTransactionActive ()
 
boolean isAreaEmpty (final int left, final int top, final int width, final int height)
 
boolean isEmpty ()
 
boolean isModified ()
 
boolean isMultiArchFittingToMap (@NotNull final Archetype< G, A, R > archetype, @NotNull final Point pos, final boolean allowDouble)
 
Iterator< MapSquare< G, A, R > > iterator ()
 
void mapClosed ()
 
void moveEnv (@NotNull final G gameObject, @NotNull final Point pos, @NotNull final G nextGameObject)
 
void moveInv (@NotNull final G gameObject, @NotNull final GameObject< G, A, R > prevGameObject)
 
void nextPoint (final Point point, final int direction)
 
void removeGameObject (@NotNull final G gameObject, final boolean join)
 
void removeMapModelListener (@NotNull final MapModelListener< G, A, R > listener)
 
void removeMapTransactionListener (@NotNull final MapTransactionListener< G, A, R > listener)
 
void resetModified ()
 
void setErrors (@NotNull final ErrorCollector< G, A, R > errors)
 
void setMapFile (@Nullable final MapFile mapFile)
 
void transientGameObjectChange (@NotNull final G gameObject)
 
- Public Member Functions inherited from net.sf.gridarta.model.mapmodel.MapModel< G, A, R >
void addActiveEditType (int editType)
 Add edit type to the bitmask of active types. More...
 
void addGameObjectToMap ( @NotNull G gameObject, @NotNull Point pos, @NotNull InsertionMode< G, A, R > insertionMode)
 Add a gameObject to the map. More...
 
void addMapModelListener ( @NotNull MapModelListener< G, A, R > listener)
 Register a map listener. More...
 
void addMapTransactionListener ( @NotNull MapTransactionListener< G, A, R > listener)
 Registers a map transaction listener. More...
 
void addObjectListToMap ( @NotNull Iterable< G > objects)
 Adds a list of GameObjects to this map. More...
 
void beginGameObjectChange ( @NotNull G gameObject)
 Method to notify the model that a game object is about to change. More...
 
void beginSquareChange ( @NotNull MapSquare< G, A, R > mapSquare)
 Method to notify the model that a map square is about to change. More...
 
void beginTransaction ( @NotNull String name)
 Starts a new transaction. More...
 
void clearMap ()
 Clears this map completely. More...
 
void endAllTransactions ()
 Ends all transaction. More...
 
void endGameObjectChange ( @NotNull G gameObject)
 Method to notify the model that a game object was changed. More...
 
void endSquareChange ( @NotNull MapSquare< G, A, R > mapSquare)
 Method to notify the model that a map square was changed. More...
 
void endTransaction ()
 End a transaction. More...
 
void endTransaction (boolean fireEvent)
 End a transaction. More...
 
void facesReloaded ()
 Will be called whenever the archetype faces have been reloaded. More...
 
List< G > getAllGameObjects ()
 Returns all game objects. More...
 
ErrorCollector< G, A, R > getErrors ()
 Gets the errors in this map. More...
 
getMapArchObject ()
 Returns the Map Arch Object with the meta information about the map. More...
 
MapFile getMapFile ()
 Returns the map file. More...
 
MapFile getMapFile ( @NotNull MapPath mapPath) throws SameMapException, UnsavedMapException
 Returns the map file for a map that can be reached by following a MapPath from this map. More...
 
MapSquare< G, A, R > getMapSquare ( @NotNull Point pos)
 Get the square at a specified location. More...
 
int getTransactionDepth ()
 Get the transaction depth, which is the number of beginTransaction(String) invocations without matching endTransaction() invocations. More...
 
insertArchToMap ( @NotNull BaseObject< G, A, R, ?> templateBaseObject, @Nullable G nextGameObject, @NotNull Point pos, boolean join)
 Insert a game object to the map at a specified position. More...
 
insertBaseObject ( @NotNull BaseObject< G, A, R, ?> baseObject, @NotNull Point pos, boolean allowMany, boolean join, @NotNull InsertionMode< G, A, R > insertionMode)
 Inserts a BaseObject to a map. More...
 
boolean isAnyTransactionActive ()
 Returns whether a transaction is currently active. More...
 
boolean isAreaEmpty (int left, int top, int width, int height)
 Checks whether an area of a map is completely empty. More...
 
boolean isEmpty ()
 Returns whether the map is empty. More...
 
boolean isModified ()
 Return whether the map has been modified from the on-disk state. More...
 
boolean isMultiArchFittingToMap ( @NotNull Archetype< G, A, R > archetype, @NotNull Point pos, boolean allowDouble)
 Checks whether an GameObject (multi-arch) would still fit on this map. More...
 
void mapClosed ()
 This function must be called if this instance is freed. More...
 
void moveEnv ( @NotNull G gameObject, @NotNull Point pos, @NotNull G nextGameObject)
 Moves a GameObject to its environment. More...
 
void moveInv ( @NotNull G gameObject, @NotNull GameObject< G, A, R > prevGameObject)
 Moves a GameObject to the inventory of another game object. More...
 
void nextPoint (Point point, int direction)
 Moves the given point forward or backward one map square. More...
 
void removeGameObject ( @NotNull G gameObject, boolean join)
 Delete an existing GameObject from the map. More...
 
void removeMapModelListener ( @NotNull MapModelListener< G, A, R > listener)
 Unregister a map listener. More...
 
void removeMapTransactionListener ( @NotNull MapTransactionListener< G, A, R > listener)
 Unregisters a map transaction listener. More...
 
void resetModified ()
 Resets the modified flag to false. More...
 
void setErrors ( @NotNull ErrorCollector< G, A, R > errors)
 Sets the errors in this map. More...
 
void setMapFile ( @Nullable MapFile mapFile)
 Sets the map file. More...
 
void transientGameObjectChange ( @NotNull G gameObject)
 Method to notify the model that a game object was changed but need not be restored by undo/redo. More...
 

Private Member Functions

int calculateEditType (@NotNull final GameObject<?, ?, ?> gameObject, final int checkType)
 Returns the edit type for a GameObject. More...
 
void commitTransaction ()
 Performs ending a transaction. More...
 
void discardInvalidGameObjects (@NotNull final Iterable< G > gameObjects, @NotNull final Size2D mapSize)
 Discards game objects that are out of map bounds. More...
 
void discardInvalidMapSquares (@NotNull final Iterable< MapSquare< G, A, R >> mapSquares, @NotNull final Size2D mapSize)
 Discards map squares that are out of map bounds. More...
 
findGameObjectOfAutojoinList (@NotNull final Point point, @NotNull final AutojoinList< G, A, R > autojoinList)
 Looks for an archetype at map-position point which is part of an autojoin list. More...
 
GameObject< G, A, R > findMainGameObjectOfAutojoinList (@NotNull final Point point, @NotNull final AutojoinList< G, A, R > autojoinList)
 Looks for an archetype at map-position point which is the main archetypes part of an autojoin list. More...
 
void fireBeginTransaction (@NotNull final String name)
 Fire a begin transaction event. More...
 
void fireEndTransaction ()
 Fire an end transaction event. More...
 
void fireEvents ()
 Deliver all pending events. More...
 
void fireGameObjectsChangedEvent (@NotNull final Set< G > gameObjects, @NotNull final Set< G > transientGameObjects)
 Fire a GameObjectsChangedEvent. More...
 
void fireMapFileChanged (@Nullable final MapFile oldMapFile)
 Fires a map file changed event. More...
 
void fireMapSizeChanged (@NotNull final Size2D newSize)
 Fire a map size changed event. More...
 
void fireMapSquaresChangedEvent (final Set< MapSquare< G, A, R >> mapSquares)
 Fire a MapSquaresChangedEvent. More...
 
void fireModifiedChanged ()
 Fires a map size changed event. More...
 
void firePostEndTransaction ()
 Fire a post-end transaction event. More...
 
void firePreBeginTransaction ()
 Fire a pre-begin transaction event. More...
 
void joinDelete (@NotNull final Point point, @NotNull final R archetype)
 Do autojoining on deletion of an GameObject on the map. More...
 
void joinDelete (@NotNull final Point point, @NotNull final AutojoinList< G, A, R > autojoinList, final int dx, final int dy, final int reverseDir, final int dir, final int altIndex)
 
InsertionResult< G, A, R > joinInsert (@NotNull final Point point, @NotNull final R archetype)
 Do autojoining on insertion of an game object on the map. More...
 
int joinInsert (@NotNull final Point point, @NotNull final AutojoinList< G, A, R > autojoinList, final int dx, final int dy, final int dir, final int reverseDir, final int altIndex)
 
void resizeMapInt (@NotNull final Size2D newSize)
 Resizes the map grid after the map size has changed. More...
 
void setModified ()
 Marks the map as being modified. More...
 
void updateEditType (@NotNull final GameObject< G, A, R > gameObject, final int checkType)
 Updates the edit type of a GameObject. More...
 

Private Attributes

int activeEditType
 Contains the edit types that have already been (requested and) calculated (edit types get calculated only when needed to save time). More...
 
final ArchetypeChooserModel< G, A, R > archetypeChooserModel
 The ArchetypeChooserModel to use when inserting directional game objects. More...
 
final AutojoinLists< G, A, R > autojoinLists
 The AutojoinLists for performing autojoining. More...
 
final Set< G > changedGameObjects = new HashSet<>()
 The ArrayList with changed gameObjects. More...
 
final Set< MapSquare< G, A, R > > changedSquares = new HashSet<>()
 The ArrayList with changed squares. More...
 
ErrorCollector< G, A, R > errors = new DefaultErrorCollector<>()
 The errors of this map model. More...
 
final GameObjectFactory< G, A, R > gameObjectFactory
 The GameObjectFactory for creating GameObjects. More...
 
final GameObjectMatchers gameObjectMatchers
 The GameObjectMatchers to use. More...
 
final LightMapModelTracker< G, A, R > lightMapModelTracker = new LightMapModelTracker<>(this)
 The LightMapModelTracker tracking this instance. More...
 
final A mapArchObject
 The MapArchObject associated with this model. More...
 
final transient MapArchObjectListener mapArchObjectListener
 The MapArchObjectListener used to detect changes in mapArchObject and set the modified flag accordingly. More...
 
MapFile mapFile
 The backing map file. More...
 
final MapSquareGrid< G, A, R > mapGrid
 The map, containing all arches grid-wise. More...
 
final EventListenerList2< MapModelListener< G, A, R > > mapModelListeners = new EventListenerList2<>(MapModelListener.class)
 The registered MapModelListeners. More...
 
final EventListenerList2< MapTransactionListener< G, A, R > > mapTransactionListeners = new EventListenerList2<>(MapTransactionListener.class)
 The registered MapTransactionListeners. More...
 
boolean modified
 Set if the map has changed since last save. More...
 
final SavedSquares< G, A, R > savedSquares
 Records unchanged square contents for all squares in changedSquares. More...
 
final transient Object syncLock = new Object()
 Sync Lock Object. More...
 
final InsertionMode< G, A, R > topmostInsertionMode
 The "topmost" InsertionMode. More...
 
int transactionDepth
 The transaction depth. More...
 
transient Thread transactionThread
 The thread that performs the current transaction. More...
 
final Set< G > transientChangedGameObjects = new HashSet<>()
 The ArrayList with transient changed gameObjects. More...
 

Static Private Attributes

static final Category LOG = Logger.getLogger(DefaultMapModel.class)
 The Logger for printing log messages. More...
 
static final long serialVersionUID = 1L
 The serial version UID. More...
 

Detailed Description

Implementation of MapModel that covers the similarities between crossfire and daimonin.

The transaction system is not implemented in a way that supports overriding its method for change. Therefore all methods belonging to the transaction system are final.

Author
Christian Hujer
See also
MapModel class MapModel for a documentation of the transaction system.

Definition at line 60 of file DefaultMapModel.java.

Constructor & Destructor Documentation

◆ DefaultMapModel()

net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.DefaultMapModel ( @NotNull final AutojoinLists< G, A, R >  autojoinLists,
@NotNull final A  mapArchObject,
@NotNull final ArchetypeChooserModel< G, A, R >  archetypeChooserModel,
@NotNull final GameObjectFactory< G, A, R >  gameObjectFactory,
@NotNull final GameObjectMatchers  gameObjectMatchers,
@NotNull final InsertionMode< G, A, R >  topmostInsertionMode 
)

Member Function Documentation

◆ addActiveEditType()

◆ addGameObjectToMap()

◆ addMapModelListener()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.addMapModelListener ( @NotNull final MapModelListener< G, A, R >  listener)

Definition at line 360 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.add().

+ Here is the call graph for this function:

◆ addMapTransactionListener()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.addMapTransactionListener ( @NotNull final MapTransactionListener< G, A, R >  listener)

Definition at line 370 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.add().

+ Here is the call graph for this function:

◆ addObjectListToMap()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.addObjectListToMap ( @NotNull final Iterable< G >  objects)

◆ beginGameObjectChange()

◆ beginSquareChange()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.beginSquareChange ( @NotNull final MapSquare< G, A, R >  mapSquare)

◆ beginTransaction()

◆ calculateEditType()

int net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.calculateEditType ( @NotNull final GameObject<?, ?, ?>  gameObject,
final int  checkType 
)
private

Returns the edit type for a GameObject.

Parameters
gameObjectthe game object
checkTypethe edit type to calculate
Returns
the edit type

Definition at line 1027 of file DefaultMapModel.java.

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.updateEditType().

+ Here is the caller graph for this function:

◆ clearMap()

◆ commitTransaction()

◆ discardInvalidGameObjects()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.discardInvalidGameObjects ( @NotNull final Iterable< G >  gameObjects,
@NotNull final Size2D  mapSize 
)
private

Discards game objects that are out of map bounds.

Parameters
gameObjectsthe game objects to check
mapSizethe new map size

Definition at line 348 of file DefaultMapModel.java.

References net.sf.gridarta.model.gameobject.GameObject< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getTopContainer().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.resizeMapInt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ discardInvalidMapSquares()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.discardInvalidMapSquares ( @NotNull final Iterable< MapSquare< G, A, R >>  mapSquares,
@NotNull final Size2D  mapSize 
)
private

◆ endAllTransactions()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.endAllTransactions ( )

◆ endGameObjectChange()

◆ endSquareChange()

◆ endTransaction() [1/2]

◆ endTransaction() [2/2]

◆ facesReloaded()

◆ findGameObjectOfAutojoinList()

G net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.findGameObjectOfAutojoinList ( @NotNull final Point  point,
@NotNull final AutojoinList< G, A, R >  autojoinList 
)
private

Looks for an archetype at map-position point which is part of an autojoin list.

Parameters
pointlocation to search
autojoinListthe autojoin list
Returns
the archetype which is part of this join-list or
null
if no such archetype exists

Definition at line 1183 of file DefaultMapModel.java.

References net.sf.gridarta.model.autojoin.AutojoinLists< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAutojoinList(), and net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getMapSquare().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.joinInsert().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ findMainGameObjectOfAutojoinList()

GameObject<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.findMainGameObjectOfAutojoinList ( @NotNull final Point  point,
@NotNull final AutojoinList< G, A, R >  autojoinList 
)
private

Looks for an archetype at map-position point which is the main archetypes part of an autojoin list.

Parameters
pointlocation to search
autojoinListthe autojoin list
Returns
the archetype which is part of this join-list or
null
if no such archetype exists

Definition at line 1202 of file DefaultMapModel.java.

References net.sf.gridarta.model.autojoin.AutojoinLists< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAutojoinList(), and net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getMapSquare().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.joinDelete().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fireBeginTransaction()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.fireBeginTransaction ( @NotNull final String  name)
private

◆ fireEndTransaction()

◆ fireEvents()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.fireEvents ( )
private

◆ fireGameObjectsChangedEvent()

◆ fireMapFileChanged()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.fireMapFileChanged ( @Nullable final MapFile  oldMapFile)
private

Fires a map file changed event.

Parameters
oldMapFilethe map file before the change

Definition at line 630 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.getListeners().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.setMapFile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fireMapSizeChanged()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.fireMapSizeChanged ( @NotNull final Size2D  newSize)
private

◆ fireMapSquaresChangedEvent()

◆ fireModifiedChanged()

◆ firePostEndTransaction()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.firePostEndTransaction ( )
private

Fire a post-end transaction event.

Definition at line 620 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.getListeners().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.commitTransaction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ firePreBeginTransaction()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.firePreBeginTransaction ( )
private

Fire a pre-begin transaction event.

Definition at line 590 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.getListeners().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.beginTransaction().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllGameObjects()

List<G> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAllGameObjects ( )

Definition at line 924 of file DefaultMapModel.java.

◆ getErrors()

◆ getMapArchObject()

◆ getMapFile() [1/2]

◆ getMapFile() [2/2]

◆ getMapSquare()

◆ getTransactionDepth()

◆ insertArchToMap()

◆ insertBaseObject()

G net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.insertBaseObject ( @NotNull final BaseObject< G, A, R, ?>  baseObject,
@NotNull final Point  pos,
final boolean  allowMany,
final boolean  join,
@NotNull final InsertionMode< G, A, R >  insertionMode 
)

Definition at line 741 of file DefaultMapModel.java.

References net.sf.gridarta.model.gameobject.GameObjectFactory< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.createInventory(), net.sf.gridarta.model.baseobject.BaseObject< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R, T extends BaseObject< G, A, R, T >.DIRECTION, net.sf.gridarta.model.autojoin.InsertionResult< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getArchetype(), net.sf.gridarta.model.archetypechooser.ArchetypeChooserModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getDirection(), net.sf.gridarta.model.autojoin.InsertionResult< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getGameObject(), net.sf.gridarta.model.mapmodel.MapSquareGrid< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getMapSquare(), net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.isMultiArchFittingToMap(), and net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.joinInsert().

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.insertArchToMap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isAnyTransactionActive()

boolean net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.isAnyTransactionActive ( )

Definition at line 547 of file DefaultMapModel.java.

◆ isAreaEmpty()

◆ isEmpty()

◆ isModified()

◆ isMultiArchFittingToMap()

◆ iterator()

Iterator<MapSquare<G, A, R> > net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.iterator ( )

Definition at line 257 of file DefaultMapModel.java.

◆ joinDelete() [1/2]

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.joinDelete ( @NotNull final Point  point,
@NotNull final R  archetype 
)
private

Do autojoining on deletion of an GameObject on the map.

All arches around the insert point get adjusted. This method must be called from the appropriate element of the AutojoinList, best use the link from the default archetype.

Parameters
pointLocation of the insert point on the map
archetypethe archetype to connect with

Definition at line 1137 of file DefaultMapModel.java.

References net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.EAST, net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAlternativeIndex(), net.sf.gridarta.model.autojoin.AutojoinLists< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAutojoinList(), net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.isMainIndex(), net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.NORTH, net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.SOUTH, and net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.WEST.

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.removeGameObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ joinDelete() [2/2]

◆ joinInsert() [1/2]

InsertionResult<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.joinInsert ( @NotNull final Point  point,
@NotNull final R  archetype 
)
private

Do autojoining on insertion of an game object on the map.

All arches around the insert point get adjusted, and the archetype name of the correct archetype to be inserted is returned. This method must be called from the appropriate element of the AutojoinList, best use the link from the default archetype.

Parameters
pointLocation of the insert point on the map
archetypethe archetype to connect with
Returns
the insertion result

Definition at line 1049 of file DefaultMapModel.java.

References net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.EAST, net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.findGameObjectOfAutojoinList(), net.sf.gridarta.model.autojoin.InsertionResult< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getArchetype(), net.sf.gridarta.model.autojoin.AutojoinLists< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getAutojoinList(), net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.NORTH, net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.SOUTH, and net.sf.gridarta.model.autojoin.AutojoinList< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.WEST.

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.insertBaseObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ joinInsert() [2/2]

◆ mapClosed()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapClosed ( )

Definition at line 246 of file DefaultMapModel.java.

◆ moveEnv()

◆ moveInv()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.moveInv ( @NotNull final G  gameObject,
@NotNull final GameObject< G, A, R >  prevGameObject 
)

Definition at line 847 of file DefaultMapModel.java.

◆ nextPoint()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.nextPoint ( final Point  point,
final int  direction 
)

Definition at line 966 of file DefaultMapModel.java.

References net.sf.gridarta.utils.Size2D.getHeight(), and net.sf.gridarta.utils.Size2D.getWidth().

+ Here is the call graph for this function:

◆ removeGameObject()

◆ removeMapModelListener()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.removeMapModelListener ( @NotNull final MapModelListener< G, A, R >  listener)

Definition at line 365 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.remove().

+ Here is the call graph for this function:

◆ removeMapTransactionListener()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.removeMapTransactionListener ( @NotNull final MapTransactionListener< G, A, R >  listener)

Definition at line 375 of file DefaultMapModel.java.

References net.sf.gridarta.utils.EventListenerList2< T extends EventListener >.remove().

+ Here is the call graph for this function:

◆ resetModified()

◆ resizeMapInt()

void net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.resizeMapInt ( @NotNull final Size2D  newSize)
private

Resizes the map grid after the map size has changed.

Parameters
newSizethe new map size

Definition at line 290 of file DefaultMapModel.java.

References net.sf.gridarta.model.mapmodel.MapSquareGrid< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.collectHeads(), net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.discardInvalidGameObjects(), net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.discardInvalidMapSquares(), net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.fireMapSizeChanged(), net.sf.gridarta.utils.Size2D.getHeight(), net.sf.gridarta.model.mapmodel.MapSquareGrid< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getMapSize(), net.sf.gridarta.utils.Size2D.getWidth(), net.sf.gridarta.model.mapmodel.LightMapModelTracker< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapSizeChanging(), net.sf.gridarta.model.mapmodel.MapSquareGrid< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.resize(), and net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.syncLock.

+ Here is the call graph for this function:

◆ setErrors()

◆ setMapFile()

◆ setModified()

◆ transientGameObjectChange()

◆ updateEditType()

Member Data Documentation

◆ activeEditType

int net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.activeEditType
private

Contains the edit types that have already been (requested and) calculated (edit types get calculated only when needed to save time).

Definition at line 164 of file DefaultMapModel.java.

◆ archetypeChooserModel

final ArchetypeChooserModel<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.archetypeChooserModel
private

◆ autojoinLists

◆ changedGameObjects

final Set<G> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.changedGameObjects = new HashSet<>()
private

◆ changedSquares

◆ errors

◆ gameObjectFactory

◆ gameObjectMatchers

◆ lightMapModelTracker

final LightMapModelTracker<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.lightMapModelTracker = new LightMapModelTracker<>(this)
private

The LightMapModelTracker tracking this instance.

Definition at line 201 of file DefaultMapModel.java.

◆ LOG

final Category net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.LOG = Logger.getLogger(DefaultMapModel.class)
staticprivate

The Logger for printing log messages.

Definition at line 70 of file DefaultMapModel.java.

◆ mapArchObject

◆ mapArchObjectListener

final transient MapArchObjectListener net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapArchObjectListener
private
Initial value:
= new MapArchObjectListener() {
@Override
public void mapMetaChanged() {
}
@Override
public void mapSizeChanged(@NotNull final Size2D mapSize) {
resizeMapInt(mapSize);
}
}

The MapArchObjectListener used to detect changes in mapArchObject and set the modified flag accordingly.

Definition at line 208 of file DefaultMapModel.java.

◆ mapFile

◆ mapGrid

final MapSquareGrid<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapGrid
private

The map, containing all arches grid-wise.

Index: [width][height]

Definition at line 100 of file DefaultMapModel.java.

◆ mapModelListeners

final EventListenerList2<MapModelListener<G, A, R> > net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapModelListeners = new EventListenerList2<>(MapModelListener.class)
private

The registered MapModelListeners.

Definition at line 106 of file DefaultMapModel.java.

◆ mapTransactionListeners

final EventListenerList2<MapTransactionListener<G, A, R> > net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapTransactionListeners = new EventListenerList2<>(MapTransactionListener.class)
private

The registered MapTransactionListeners.

Definition at line 112 of file DefaultMapModel.java.

◆ modified

boolean net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.modified
private

◆ savedSquares

final SavedSquares<G, A, R> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.savedSquares
private

Records unchanged square contents for all squares in changedSquares.

Definition at line 140 of file DefaultMapModel.java.

◆ serialVersionUID

final long net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.serialVersionUID = 1L
staticprivate

The serial version UID.

Definition at line 65 of file DefaultMapModel.java.

◆ syncLock

final transient Object net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.syncLock = new Object()
private

◆ topmostInsertionMode

◆ transactionDepth

int net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.transactionDepth
private

The transaction depth.

A value of 0 means there's no transaction going on. A value > 0 means there's a transaction going on and denotes the nesting level.

Invariant
transactionDepth >= 0

Definition at line 120 of file DefaultMapModel.java.

Referenced by net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.getTransactionDepth().

◆ transactionThread

transient Thread net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.transactionThread
private

The thread that performs the current transaction.

Invariant
transactionDepth > 0 || transactionThread == null

Definition at line 127 of file DefaultMapModel.java.

◆ transientChangedGameObjects

final Set<G> net.sf.gridarta.model.mapmodel.DefaultMapModel< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.transientChangedGameObjects = new HashSet<>()
private

The documentation for this class was generated from the following file: