mirror of
https://github.com/m5stack/StackChan.git
synced 2026-04-28 03:22:39 +00:00
5001b7081b
* add firmware source code
40 lines
669 B
C++
40 lines
669 B
C++
/*
|
|
* SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
#pragma once
|
|
#include "avatar/avatar.h"
|
|
#include "motion/motion.h"
|
|
#include "utils/object_pool.h"
|
|
|
|
namespace stackchan {
|
|
|
|
/**
|
|
* @brief Modifiable base class, expose modifiable APIs to the modifiers
|
|
*
|
|
*/
|
|
class Modifiable {
|
|
public:
|
|
virtual ~Modifiable() = default;
|
|
|
|
virtual motion::Motion& motion() = 0;
|
|
|
|
virtual avatar::Avatar& avatar() = 0;
|
|
|
|
virtual bool hasAvatar() = 0;
|
|
};
|
|
|
|
/**
|
|
* @brief Modifier base class
|
|
*
|
|
*/
|
|
class Modifier : public Poolable {
|
|
public:
|
|
virtual void _update(Modifiable& stackchan)
|
|
{
|
|
}
|
|
};
|
|
|
|
} // namespace stackchan
|