From: <aki...@us...> - 2009-06-21 20:02:26
|
Revision: 6683 http://gridarta.svn.sourceforge.net/gridarta/?rev=6683&view=rev Author: akirschbaum Date: 2009-06-21 20:02:24 +0000 (Sun, 21 Jun 2009) Log Message: ----------- Do not return duplicates from DefaultMapModel.getAllGameObjects(). Modified Paths: -------------- trunk/src/app/net/sf/gridarta/map/mapmodel/DefaultMapModel.java trunk/src/test/net/sf/gridarta/map/mapmodel/DefaultMapModelTest.java Modified: trunk/src/app/net/sf/gridarta/map/mapmodel/DefaultMapModel.java =================================================================== --- trunk/src/app/net/sf/gridarta/map/mapmodel/DefaultMapModel.java 2009-06-21 19:27:54 UTC (rev 6682) +++ trunk/src/app/net/sf/gridarta/map/mapmodel/DefaultMapModel.java 2009-06-21 20:02:24 UTC (rev 6683) @@ -1060,7 +1060,9 @@ final List<G> gameObjects = new ArrayList<G>(); for (final MapSquare<G, A, R> mapSquare : this) { for (final G gameObject : mapSquare) { - gameObjects.add(gameObject.getHead()); + if (gameObject.isHead()) { + gameObjects.add(gameObject); + } } } return gameObjects; Modified: trunk/src/test/net/sf/gridarta/map/mapmodel/DefaultMapModelTest.java =================================================================== --- trunk/src/test/net/sf/gridarta/map/mapmodel/DefaultMapModelTest.java 2009-06-21 19:27:54 UTC (rev 6682) +++ trunk/src/test/net/sf/gridarta/map/mapmodel/DefaultMapModelTest.java 2009-06-21 20:02:24 UTC (rev 6683) @@ -21,6 +21,7 @@ import java.awt.Point; import java.awt.image.BufferedImage; +import java.util.List; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -269,6 +270,29 @@ } /** + * Test case for {@link DefaultMapModel#getAllGameObjects()}: for a 1x2 + * game object only the head should be returned. + */ + @Test + public void testGetAllGameObjects1() { + final TestArchetype archetype = new TestArchetype("arch"); + archetype.setArchetype(archetype); + final TestArchetype archetype2 = new TestArchetype("arch2"); + archetype2.setArchetype(archetype2); + archetype2.setMultiY(1); + archetype.addTailPart(archetype2); + + mapModel.beginTransaction("TEST"); + mapModel.resizeMap(new Size2D(1, 2)); + final TestGameObject gameObject = mapModel.insertArchetype(archetype, new Point(0, 0), true, false, InsertionMode.AUTO); + mapModel.endTransaction(); + + final List<TestGameObject> gameObjects = mapModel.getAllGameObjects(); + Assert.assertEquals(1, gameObjects.size()); + Assert.assertEquals(gameObject, gameObjects.get(0)); + } + + /** * Inserts a game object into a map. * @param mapModel the map to add to * @param name the name of the game object to add This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |