<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tools :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/index.html</link>
    <description>Overview The CTools header aggregates all sub-tools into a single include. Including CTools.h gives access to every utility listed below.&#xA;Category Sub-Tools Description Logging CToolLog Logging system with timestamp, caller name, code marker Validation CToolCheck Null/invalid object check macros Global CToolGlobal toString overloads, enum conversions, thread checks Actor CToolActor Actor/camera rotation helpers AI CToolAI Blackboard key helpers, team attitude checks Animation CToolAnimation Montage playback with callbacks and stop conditions Asset CToolAsset Asset loading with multi-plugin path fallback Async CToolAsync Async tasks, timers, tickables, timelines, condition triggers Component CToolComponent Runtime creation of objects, actors, components, Niagara, datatables Introspection CToolIntrospection Read/write UPROPERTY struct fields by name at runtime Math CToolMath Unix timestamp, circle points, rounding, shuffle, easing Mobile CToolMobile Platform detection, haptic feedback Mouse CToolMouse Mouse world intersection and screen position Navigation CToolNavigation Navigation data retrieval Perf CToolPerf Per-method performance measurement with macros Player CToolPlayer Player pawn and controller access Screen CToolScreen Resolution, AA, VSync, quality settings Singleton CToolSingleton Typed singleton store/retrieve via UCSingletonManager Table CToolTable DataTable and DataTableRowHandle helpers TraceCollision CToolTraceCollision Line trace with multi-channel and debug draw UIDebug CToolUIDebug Debug drawing (box, arrow, point, text) Variant CToolVariant Type-safe variant storage (FCdryxVariantSaver) Widget CToolWidget Widget spawn, remove, text measurement Higher-level Tools Tool Description CPerf Performance data storage UObject, used by CToolPerf CSettings Project settings exposed in Project Settings &gt; Plugins &gt; Cdryx CSingletonManager Engine subsystem for named singleton registry and tickable management CSimpleStateMachine Enum-based state machine with transitions, variant data, auto-forward CBlackboardData Predefined AI blackboard keys for the behavior tree system UCPerf Thread-safe performance measurement storage.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Jul 2024 21:09:28 +0200</lastBuildDate>
    <atom:link href="https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CToolLog</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoollog/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoollog/index.html</guid>
      <description>Overview Logging system built on top of UE_LOG with the LogCCdryx category. Every log entry includes a timestamp, the caller object name (with outer hierarchy), and a numeric code marker for traceability.&#xA;Log format : HH:MM:SS.ms [ObjectName \ OuterName] @ code : message&#xA;Functions Name Description info Log at Display level. On mobile, also shows on-screen message (silver, 5s). warn Log at Warning level. On mobile, on-screen message (orange, 10s). error Log at Error level.</description>
    </item>
    <item>
      <title>CToolGlobal</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolglobal/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolglobal/index.html</guid>
      <description>Overview Global utility functions used across the framework.&#xA;Conversion functions Name Description toString Convert FText, FName, UObject*, TCHAR, uint32, int, float to FString. UObject version includes outer hierarchy. enumToString Enum value to FString. enumToName Enum value to FName. stringToEnum FString to enum value. nameToEnum FName to enum value. intToEnum uint8 to enum. stringToText FString to FText. nameToText FName to FText. // UObject with outer hierarchy FString s = toString(myActor); // &#34;MyActor \ MyLevel&#34; // Enum conversions FString s = enumToString(EMyEnum::Value1); FName n = enumToName(EMyEnum::Value1); EMyEnum e = stringToEnum&lt;EMyEnum&gt;(&#34;Value1&#34;); EMyEnum e2 = nameToEnum&lt;EMyEnum&gt;(FName(&#34;Value1&#34;)); EMyEnum e3 = intToEnum&lt;EMyEnum&gt;(2); // Text conversions FText t = stringToText(&#34;hello&#34;); FText t2 = nameToText(FName(&#34;hello&#34;));Utility functions Name Description isInGameThread Returns true if called from the game thread.</description>
    </item>
    <item>
      <title>CToolCheck</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolcheck/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolcheck/index.html</guid>
      <description>Overview Validation macros for checking null or invalid objects. Logs a warning with the function name and argument index when a check fails.&#xA;Macros Name Description CDRYX_CHECK_INVALID Check validity of arguments using a custom validation function. Uses this as log context. CDRYX_CHECK_INVALID_STATIC Same but with explicit log context object. CDRYX_CHECK_INVALID_OBJECT Check UObject validity (nullptr and IsValid). Uses this. CDRYX_CHECK_INVALID_OBJECT_STATIC Same with explicit log context. // Check that myActor and myComponent are valid UObjects, return nullptr if not CDRYX_CHECK_INVALID_OBJECT(2408140036, return nullptr, {myActor, myComponent}) // Same but in a static context, providing explicit log context CDRYX_CHECK_INVALID_OBJECT_STATIC(owner, 2308071929, return nullptr, {clazz}) // Custom validation: check that a float array is not empty CDRYX_CHECK_INVALID(float*, 2401010001, return, o !</description>
    </item>
    <item>
      <title>CToolAsync</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolasync/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolasync/index.html</guid>
      <description>Overview Async and timing utilities for background tasks, delayed execution, progressive animations, and condition-based triggers.&#xA;Functions Name Description doAsync Execute a lambda on a background thread. doAfterDelay Execute a lambda after a delay in seconds. Has overloads with/without FTimerHandle, for AActor* or UWorld*. doProgressively Execute a lambda progressively along a float curve (timeline). Has overloads with UCurveFloat* or inline curve points. doForever Execute a lambda every tick or at interval. Returns UCdryxTickable* to stop later.</description>
    </item>
    <item>
      <title>CToolAsset</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolasset/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolasset/index.html</guid>
      <description>Overview Asset loading with multi-plugin path adaptation. Automatically tries the AIO (All-In-One) plugin path first, then falls back to the original plugin path.&#xA;Functions Name Description retrieveAsset Load an asset of type U from a soft class path. retrieveClassOfAsset Load a UClass for class C from a soft class path. adaptAssetPath Converts a plugin-specific path to the AIO plugin path (e.g. CdryxGameUPlugin → CdryxAIOUPlugin). // Load an asset UMyDataAsset* asset = retrieveAsset&lt;UMyDataAsset&gt;(this, &#34;/CdryxGameUPlugin/Content/MyAsset&#34;); // Tries /CdryxAIOUPlugin/Content/MyAsset first, then /CdryxGameUPlugin/Content/MyAsset // Load a class UClass* clazz = retrieveClassOfAsset&lt;AMyActor&gt;(this, &#34;/CdryxGameUPlugin/Content/BP_MyActor&#34;);</description>
    </item>
    <item>
      <title>CToolComponent</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolcomponent/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolcomponent/index.html</guid>
      <description>Overview Runtime creation and retrieval of UObjects, Actors, Components (Actor, Scene, Primitive), Niagara effects, and DataTables.&#xA;Object &amp; Actor creation Name Description createObjectAtRuntime Create a UObject at runtime with optional init lambda. Overloads with/without explicit UClass. createObjectSingletonAtRuntime Create only if ref is not already valid. spawnActorAtRuntime Deferred spawn with init before FinishSpawning. Supports attach to owner. Overloads with/without explicit UClass. spawnActorSingletonAtRuntime Spawn only if ref is not already valid. createDatatableAtRuntime Create a UDataTable for a struct type at runtime.</description>
    </item>
    <item>
      <title>CToolActor</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolactor/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolactor/index.html</guid>
      <description>Overview Actor and camera rotation helpers.&#xA;Functions Name Description rotateToFace Rotate an actor or camera to look at a target. Three overloads: camera-to-location (pitch+yaw), actor-to-location (yaw only), actor-to-actor. // Rotate camera to look at a world location (pitch + yaw) rotateToFace(myCameraComponent, FVector(100, 200, 0)); // Rotate actor to face a world location (yaw only) rotateToFace(myActor, FVector(100, 200, 0)); // Rotate actor to face another actor rotateToFace(myActor, targetActor);</description>
    </item>
    <item>
      <title>CToolAI</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolai/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolai/index.html</guid>
      <description>Overview AI blackboard key management and team attitude utilities.&#xA;Struct: CBlackBoardKey&lt;T&gt; Name Description name FName key identifier. entry FBlackboardEntry associated with this key. // Create a typed blackboard key CBlackBoardKey&lt;UBlackboardKeyType_Object&gt; targetKey(FName(&#34;Target&#34;)); CBlackBoardKey&lt;UBlackboardKeyType_Vector&gt; destKey(FName(&#34;Destination&#34;));Blackboard functions Name Description trySetBlackBoardKey Set a blackboard key value. Logs warning if key not found. Overloads for CBlackBoardKey and FBlackboardKeySelector. tryGetBlackBoardKey Get a blackboard key value. Overloads for CBlackBoardKey and FBlackboardKeySelector. clearBlackBoardKey Clear a blackboard key. Overloads for FName and CBlackBoardKey.</description>
    </item>
    <item>
      <title>CToolIntrospection</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolintrospection/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolintrospection/index.html</guid>
      <description>Overview Reflection helpers for reading and writing UPROPERTY struct fields by name at runtime.&#xA;Functions Name Description readFieldValueOfStruct Read a field value from a struct property. Two overloads: from an object (by struct name + field name), or directly from a struct pointer (by field name). writeFieldValueOfStruct Write a field value on a struct property. Same two overloads as read. // Read from an object&#39;s struct property int val = readFieldValueOfStruct&lt;UMyClass, FMyStruct, int&gt;(this, &#34;myStruct&#34;, &#34;myOctave&#34;); // Read directly from a struct pointer int val2 = readFieldValueOfStruct&lt;FMyStruct, int&gt;(&amp;myStruct, &#34;myOctave&#34;); // Write on an object&#39;s struct property int v = 2; writeFieldValueOfStruct&lt;UMyClass, FMyStruct, int&gt;(this, &#34;myStruct&#34;, &#34;myOctave&#34;, &amp;v); // Write directly on a struct pointer writeFieldValueOfStruct&lt;FMyStruct, int&gt;(&amp;myStruct, &#34;myOctave&#34;, &amp;v);</description>
    </item>
    <item>
      <title>CToolMath</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmath/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmath/index.html</guid>
      <description>Overview Math utility functions.&#xA;Functions Name Description unixTimeStamp Returns current time as milliseconds since Unix epoch (double). pointOnCercle Distribute points evenly in a circle around a center point. roundFloat Round a float to N decimal places. shuffle Randomly shuffle an array using a seeded random stream. easeAlpha Apply an easing function to an alpha value. easeIt Interpolate between A and B with easing. double ts = unixTimeStamp(); // 8 points in a circle of radius 100 around (50, 50) TArray&lt;FVector2D&gt; points = pointOnCercle(FVector2D(50, 50), 8, 100.</description>
    </item>
    <item>
      <title>CToolMobile</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmobile/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmobile/index.html</guid>
      <description>Overview Mobile platform detection and haptic feedback.&#xA;Functions Name Description runningOnMobile Returns true if running on iOS, Android, or if mimicMobile is enabled in CSettings. isMimicMobile Returns true if UCSettings::mimicMobile is enabled. playHaptic Trigger force feedback on the player controller. if (runningOnMobile()) { playHaptic(myPawn); } bool mimic = isMimicMobile();</description>
    </item>
    <item>
      <title>CToolMouse</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmouse/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolmouse/index.html</guid>
      <description>Overview Mouse world intersection and screen position utilities.&#xA;Struct: FCMouseData Name Description success Whether the mouse intersection succeeded. intersectionResult World location of the intersection. mouseScreenPosition Mouse position in screen coordinates. hitResult Full FHitResult from the trace. Functions Name Description mouseLocation Deproject mouse to world. If atZeroPosition=true, intersects with Z=0 plane. Otherwise performs a line trace against specified collision channels. mouseLocation2 Simplified version using GetHitResultUnderCursorByChannel. // Intersect with Z=0 plane FCMouseData data = mouseLocation(myActor, true, {ECC_WorldStatic}); // Line trace against world FCMouseData data2 = mouseLocation(myActor, false, {ECC_WorldStatic, ECC_Pawn, ECC_WorldDynamic}); if (data2.</description>
    </item>
    <item>
      <title>CToolNavigation</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolnavigation/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolnavigation/index.html</guid>
      <description>Overview Navigation system data retrieval.&#xA;Functions Name Description retrieveNavigationData Get the default navigation data cast to a specific type. Logs warnings if navigation system or data is missing. ARecastNavMesh* navMesh = retrieveNavigationData&lt;ARecastNavMesh&gt;(GetWorld());</description>
    </item>
    <item>
      <title>CToolAnimation</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolanimation/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolanimation/index.html</guid>
      <description>Overview Animation montage playback with support for speed control, stop conditions, blend out, and end callbacks.&#xA;Delegate Name Description FCBP_whatToDoOnMontageEnded Dynamic delegate with two params: UAnimMontage* and bool (isInterrupted). Struct: FCBP_montageEvent Name Description onMontageEndedAsDynamicDelegate Dynamic delegate called when montage ends. onMontageEndedAsLambda Lambda called when montage ends. Signature: void(UAnimMontage*, bool interrupted). Functions Name Description playAnimation Play a montage on a skeletal mesh. Supports speed, stop condition, blend, breaker, and end callback (lambda or dynamic delegate).</description>
    </item>
    <item>
      <title>CToolPlayer</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolplayer/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolplayer/index.html</guid>
      <description>Overview Player pawn and controller access shortcuts.&#xA;Functions Name Description retrievePlayer Get the first player’s pawn from any world context object. isPlayer Check if a pawn is the local player. retrievePlayerController Get player controller index 0. APawn* player = retrievePlayer(this); if (isPlayer(myPawn)) { // this is the local player } APlayerController* pc = retrievePlayerController(myActor);</description>
    </item>
    <item>
      <title>CToolPerf</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolperf/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolperf/index.html</guid>
      <description>Overview Per-method performance measurement. Tracks call count and average duration. Controlled by UCSettings properties: timer, minTimerToDisplay, allTimerToDisplay, minStatToConsider.&#xA;Functions Name Description perfStart Start timing a method. perfNext Mark an intermediate checkpoint. Logs if duration exceeds minTimerToDisplay. perfEnd End timing. Logs if duration exceeds minTimerToDisplay. Periodically dumps all averages. Macros Name Description CDRYX_PERF_START Calls perfStart(this, FUNCTION). CDRYX_PERF_NEXT Calls perfNext(this, FUNCTION, Info). CDRYX_PERF_END Calls perfEnd(this, FUNCTION, Info). void UMyClass::HeavyMethod() { CDRYX_PERF_START() // .</description>
    </item>
    <item>
      <title>CToolScreen</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolscreen/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolscreen/index.html</guid>
      <description>Overview Screen, resolution, and rendering quality settings.&#xA;Functions Name Description setDynamicResolution Enable/disable dynamic resolution with min/max screen percentage and frame time budget. Unsupported on Windows. setResolutionScaleNormalized Set resolution scale (0.0 to 1.0). setScreenResolution Set screen resolution. setFullScreenMode Set fullscreen mode. setAntiAliasingMethod Set AA method: NOAA, FXAA, TAA, MSAAx2/x4/x8, TSR. setVSyncEnabled Enable/disable VSync. setFrameRateLimit Set frame rate limit. setOtherQuality Set quality levels for GI, texture, post-process, shading, shadow, view distance, VFX, reflection, AA, foliage.</description>
    </item>
    <item>
      <title>CToolTable</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooltable/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooltable/index.html</guid>
      <description>Overview DataTable and DataTableRowHandle access helpers.&#xA;Functions Name Description getRowFromRH Get a row pointer from a FDataTableRowHandle. getArrayFromRH Get an array of row pointers from an array of FDataTableRowHandle. getArrayCopyFromDT Get a copy of all rows from a UDataTable. getRowFromDatatable Get a specific row by name from a UDataTable. // From row handle FMyRow* row = getRowFromRH&lt;FMyRow&gt;(myRowHandle); // Array of row handles TArray&lt;FMyRow*&gt; rows = getArrayFromRH&lt;FMyRow&gt;(myRowHandleArray); // All rows from datatable (copy) TArray&lt;FMyRow&gt; allRows = getArrayCopyFromDT&lt;FMyRow&gt;(myDataTable); // Specific row by name FMyRow* specific = getRowFromDatatable&lt;FMyRow&gt;(myDataTable, FName(&#34;RowName&#34;));</description>
    </item>
    <item>
      <title>CToolTraceCollision</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooltracecollision/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooltracecollision/index.html</guid>
      <description>Overview Line trace collision with multi-channel support and optional debug visualization.&#xA;Functions Name Description lineIntersection Perform a line trace against multiple collision channels. When debug=true, draws arrows (red for trace, green for hit). FHitResult hitResult; bool hit = lineIntersection(myActor, startLocation, endLocation, hitResult, {ECC_WorldStatic, ECC_Pawn}, false, // traceComplex true // debug draw ); if (hit) { FVector impactPoint = hitResult.Location; }</description>
    </item>
    <item>
      <title>CToolUIDebug</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooluidebug/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctooluidebug/index.html</guid>
      <description>Overview Debug drawing utilities. Falls back to the Coordinator singleton if no valid actor is provided.&#xA;Functions Name Description drawDebugRectangle Draw a debug box. drawDebugArrow Draw a debug directional arrow. drawDebugPoint Draw a debug point. drawDebugText Draw debug text in world. Limited by r.DebugSafeZone.MaxDebugTextStringsPerActor (set to 0 for unlimited). cleanDebug Flush all debug strings and persistent debug lines. drawDebugRectangle(myActor, center, FVector(50, 50, 50), FColor::Red, 5.0f, 2.0f); drawDebugArrow(myActor, start, end, FColor::Green, -1, 10.</description>
    </item>
    <item>
      <title>CToolSingleton</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolsingleton/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolsingleton/index.html</guid>
      <description>Overview Typed singleton access wrapping UCSingletonManager. Uses CTypedName keys defined in CSingletonName namespace.&#xA;Functions Name Description getSettings Returns UCSettings* via GetMutableDefault. storeSingleton Store a singleton in the manager. Template-asserts the object derives from the key type. retrieveSingleton Retrieve a singleton cast to the requested type. Logs warning if type mismatch. withSingleton Retrieve and execute lambda if found. Logs warning if not found. // Store storeSingleton(myCoordinator, CSingletonName::CNAME_Singleton_Coordinator); // Retrieve ACCoordinator* coord = retrieveSingleton&lt;ACCoordinator&gt;(CSingletonName::CNAME_Singleton_Coordinator); // Retrieve and use withSingleton&lt;UCQuestManager&gt;(CSingletonName::CNAME_Singleton_QuestManager, [](UCQuestManager* qm) { qm-&gt;StartQuest(); }); // Settings UCSettings* settings = getSettings(); if (settings-&gt;timer) { /* .</description>
    </item>
    <item>
      <title>CToolVariant</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolvariant/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolvariant/index.html</guid>
      <description>Overview Type-safe variant storage using TVariant. Used internally by CSimpleStateMachine for state data.&#xA;Struct: FCdryxVariantSaver Name Description read Read a value by enum key or FName key. write Write a value by enum key or FName key. remove Remove by enum key or FName key. empty Clear all entries. debug Return a debug string of all stored values. FCdryxVariantSaver saver; // Write by enum key saver.write(EMyVar::Health, 100); saver.write(EMyVar::Name, FString(&#34;Player1&#34;)); // Read by enum key int health = saver.</description>
    </item>
    <item>
      <title>CToolWidget</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolwidget/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/ctoolwidget/index.html</guid>
      <description>Overview Widget creation and management utilities.&#xA;Functions Name Description spawnWidgetAtRuntime Create a widget, call init lambda, add to viewport. Overloads with/without explicit UClass, with/without addToViewPort flag. removeWidget Remove a widget from the viewport. sizeOfStringInPixel Measure the pixel size of a string with a given font. // Spawn with default class UMyWidget* w = spawnWidgetAtRuntime&lt;UMyWidget&gt;(myActor, [](UMyWidget* w) { w-&gt;SetText(&#34;Hello&#34;); }); // Spawn with explicit class, not added to viewport UMyWidget* w2 = spawnWidgetAtRuntime&lt;UMyWidget&gt;(myActor, widgetClass, nullptr, false); // Remove removeWidget(myActor, w); // Measure text FVector2D size = sizeOfStringInPixel(&#34;Hello World&#34;, myFontInfo);</description>
    </item>
    <item>
      <title>CSimpleStateMachine</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/csimplestatemachine/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/ccoreumodule/tools/csimplestatemachine/index.html</guid>
      <description>Overview Enum-based state machine with typed transitions, variant data storage, auto-forward, semaphore-locked actions, and debug output.&#xA;Classes Name Description UCSTMachine The state machine. Holds states, current state, variant data. UCSTMachineState A state with an enum value, an action lambda, and an array of transitions. UCSTMachineTransition A transition with a target state and a condition lambda. Interface Name Description ICSTMachineOwner Implement getSTMachine() to expose state machines. Provides getSTMachine(FName), resetAnyStateMachine(), resetOtherStateMachine(). Utility Name Description StateMachineUtility::moveOnAllSimpleStateMachine Advances all state machines of a given family on all components of an actor.</description>
    </item>
  </channel>
</rss>