text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  #include "beatsaber-hook/shared/utils/byref.hpp"
  // Including type: VROSC.SignalNode
  #include "VROSC/SignalNode.hpp"
  // Including type: UnityEngine.Color
  #include "UnityEngine/Color.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: VROSC
  namespace VROSC {
    // Forward declaring type: MinMaxInt
    class MinMaxInt;
    // Forward declaring type: Signal
    class Signal;
  }
  // Forward declaring namespace: UnityEngine
  namespace UnityEngine {
    // Forward declaring type: Renderer
    class Renderer;
    // Forward declaring type: AnimationCurve
    class AnimationCurve;
    // Forward declaring type: Transform
    class Transform;
    // Forward declaring type: ParticleSystem
    class ParticleSystem;
    // Forward declaring type: MaterialPropertyBlock
    class MaterialPropertyBlock;
  }
  // Forward declaring namespace: System::Collections
  namespace System::Collections {
    // Forward declaring type: IEnumerator
    class IEnumerator;
  }
  // Completed forward declares
  // Type namespace: VROSC
  namespace VROSC {
    // Forward declaring type: DrumPadEffectOnSignal
    class DrumPadEffectOnSignal;
  }
  #include "beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  NEED_NO_BOX(::VROSC::DrumPadEffectOnSignal);
  DEFINE_IL2CPP_ARG_TYPE(::VROSC::DrumPadEffectOnSignal*, "VROSC", "DrumPadEffectOnSignal");
  // Type namespace: VROSC
  namespace VROSC {
    // Size: 0xB8
    #pragma pack(push, 1)
    // Autogenerated type: VROSC.DrumPadEffectOnSignal
    // [TokenAttribute] Offset: FFFFFFFF
    // [ExecuteInEditMode] Offset: FFFFFFFF
    class DrumPadEffectOnSignal : public ::VROSC::SignalNode {
      public:
      // Nested type: ::VROSC::DrumPadEffectOnSignal::$NodeBegin$d__18
      struct $NodeBegin$d__18;
      // Nested type: ::VROSC::DrumPadEffectOnSignal::$PulsateCoroutine$d__22
      class $PulsateCoroutine$d__22;
      // Nested type: ::VROSC::DrumPadEffectOnSignal::$ActivateFlow$d__23
      class $ActivateFlow$d__23;
      public:
      // [HeaderAttribute] Offset: 0x787504
      // private UnityEngine.Renderer _padRenderer
      // Size: 0x8
      // Offset: 0x40
      ::UnityEngine::Renderer* padRenderer;
      // Field size check
      static_assert(sizeof(::UnityEngine::Renderer*) == 0x8);
      // private UnityEngine.Renderer _ringRendererOuter
      // Size: 0x8
      // Offset: 0x48
      ::UnityEngine::Renderer* ringRendererOuter;
      // Field size check
      static_assert(sizeof(::UnityEngine::Renderer*) == 0x8);
      // [HeaderAttribute] Offset: 0x787560
      // private System.Boolean _effectScaledByPower
      // Size: 0x1
      // Offset: 0x50
      bool effectScaledByPower;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: effectScaledByPower and: duration
      char __padding2[0x3] = {};
      // private System.Single _duration
      // Size: 0x4
      // Offset: 0x54
      float duration;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private UnityEngine.AnimationCurve _powerCurve
      // Size: 0x8
      // Offset: 0x58
      ::UnityEngine::AnimationCurve* powerCurve;
      // Field size check
      static_assert(sizeof(::UnityEngine::AnimationCurve*) == 0x8);
      // [HeaderAttribute] Offset: 0x7875CC
      // private UnityEngine.AnimationCurve _scaleCurve
      // Size: 0x8
      // Offset: 0x60
      ::UnityEngine::AnimationCurve* scaleCurve;
      // Field size check
      static_assert(sizeof(::UnityEngine::AnimationCurve*) == 0x8);
      // private UnityEngine.Transform _scalingTransform
      // Size: 0x8
      // Offset: 0x68
      ::UnityEngine::Transform* scalingTransform;
      // Field size check
      static_assert(sizeof(::UnityEngine::Transform*) == 0x8);
      // [HeaderAttribute] Offset: 0x787628
      // private UnityEngine.ParticleSystem _particleSystem
      // Size: 0x8
      // Offset: 0x70
      ::UnityEngine::ParticleSystem* particleSystem;
      // Field size check
      static_assert(sizeof(::UnityEngine::ParticleSystem*) == 0x8);
      // private VROSC.MinMaxInt _particleAmount
      // Size: 0x8
      // Offset: 0x78
      ::VROSC::MinMaxInt* particleAmount;
      // Field size check
      static_assert(sizeof(::VROSC::MinMaxInt*) == 0x8);
      // [HeaderAttribute] Offset: 0x787684
      // private System.Boolean _preview
      // Size: 0x1
      // Offset: 0x80
      bool preview;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: preview and: previewColor
      char __padding9[0x3] = {};
      // private UnityEngine.Color _previewColor
      // Size: 0x10
      // Offset: 0x84
      ::UnityEngine::Color previewColor;
      // Field size check
      static_assert(sizeof(::UnityEngine::Color) == 0x10);
      // [RangeAttribute] Offset: 0x7876E0
      // private System.Single _previewTiming
      // Size: 0x4
      // Offset: 0x94
      float previewTiming;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private UnityEngine.Color _color
      // Size: 0x10
      // Offset: 0x98
      ::UnityEngine::Color color;
      // Field size check
      static_assert(sizeof(::UnityEngine::Color) == 0x10);
      // private System.Boolean _meshesVerified
      // Size: 0x1
      // Offset: 0xA8
      bool meshesVerified;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean _pulsating
      // Size: 0x1
      // Offset: 0xA9
      bool pulsating;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: pulsating and: propBlock
      char __padding14[0x6] = {};
      // private UnityEngine.MaterialPropertyBlock _propBlock
      // Size: 0x8
      // Offset: 0xB0
      ::UnityEngine::MaterialPropertyBlock* propBlock;
      // Field size check
      static_assert(sizeof(::UnityEngine::MaterialPropertyBlock*) == 0x8);
      public:
      // Get instance field reference: private UnityEngine.Renderer _padRenderer
      [[deprecated("Use field access instead!")]] ::UnityEngine::Renderer*& dyn__padRenderer();
      // Get instance field reference: private UnityEngine.Renderer _ringRendererOuter
      [[deprecated("Use field access instead!")]] ::UnityEngine::Renderer*& dyn__ringRendererOuter();
      // Get instance field reference: private System.Boolean _effectScaledByPower
      [[deprecated("Use field access instead!")]] bool& dyn__effectScaledByPower();
      // Get instance field reference: private System.Single _duration
      [[deprecated("Use field access instead!")]] float& dyn__duration();
      // Get instance field reference: private UnityEngine.AnimationCurve _powerCurve
      [[deprecated("Use field access instead!")]] ::UnityEngine::AnimationCurve*& dyn__powerCurve();
      // Get instance field reference: private UnityEngine.AnimationCurve _scaleCurve
      [[deprecated("Use field access instead!")]] ::UnityEngine::AnimationCurve*& dyn__scaleCurve();
      // Get instance field reference: private UnityEngine.Transform _scalingTransform
      [[deprecated("Use field access instead!")]] ::UnityEngine::Transform*& dyn__scalingTransform();
      // Get instance field reference: private UnityEngine.ParticleSystem _particleSystem
      [[deprecated("Use field access instead!")]] ::UnityEngine::ParticleSystem*& dyn__particleSystem();
      // Get instance field reference: private VROSC.MinMaxInt _particleAmount
      [[deprecated("Use field access instead!")]] ::VROSC::MinMaxInt*& dyn__particleAmount();
      // Get instance field reference: private System.Boolean _preview
      [[deprecated("Use field access instead!")]] bool& dyn__preview();
      // Get instance field reference: private UnityEngine.Color _previewColor
      [[deprecated("Use field access instead!")]] ::UnityEngine::Color& dyn__previewColor();
      // Get instance field reference: private System.Single _previewTiming
      [[deprecated("Use field access instead!")]] float& dyn__previewTiming();
      // Get instance field reference: private UnityEngine.Color _color
      [[deprecated("Use field access instead!")]] ::UnityEngine::Color& dyn__color();
      // Get instance field reference: private System.Boolean _meshesVerified
      [[deprecated("Use field access instead!")]] bool& dyn__meshesVerified();
      // Get instance field reference: private System.Boolean _pulsating
      [[deprecated("Use field access instead!")]] bool& dyn__pulsating();
      // Get instance field reference: private UnityEngine.MaterialPropertyBlock _propBlock
      [[deprecated("Use field access instead!")]] ::UnityEngine::MaterialPropertyBlock*& dyn__propBlock();
      // public System.Void SetColor(UnityEngine.Color color, System.Boolean affectVisual)
      // Offset: 0x8E5F88
      void SetColor(::UnityEngine::Color color, bool affectVisual);
      // public System.Void Activate(System.Single power)
      // Offset: 0x8E61B0
      void Activate(float power);
      // public System.Void StartPulsating()
      // Offset: 0x8E6308
      void StartPulsating();
      // public System.Void StopPulsating()
      // Offset: 0x8E63A0
      void StopPulsating();
      // private System.Collections.IEnumerator PulsateCoroutine()
      // Offset: 0x8E6334
      ::System::Collections::IEnumerator* PulsateCoroutine();
      // private System.Collections.IEnumerator ActivateFlow(System.Single power)
      // Offset: 0x8E628C
      ::System::Collections::IEnumerator* ActivateFlow(float power);
      // public System.Void DisplayEffectForTime(System.Single time, System.Single inputScaling, UnityEngine.Color color)
      // Offset: 0x8E63A8
      void DisplayEffectForTime(float time, float inputScaling, ::UnityEngine::Color color);
      // private System.Void Update()
      // Offset: 0x8E6490
      void Update();
      // private System.Void CreatePropBlock()
      // Offset: 0x8E64EC
      void CreatePropBlock();
      // private System.Void SetEffectOnShader(System.Single timing, System.Single power, UnityEngine.Color color)
      // Offset: 0x8E5E54
      void SetEffectOnShader(float timing, float power, ::UnityEngine::Color color);
      // public System.Void .ctor()
      // Offset: 0x8E6550
      // Implemented from: VROSC.SignalNode
      // Base method: System.Void SignalNode::.ctor()
      // Base method: System.Void Node::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static DrumPadEffectOnSignal* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("::VROSC::DrumPadEffectOnSignal::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<DrumPadEffectOnSignal*, creationType>()));
      }
      // protected override System.Void OnEnable()
      // Offset: 0x8E5E1C
      // Implemented from: VROSC.SignalNode
      // Base method: System.Void SignalNode::OnEnable()
      void OnEnable();
      // protected override System.Void NodeBegin(VROSC.Signal signal)
      // Offset: 0x8E60E8
      // Implemented from: VROSC.SignalNode
      // Base method: System.Void SignalNode::NodeBegin(VROSC.Signal signal)
      void NodeBegin(::VROSC::Signal* signal);
    }; // VROSC.DrumPadEffectOnSignal
    #pragma pack(pop)
    static check_size<sizeof(DrumPadEffectOnSignal), 176 + sizeof(::UnityEngine::MaterialPropertyBlock*)> __VROSC_DrumPadEffectOnSignalSizeCheck;
    static_assert(sizeof(DrumPadEffectOnSignal) == 0xB8);
  }
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::SetColor
  // Il2CppName: SetColor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)(::UnityEngine::Color, bool)>(&VROSC::DrumPadEffectOnSignal::SetColor)> {
    static const MethodInfo* get() {
      static auto* color = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      static auto* affectVisual = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "SetColor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{color, affectVisual});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::Activate
  // Il2CppName: Activate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)(float)>(&VROSC::DrumPadEffectOnSignal::Activate)> {
    static const MethodInfo* get() {
      static auto* power = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "Activate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{power});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::StartPulsating
  // Il2CppName: StartPulsating
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::StartPulsating)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "StartPulsating", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::StopPulsating
  // Il2CppName: StopPulsating
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::StopPulsating)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "StopPulsating", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::PulsateCoroutine
  // Il2CppName: PulsateCoroutine
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::System::Collections::IEnumerator* (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::PulsateCoroutine)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "PulsateCoroutine", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::ActivateFlow
  // Il2CppName: ActivateFlow
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::System::Collections::IEnumerator* (VROSC::DrumPadEffectOnSignal::*)(float)>(&VROSC::DrumPadEffectOnSignal::ActivateFlow)> {
    static const MethodInfo* get() {
      static auto* power = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "ActivateFlow", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{power});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::DisplayEffectForTime
  // Il2CppName: DisplayEffectForTime
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)(float, float, ::UnityEngine::Color)>(&VROSC::DrumPadEffectOnSignal::DisplayEffectForTime)> {
    static const MethodInfo* get() {
      static auto* time = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* inputScaling = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* color = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "DisplayEffectForTime", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{time, inputScaling, color});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::Update
  // Il2CppName: Update
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::Update)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "Update", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::CreatePropBlock
  // Il2CppName: CreatePropBlock
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::CreatePropBlock)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "CreatePropBlock", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::SetEffectOnShader
  // Il2CppName: SetEffectOnShader
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)(float, float, ::UnityEngine::Color)>(&VROSC::DrumPadEffectOnSignal::SetEffectOnShader)> {
    static const MethodInfo* get() {
      static auto* timing = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* power = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* color = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "SetEffectOnShader", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{timing, power, color});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::OnEnable
  // Il2CppName: OnEnable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)()>(&VROSC::DrumPadEffectOnSignal::OnEnable)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "OnEnable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: VROSC::DrumPadEffectOnSignal::NodeBegin
  // Il2CppName: NodeBegin
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (VROSC::DrumPadEffectOnSignal::*)(::VROSC::Signal*)>(&VROSC::DrumPadEffectOnSignal::NodeBegin)> {
    static const MethodInfo* get() {
      static auto* signal = &::il2cpp_utils::GetClassFromName("VROSC", "Signal")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(VROSC::DrumPadEffectOnSignal*), "NodeBegin", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{signal});
    }
  };
  