Example #1
0
                //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);
                    }
                }