20 package net.sf.gridarta.model.gameobject;
22 import java.io.Serializable;
23 import java.util.ArrayList;
24 import java.util.Iterator;
25 import java.util.List;
29 import org.jetbrains.annotations.NotNull;
30 import org.jetbrains.annotations.Nullable;
41 public class MultiArchData<G
extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>, T extends
BaseObject<G, A, R, T>> implements Iterable<T>, Serializable {
84 private final List<T>
parts =
new ArrayList<>();
93 assert head.getArchetype().getMultiX() == 0 && head.getArchetype().getMultiY() == 0;
192 final int index =
parts.indexOf(ob);
194 return index + 1 <
parts.size() ?
parts.get(index + 1) :
null;
204 final int x = tail.getArchetype().getMultiX();
207 }
else if (x >
maxX) {
211 final int y = tail.getArchetype().getMultiY();
214 }
else if (y >
maxY) {
221 return parts.iterator();