Energy manager: Checks whenever this device can do work or not.
782 {
784 {
786 }
787
789 {
790 return false;
791 }
792
793
794 float energy_usage = test_energy;
797
798 if (energy_usage == -1)
799 {
801 }
802
804 {
805 return false;
806 }
807
808 if (gathered_energy <= 0 && energy_usage <= 0)
809 {
810 return false;
811 }
812
813 int cycle_limit = 500;
814
815 while ( gathered_energy < energy_usage )
816 {
817
818 if (cycle_limit > 0)
819 {
820 cycle_limit--;
821 }
822 else
823 {
824 DPrint(
"Energy Manager ERROR: The 'cycle_limit' safety break had to be activated to prevent possible game freeze. Dumping debug information...");
825
826
827
828
829 if (energy_source.GetCompEM())
830 {
831
832 }
833
834
835
836
837
838
839 if (energy_source)
840 {
841
842 }
843
844
845
846 return false;
847 }
848
849
850 if ( energy_source && energy_source !=
m_ThisEntityAI && !energy_source.IsRuined() && energy_source.GetCompEM() && energy_source.GetCompEM().IsSwitchedOn() && energy_source.GetCompEM().CheckWetness() )
851 {
852 gathered_energy = gathered_energy + energy_source.GetCompEM().GetEnergy();
853 energy_source = energy_source.GetCompEM().GetEnergySource();
854 }
855 else
856 {
857
858 return false;
859 }
860 }
861
862
863 return true;
864 }
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 ...