Gridarta Editor
AboveFloorInsertionMode.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.model.mapmodel;
21 
26 import org.jetbrains.annotations.NotNull;
27 import org.jetbrains.annotations.Nullable;
28 
34 public class AboveFloorInsertionMode<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> implements InsertionMode<G, A, R> {
35 
39  private static final long serialVersionUID = 1L;
40 
45  @Nullable
47 
52  public AboveFloorInsertionMode(@Nullable final GameObjectMatcher floorGameObjectMatcher) {
53  this.floorGameObjectMatcher = floorGameObjectMatcher;
54  }
55 
56  @Override
57  public void insert(@NotNull final G gameObject, @NotNull final MapSquare<G, A, R> mapSquare) {
58  if (floorGameObjectMatcher == null) {
59  mapSquare.addFirst(gameObject);
60  return;
61  }
62 
63  final G lastFloor = mapSquare.getLast(floorGameObjectMatcher);
64  if (lastFloor == null) {
65  mapSquare.addFirst(gameObject);
66  return;
67  }
68 
69  mapSquare.insertBefore(gameObject, lastFloor);
70  }
71 
72  @Override
73  public String toString() {
74  return "above floor";
75  }
76 
77 }
Insert right above the topmost floor square.
AboveFloorInsertionMode(@Nullable final GameObjectMatcher floorGameObjectMatcher)
Initializes the class.
final GameObjectMatcher floorGameObjectMatcher
A GameObjectMatcher matching floor game objects.
Interface for classes that match GameObjects.
This package contains classes related to matching GameObjects, so called GameObjectMatchers.
static final long serialVersionUID
The serial version UID.
void insert(@NotNull final G gameObject, @NotNull final MapSquare< G, A, R > mapSquare)
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.