Energy manager: Adds energy to this device and clamps it within its min/max storage limits. Returns the amount of energy that was clamped. Negative value is supported, but you should still use ConsumeEnergy(...) for propper substraction of energy.
1266 {
1267 if (added_energy != 0)
1268 {
1269
1270 #ifdef DIAG_DEVELOPER
1271 if (FeatureTimeAccel.GetFeatureTimeAccelEnabled(ETimeAccelCategories.ENERGY_CONSUMPTION) && added_energy < 0)
1272 {
1273 float timeAccel = FeatureTimeAccel.GetFeatureTimeAccelValue();
1274 added_energy *= timeAccel;
1275 }
1276 #endif
1277
1278 bool energy_was_added = (added_energy > 0);
1279
1280 float energy_to_clamp =
GetEnergy() + added_energy;
1281 float clamped_energy = Math.Clamp( energy_to_clamp, 0,
GetEnergyMax() );
1284
1285 if (energy_was_added)
1287 else
1289
1290 return energy_to_clamp - clamped_energy;
1291 }
1292
1293 return 0;
1294 }
float GetEnergyMax()
Energy manager: Returns the maximum amount of energy this device can curently store....
void OnEnergyAdded()
Energy manager: Called when energy was added on this device.
float GetEnergy()
Energy manager: Returns the amount of stored energy this device has.
void SetEnergy(float new_energy)
Energy manager: Sets stored energy for this device. It ignores the min/max limit!
void OnEnergyConsumed()
Energy manager: Called when energy was consumed on this device.