Gridarta Editor
MoveSquareDownAction.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.action;
21 
29 import net.sf.japi.swing.action.ActionMethod;
30 import org.jetbrains.annotations.NotNull;
31 import org.jetbrains.annotations.Nullable;
32 
38 public class MoveSquareDownAction<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractMoveSquareAction<G, A, R> {
39 
46  super(selectedSquareModel, mapManager);
47  }
48 
52  @ActionMethod
53  public void moveSquareDown() {
54  doAction(true);
55  }
56 
57  @Override
58  protected boolean doAction(final boolean performAction, @Nullable final G gameObject) {
59  if (gameObject == null || !gameObject.isHead() || gameObject.isBottom()) {
60  return false;
61  }
62 
63  if (performAction) {
64  final MapSquare<G, A, R> mapSquare = gameObject.getMapSquare();
65  assert mapSquare != null;
66  final MapModel<G, A, R> mapModel = mapSquare.getMapModel();
67  mapModel.beginTransaction("Move Down");
68  try {
69  gameObject.moveDown();
70  } finally {
71  mapModel.endTransaction();
72  }
73  }
74 
75  return true;
76  }
77 
78 }
void moveSquareDown()
Action method for moving an arch down within its square.
A MapModel reflects the data of a map.
Definition: MapModel.java:75
A MapManager manages all opened maps.
Definition: MapManager.java:37
Graphical User Interface of Gridarta.
MapModel< G, A, R > getMapModel()
Returns the MapModel this map square is part of.
Definition: MapSquare.java:99
void endTransaction()
End a transaction.
Base package of all Gridarta classes.
MoveSquareDownAction(@NotNull final SelectedSquareModel< G, A, R > selectedSquareModel, @Nullable final MapManager< G, A, R > mapManager)
Creates a new instance.
MapModel< G, A, R > mapModel
The currently active MapModel.
An net.sf.gridarta.utils.EditorAction that moves the selected game object in the SelectedSquareModel ...
Abstract base class for actions that move the selected game object in the SelectedSquareModel.
Reflects a game object (object on a map).
Definition: GameObject.java:36
final SelectedSquareModel< G, A, R > selectedSquareModel
The SelectedSquareModel that is updated.
boolean doAction(final boolean performAction, @Nullable final G gameObject)
GameObjects are the objects based on Archetypes found on maps.
Displays the contents of the currently selected map square.
void beginTransaction(@NotNull String name)
Starts a new transaction.
The model component of the selected square control.