Rename hcore=>smocore

This commit is contained in:
2025-07-22 06:15:12 -04:00
parent 9c16aeeb55
commit 756571b9b4
54 changed files with 6 additions and 6 deletions
+79
View File
@@ -0,0 +1,79 @@
#ifndef DIRECTOR_COMMANDLIST_H
#define DIRECTOR_COMMANDLIST_H
#include <vector>
#include <cstdint>
#include <mentalEntity.h>
namespace hk {
namespace director {
/**
* @brief Base class for all commands, storing a reference to a mental entity ID.
*
* Derived classes can extend this to include additional command-specific
* data and behavior.
*/
class Command
{
public:
Command(const MentalEntity::Id menty) : menty(menty) {}
public:
const MentalEntity::Id menty;
};
class CommandList
{
public:
CommandList() = default;
/**
* @brief Used by Director to point to the currently executing command.
*
* director::Director maintains an internal cursor. As it executes commands
* from its internal command list, it advances the cursor to the current
* command before executing it.
*/
class Cursor
{
public:
Cursor(CommandList& commandList)
: commandList(commandList), iter(commandList.commands.begin())
{}
void reset() { iter = commandList.commands.begin(); }
bool hasNext() const { return iter != commandList.commands.end(); }
Cursor next() { return ++(*this); }
Cursor& operator++() {
++iter;
return *this;
}
private:
Cursor(
CommandList& commandList,
std::vector<Command>::iterator iter)
: commandList(commandList), iter(iter)
{}
public:
CommandList& commandList;
std::vector<Command>::iterator iter;
};
Cursor getCursor() { return Cursor(*this); }
void addCommand(const Command& command)
{
commands.push_back(command);
}
public:
std::vector<Command> commands;
};
} // namespace director
} // namespace hk
#endif // DIRECTOR_COMMANDLIST_H
+21
View File
@@ -0,0 +1,21 @@
#ifndef DIRECTOR_H
#define DIRECTOR_H
#include <config.h>
#include <goal.h>
namespace hk {
namespace director {
class Director {
public:
Director() = default;
~Director() = default;
Goal purpose;
};
} // namespace director
} // namespace hk
#endif // DIRECTOR_H