Example #1
0
 public EnergyUpdateEvent(ModuleEnergy module)
 {
     if (module == null)
     {
         throw new ArgumentNullException(nameof(module));
     }
     Module           = module;
     GeneratingEnergy = module.IsGenerating;
     EnergyOutput     = module.m_OutputPerSecond;
 }
Example #2
0
    public void OnPool()
    {
        //WeaponWrapper = GetComponent<ModuleWeaponWrapper>();
        //if (WeaponWrapper == null) WeaponWrapper = gameObject.AddComponent<ModuleWeaponWrapper>();

        // Just in case...
        WeaponWrapper = GetComponent <ModuleWeaponWrapper>();
        EnergyStore   = GetComponent <ModuleEnergyStore>();
        Energy        = GetComponent <ModuleEnergy>();

        Energy.UpdateConsumeEvent.Subscribe(ConsumeFire);
        WeaponWrapper.CanFireEvent += CheckIfCanFire;
        WeaponWrapper.FireEvent    += OnFire;
        WeaponWrapper.LockFiring(this, true);
        block.DetachEvent.Subscribe(OnDetach);
    }
Example #3
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);
                    }
                }
Example #4
0
 public void PrePool()
 {
     _EnergyStore            = GetComponent <ModuleEnergyStore>();
     _Energy                 = GetComponent <ModuleEnergy>();
     _EnergyStore.m_Capacity = Capacity;
 }