예제 #1
0
  private void handlePower(
      boolean doEffects,
      DimensionStorage dimensionStorage,
      Map.Entry<Integer, DimensionDescriptor> entry,
      Integer id,
      DimensionInformation information) {
    int cost = 0;
    if (DimletConfiguration.dimensionDifficulty != -1) {
      cost = information.getActualRfCost();
      if (cost == 0) {
        cost = entry.getValue().getRfMaintainCost();
      }
    }

    int power = dimensionStorage.getEnergyLevel(id);
    power -= cost * MAXTICKS;
    if (power < 0) {
      power = 0;
    }

    handleLowPower(id, power, doEffects);
    if (doEffects && power > 0) {
      handleEffectsForDimension(power, id, information);
    }

    dimensionStorage.setEnergyLevel(id, power);
  }