//Hook by replacing method body of ModuleEnergy.OnUpdateSupplyEnergy() internal static void OnUpdateSupplyEnergy(ModuleEnergy module, int dummy) { module.IsGenerating = (module.m_OutputPerSecond != 0f && module.CheckOutputConditions()); EnergyUpdateEvent update = new EnergyUpdateEvent(module); update.GeneratingEnergy = module.IsGenerating; update.EnergyOutput = module.m_OutputPerSecond * Time.deltaTime; OnUpdateEnergy?.Invoke(update); if (module.IsGenerating) { module.Supply(module.m_OutputEnergyType, update.EnergyOutput); } if (module.m_AnimatorController != null) { module.m_AnimatorController.Set(module.m_GeneratingEnergyBool, module.IsGenerating); } }