private void alignSelectedCenter(boolean yAlign) {
    if (selectedEntities.size == 0) return;

    UndoableActionGroup undoableGroup = new UndoableActionGroup("Change Alignment");

    float targetPos = 0;

    for (EntityProxy proxy : selectedEntities) {
      if (yAlign) targetPos += proxy.getX();
      else targetPos += proxy.getY();
    }

    targetPos /= selectedEntities.size;

    for (EntityProxy proxy : selectedEntities) {
      MoveEntityAction action = new MoveEntityAction(proxy);

      if (yAlign == true) proxy.setX(targetPos);
      else proxy.setY(targetPos);

      action.saveNewData(proxy);
      undoableGroup.add(action);
    }

    undoableGroup.finalizeGroup();
    undoModule.add(undoableGroup);
  }
  private void alignSelected(int align) {
    if (selectedEntities.size == 0) return;

    UndoableActionGroup undoableGroup = new UndoableActionGroup("Change Alignment");

    if (align == Align.left || align == Align.right) {
      float targetX = selectedEntities.get(0).getX();

      for (EntityProxy proxy : selectedEntities) {
        if (align == Align.left) {
          if (proxy.getX() < targetX) targetX = proxy.getX();
        } else {
          if (proxy.getX() > targetX) targetX = proxy.getX();
        }
      }

      for (EntityProxy proxy : selectedEntities) {
        MoveEntityAction action = new MoveEntityAction(proxy);
        proxy.setX(targetX);
        action.saveNewData(proxy);
        undoableGroup.add(action);
      }
    }

    if (align == Align.top || align == Align.bottom) {
      float targetY = selectedEntities.get(0).getY();

      for (EntityProxy proxy : selectedEntities) {
        if (align == Align.top) {
          if (proxy.getY() < targetY) targetY = proxy.getY();
        } else {
          if (proxy.getY() > targetY) targetY = proxy.getY();
        }
      }

      for (EntityProxy proxy : selectedEntities) {
        MoveEntityAction action = new MoveEntityAction(proxy);
        proxy.setY(targetY);
        action.saveNewData(proxy);
        undoableGroup.add(action);
      }
    }

    undoableGroup.finalizeGroup();
    undoModule.add(undoableGroup);
  }