Energy manager: Checks whenever this device can do work or not.
769 {
771 {
773 }
774
776 {
777 return false;
778 }
779
780
781 float energy_usage = test_energy;
784
785 if (energy_usage == -1)
786 {
788 }
789
791 {
792 return false;
793 }
794
795 if (gathered_energy <= 0 && energy_usage <= 0)
796 {
797 return false;
798 }
799
800 int cycle_limit = 500;
801
802 while ( gathered_energy < energy_usage )
803 {
804
805 if (cycle_limit > 0)
806 {
807 cycle_limit--;
808 }
809 else
810 {
811 DPrint(
"Energy Manager ERROR: The 'cycle_limit' safety break had to be activated to prevent possible game freeze. Dumping debug information...");
812
813
814
815
816 if (energy_source.GetCompEM())
817 {
818
819 }
820
821
822
823
824
825
826 if (energy_source)
827 {
828
829 }
830
831
832
833 return false;
834 }
835
836
837 if ( energy_source && energy_source !=
m_ThisEntityAI && !energy_source.IsRuined() && energy_source.GetCompEM() && energy_source.GetCompEM().IsSwitchedOn() && energy_source.GetCompEM().CheckWetness() )
838 {
839 gathered_energy = gathered_energy + energy_source.GetCompEM().GetEnergy();
840 energy_source = energy_source.GetCompEM().GetEnergySource();
841 }
842 else
843 {
844
845 return false;
846 }
847 }
848
849
850 return true;
851 }
float GetEnergyUsage()
Energy manager: Returns the number of energy this device needs to run itself (See its config >> energ...
bool CheckWetness()
Energy manager: Checks if this device is being stopped from working by its wetness level....
float GetEnergy()
Energy manager: Returns the amount of stored energy this device has.
EntityAI GetEnergySource()
Energy manager: Returns the energy source this device is plugged into.
proto void DPrint(string var)
Prints content of variable to console/log. Should be used for critical messages so it will appear in ...