/* * Copyright (C) 2010 Medo <smaxein@googlemail.com> * * This file is part of GmkSplitter. * GmkSplitter is free software and comes with ABSOLUTELY NO WARRANTY. * See LICENSE for details. */ package com.ganggarrison.gmdec.dupes; import java.util.ArrayList; import java.util.List; import org.lateralgm.file.GmFile; import org.lateralgm.resources.Room; import org.lateralgm.resources.sub.Tile; import org.lateralgm.resources.sub.Tile.PTile; import com.ganggarrison.gmdec.GmkSplitter; import com.ganggarrison.gmdec.GmkSplitter.IdPreservation; public class TileAccessor implements ItemAccessor<Tile> { private final GmFile gmFile; public TileAccessor(GmFile gmFile) { this.gmFile = gmFile; } @Override public List<Tile> getItems() { ArrayList<Tile> items = new ArrayList<Tile>(); for (Room room : gmFile.resMap.getList(Room.class)) { for (Tile tile : room.tiles) { items.add(tile); } } return items; } @Override public Integer getId(Tile item) { Integer id = item.properties.get(PTile.ID); if (id == null || id < getFirstValidId()) { return null; } else { return id; } } @Override public void setId(Tile item, int id) { item.properties.put(PTile.ID, id); } @Override public int getFirstValidId() { return 10000001; } @Override public void setMaxId(int id) { gmFile.lastTileId = id; } @Override public String getItemName() { return "Tile"; } @Override public boolean informAboutNewIds() { return GmkSplitter.preserveIds == IdPreservation.ALL; } }