예제 #1
0
  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);
    }
  }
예제 #2
0
  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();
    }
  }
예제 #3
0
  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);
        }
      }
  }