20 package net.sf.gridarta.gui.copybuffer;
22 import java.awt.Point;
23 import java.util.Collection;
31 import org.jetbrains.annotations.NotNull;
51 public <G extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>>
void process(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final G gameObject,
final boolean isEditType, @NotNull
final Collection<G> gameObjectsToDelete, @NotNull
final Point pos, @NotNull
final GameObjectFactory<G, A, R> gameObjectFactory, @NotNull
final InsertionModeSet<G, A, R> insertionModeSet) {
53 gameObjectsToDelete.add(gameObject.getHead());
64 public <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>>
void prepare(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final Size2D mapSize) {
65 mapModel.getMapArchObject().setMapSize(mapSize);
70 public <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>>
void process(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final G gameObject,
final boolean isEditType, @NotNull
final Collection<G> gameObjectsToDelete, @NotNull
final Point pos, @NotNull
final GameObjectFactory<G, A, R> gameObjectFactory, @NotNull
final InsertionModeSet<G, A, R> insertionModeSet) {
72 if (gameObject.isHead() && !gameObject.isInContainer()) {
73 final G clone = gameObjectFactory.cloneGameObject(gameObject);
74 mapModel.addGameObjectToMap(clone, pos, insertionModeSet.getTopmostInsertionMode());
76 if (gameObject.getArchetype().getMultiX() >= 0 && gameObject.getArchetype().getMultiY() >= 0) {
77 gameObjectsToDelete.add(gameObject.getHead());
89 public <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>>
void prepare(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final Size2D mapSize) {
90 mapModel.getMapArchObject().setMapSize(mapSize);
95 public <G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>>
void process(@NotNull
final MapModel<G, A, R> mapModel, @NotNull
final G gameObject,
final boolean isEditType, @NotNull
final Collection<G> gameObjectsToDelete, @NotNull
final Point pos, @NotNull
final GameObjectFactory<G, A, R> gameObjectFactory, @NotNull
final InsertionModeSet<G, A, R> insertionModeSet) {
96 if (isEditType && gameObject.isHead() && !gameObject.isInContainer()) {
97 final G clone = gameObjectFactory.cloneGameObject(gameObject);
98 mapModel.addGameObjectToMap(clone, pos, insertionModeSet.getTopmostInsertionMode());
123 public abstract <G extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>>
void process(@NotNull
MapModel<G, A, R> mapModel, @NotNull G gameObject,
boolean isEditType, @NotNull Collection<G> gameObjectsToDelete, @NotNull Point pos, @NotNull
GameObjectFactory<G, A, R> gameObjectFactory, @NotNull
InsertionModeSet<G, A, R> insertionModeSet);