private void newEntity(EntityType newType) { Position[] posList = new Position[_preferences.getEntityHeight(newType) * _preferences.getEntityWidth(newType)]; int i = 0; for (int x = _posSelected.getX(); x < (_posSelected.getX() + _preferences.getEntityWidth(newType)); x++) for (int y = _posSelected.getY(); y < (_posSelected.getY() + _preferences.getEntityHeight(newType)); y++) { posList[i] = new Position(x, y); i++; } if (_map.newEntity( posList, new Entity(newType), _preferences.getEntityHeight(newType), _preferences.getEntityWidth(newType))) { notifyAllSelectChanges(); notifyNewEntity(posList, newType); } }
public void removeEntity() { Position entityPosition = _map.getCell(_posSelected).getPrimaryEntity(); int entityID = _map.getEntityID(entityPosition); EntityType entity = _map.getEntity(entityID).getType(); Position[] posList = new Position[_preferences.getEntityHeight(entity) * _preferences.getEntityWidth(entity)]; int i = 0; for (int x = entityPosition.getX(); x < (entityPosition.getX() + _preferences.getEntityWidth(entity)); x++) for (int y = entityPosition.getY(); y < (entityPosition.getY() + _preferences.getEntityHeight(entity)); y++) { posList[i] = new Position(x, y); i++; } if (_map.removeEntity(posList, entityID)) { notifyRemoveEntity(posList); notifyCellDeSelected(); } }
private void notifyNewMapLoaded() { notifyCellDeSelected(); notifyNewMap(_map.getMapWidth(), _map.getMapHeight()); _posSelected = null; Position pos = null; for (int x = 0; x < _map.getMapWidth(); x++) for (int y = 0; y < _map.getMapHeight(); y++) { pos = new Position(x, y); notifyCellChanged(pos, _map.getCell(pos).getType()); int entityID = _map.getCell(pos).getEntity(); if (entityID != 0) { Position entityPos = _map.getCell(pos).getPrimaryEntity(); EntityType entityType = _map.getEntity(entityID).getType(); Position[] posList = new Position [_preferences.getEntityHeight(entityType) * _preferences.getEntityWidth(entityType)]; int i = 0; for (int xEntity = entityPos.getX(); xEntity < (entityPos.getX() + _preferences.getEntityWidth(entityType)); xEntity++) for (int yEntity = entityPos.getY(); yEntity < (entityPos.getY() + _preferences.getEntityHeight(entityType)); yEntity++) { posList[i] = new Position(xEntity, yEntity); i++; } notifyNewEntity(posList, entityType); } } }