public void WakeUp()
        {
            SNLogger.Log("Received SlotExtender 'WakeUp' message.");

            isSeamothArmSlotsReady = true;

            quickSlotTimeUsed = (float[])seamoth.GetPrivateField("quickSlotTimeUsed", BindingFlags.SetField);
            quickSlotCooldown = (float[])seamoth.GetPrivateField("quickSlotCooldown", BindingFlags.SetField);
            quickSlotToggled  = (bool[])seamoth.GetPrivateField("quickSlotToggled", BindingFlags.SetField);
            quickSlotCharge   = (float[])seamoth.GetPrivateField("quickSlotCharge", BindingFlags.SetField);

            seamoth.onToggle          += OnToggleSlot;
            seamoth.modules.onEquip   += OnEquip;
            seamoth.modules.onUnequip += OnUnequip;

            Player.main.playerMotorModeChanged.AddHandler(this, new Event <Player.MotorMode> .HandleFunction(OnPlayerMotorModeChanged));

            onDockedChanged.AddHandler(this, new Event <bool> .HandleFunction(OnDockedChanged));

            CheckArmSlots();
        }