ezEngine Release 26.9
Loading...
Searching...
No Matches
ezMcpGameTool Class Reference

What the game is doing, and letting it run. More...

#include <McpGameTool.h>

Inheritance diagram for ezMcpGameTool:

Public Member Functions

virtual void GetSupportedTools (ezDynamicArray< ezMcpToolDesc > &out_tools) const override
 Appends the description of every tool that this provider implements.
 
virtual void Execute (ezStringView sToolName, const ezVariantDictionary &arguments, ezMcpToolResult &out_result) override
 Executes one of the tools returned by GetSupportedTools().
 
- Public Member Functions inherited from ezMcpToolProvider
virtual void OnActivate ()
 Called once, right after the provider was instantiated. Use it to hook into the editor.
 
virtual void OnDeactivate ()
 Called once, before the provider is destroyed.
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Detailed Description

What the game is doing, and letting it run.

The distinction against app_* is process versus game: the port, the executable and the log belong to the process and are answered by the shared ezMcpAppTool, while a world, a game state and a clock only exist here.

Frame-accurate stepping is deliberately absent. ezClock could do it - pause, fixed timestep, unpause for N frames - but a frame is the wrong unit for a game whose simulation is not frame driven. A turn based game that interpolates between recorded turns would find that pausing the clock freezes playback and not the simulation, so the useful stepping belongs in that game's own tool provider, which the reflection-based registry already allows any game plugin to add.

Member Function Documentation

◆ Execute()

void ezMcpGameTool::Execute ( ezStringView  sToolName,
const ezVariantDictionary arguments,
ezMcpToolResult out_result 
)
overridevirtual

Executes one of the tools returned by GetSupportedTools().

Parameters
sToolNameThe tool to run. A provider with a single tool may ignore this.
argumentsThe 'arguments' object of the call. Missing and mistyped values are normal - the client is an AI and will get this wrong. Validate and report through out_result.

Implements ezMcpToolProvider.

◆ GetSupportedTools()

void ezMcpGameTool::GetSupportedTools ( ezDynamicArray< ezMcpToolDesc > &  out_tools) const
overridevirtual

Appends the description of every tool that this provider implements.

Implements ezMcpToolProvider.


The documentation for this class was generated from the following files: