Skip to content

Commit 00c7b2b

Browse files
committed
made map iterator stay inside map
1 parent cf41b8e commit 00c7b2b

2 files changed

Lines changed: 23 additions & 11 deletions

File tree

src/main/java/net/ddns/endercypt/cs2dmap/library/map/sub/extra/map/MapArray.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -153,22 +153,23 @@ public void process(int x, int y, Tile tile)
153153
});
154154
}
155155

156-
public void iterate(int x1, int y1, int x2, int y2, MapIterator mapIterator)
156+
public void iterate(MapIterator mapIterator)
157157
{
158-
for (int x = x1; x < x2 + 1; x++)
159-
{
160-
for (int y = y1; y < y2 + 1; y++)
161-
{
162-
mapIterator.process(x, y, tile(x, y));
163-
}
164-
}
158+
iterate(0, 0, getWidth(), getHeight(), mapIterator);
165159
}
166160

167-
public void iterate(MapIterator mapIterator)
161+
public void iterate(int x1, int y1, int x2, int y2, MapIterator mapIterator)
168162
{
169-
for (int x = 0; x < getWidth(); x++)
163+
// limit to inside map
164+
x1 = Math.max(x1, 0);
165+
y1 = Math.max(y1, 0);
166+
x2 = Math.min(x2, getWidth() - 1);
167+
y2 = Math.min(y2, getHeight() - 1);
168+
169+
// iterate
170+
for (int x = x1; x < x2 + 1; x++)
170171
{
171-
for (int y = 0; y < getHeight(); y++)
172+
for (int y = y1; y < y2 + 1; y++)
172173
{
173174
mapIterator.process(x, y, tile(x, y));
174175
}

src/main/java/test/CreateMap.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
import net.ddns.endercypt.cs2dmap.library.map.obj.entity.type.info.Info_Hostage;
1111
import net.ddns.endercypt.cs2dmap.library.map.obj.entity.type.info.Info_T;
1212
import net.ddns.endercypt.cs2dmap.library.map.obj.entity.type.info.Info_Hostage.HostageLooks;
13+
import net.ddns.endercypt.cs2dmap.library.map.obj.tile.Tile;
1314
import net.ddns.endercypt.cs2dmap.library.map.obj.tile.modifier.ColorTileModifier;
1415
import net.ddns.endercypt.cs2dmap.library.map.sub.Cs2dBackground;
1516
import net.ddns.endercypt.cs2dmap.library.map.sub.Cs2dEntities;
1617
import net.ddns.endercypt.cs2dmap.library.map.sub.Cs2dMapArray;
1718
import net.ddns.endercypt.cs2dmap.library.map.sub.Cs2dTiles;
19+
import net.ddns.endercypt.cs2dmap.library.map.sub.extra.map.MapIterator;
1820
import net.ddns.endercypt.cs2dmap.library.map.sub.extra.map.MapSection;
1921
import net.ddns.endercypt.cs2dmap.library.map.sub.extra.tile.TileMode;
2022
import net.ddns.endercypt.cs2dmap.library.map.sub.extra.tile.action.TileActions;
@@ -48,6 +50,15 @@ public static void main(String[] args) throws IOException
4850
map.tile(2, 9).setFrame(5);
4951
map.tile(5, 8).setTileModifier(new ColorTileModifier(255, 0, 0, 1));
5052

53+
map.iterate(new MapIterator()
54+
{
55+
@Override
56+
public void process(int x, int y, Tile tile)
57+
{
58+
tile.setFrame(15);
59+
}
60+
});
61+
5162
MapSection copy = map.copy(0, 0, 5, 5);
5263
copy.pasteInto(map, -1, -1);
5364

0 commit comments

Comments
 (0)