text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "extern/beatsaber-hook/shared/utils/typedefs.h"
  // Including type: UnityEngine.MonoBehaviour
  #include "UnityEngine/MonoBehaviour.hpp"
  // Including type: UnityEngine.KeyCode
  #include "UnityEngine/KeyCode.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "extern/beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: UnityEngine
  namespace UnityEngine {
    // Forward declaring type: GameObject
    class GameObject;
  }
  // Forward declaring namespace: GlobalNamespace
  namespace GlobalNamespace {
    // Forward declaring type: OVRCameraRig
    class OVRCameraRig;
  }
  // Completed forward declares
  // Type namespace: 
  namespace GlobalNamespace {
    // Size: 0x48
    #pragma pack(push, 1)
    // Autogenerated type: OVRGridCube
    class OVRGridCube : public UnityEngine::MonoBehaviour {
      public:
      // public UnityEngine.KeyCode GridKey
      // Size: 0x4
      // Offset: 0x18
      UnityEngine::KeyCode GridKey;
      // Field size check
      static_assert(sizeof(UnityEngine::KeyCode) == 0x4);
      // Padding between fields: GridKey and: CubeGrid
      char __padding0[0x4] = {};
      // private UnityEngine.GameObject CubeGrid
      // Size: 0x8
      // Offset: 0x20
      UnityEngine::GameObject* CubeGrid;
      // Field size check
      static_assert(sizeof(UnityEngine::GameObject*) == 0x8);
      // private System.Boolean CubeGridOn
      // Size: 0x1
      // Offset: 0x28
      bool CubeGridOn;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean CubeSwitchColorOld
      // Size: 0x1
      // Offset: 0x29
      bool CubeSwitchColorOld;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean CubeSwitchColor
      // Size: 0x1
      // Offset: 0x2A
      bool CubeSwitchColor;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: CubeSwitchColor and: gridSizeX
      char __padding4[0x1] = {};
      // private System.Int32 gridSizeX
      // Size: 0x4
      // Offset: 0x2C
      int gridSizeX;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 gridSizeY
      // Size: 0x4
      // Offset: 0x30
      int gridSizeY;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Int32 gridSizeZ
      // Size: 0x4
      // Offset: 0x34
      int gridSizeZ;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private System.Single gridScale
      // Size: 0x4
      // Offset: 0x38
      float gridScale;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private System.Single cubeScale
      // Size: 0x4
      // Offset: 0x3C
      float cubeScale;
      // Field size check
      static_assert(sizeof(float) == 0x4);
      // private OVRCameraRig CameraController
      // Size: 0x8
      // Offset: 0x40
      GlobalNamespace::OVRCameraRig* CameraController;
      // Field size check
      static_assert(sizeof(GlobalNamespace::OVRCameraRig*) == 0x8);
      // Creating value type constructor for type: OVRGridCube
      OVRGridCube(UnityEngine::KeyCode GridKey_ = {}, UnityEngine::GameObject* CubeGrid_ = {}, bool CubeGridOn_ = {}, bool CubeSwitchColorOld_ = {}, bool CubeSwitchColor_ = {}, int gridSizeX_ = {}, int gridSizeY_ = {}, int gridSizeZ_ = {}, float gridScale_ = {}, float cubeScale_ = {}, GlobalNamespace::OVRCameraRig* CameraController_ = {}) noexcept : GridKey{GridKey_}, CubeGrid{CubeGrid_}, CubeGridOn{CubeGridOn_}, CubeSwitchColorOld{CubeSwitchColorOld_}, CubeSwitchColor{CubeSwitchColor_}, gridSizeX{gridSizeX_}, gridSizeY{gridSizeY_}, gridSizeZ{gridSizeZ_}, gridScale{gridScale_}, cubeScale{cubeScale_}, CameraController{CameraController_} {}
      // Deleting conversion operator: operator System::IntPtr
      constexpr operator System::IntPtr() const noexcept = delete;
      // private System.Void Update()
      // Offset: 0x14F4D64
      void Update();
      // public System.Void SetOVRCameraController(ref OVRCameraRig cameraController)
      // Offset: 0x14F4FCC
      void SetOVRCameraController(GlobalNamespace::OVRCameraRig*& cameraController);
      // private System.Void UpdateCubeGrid()
      // Offset: 0x14F4D68
      void UpdateCubeGrid();
      // private System.Void CreateCubeGrid()
      // Offset: 0x14F4FD8
      void CreateCubeGrid();
      // private System.Void CubeGridSwitchColor(System.Boolean CubeSwitchColor)
      // Offset: 0x14F5384
      void CubeGridSwitchColor(bool CubeSwitchColor);
      // public System.Void .ctor()
      // Offset: 0x14F5728
      // Implemented from: UnityEngine.MonoBehaviour
      // Base method: System.Void MonoBehaviour::.ctor()
      // Base method: System.Void Behaviour::.ctor()
      // Base method: System.Void Component::.ctor()
      // Base method: System.Void Object::.ctor()
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static OVRGridCube* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("GlobalNamespace::OVRGridCube::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<OVRGridCube*, creationType>()));
      }
    }; // OVRGridCube
    #pragma pack(pop)
    static check_size<sizeof(OVRGridCube), 64 + sizeof(GlobalNamespace::OVRCameraRig*)> __GlobalNamespace_OVRGridCubeSizeCheck;
    static_assert(sizeof(OVRGridCube) == 0x48);
  }
  DEFINE_IL2CPP_ARG_TYPE(GlobalNamespace::OVRGridCube*, "", "OVRGridCube");
  