118 if (!data.is_object())
121 if (data.contains(
"id") && data[
"id"].is_string())
122 p.
id = data[
"id"].get<std::string>();
124 if (data.contains(
"name") && data[
"name"].is_string())
125 p.name = data[
"name"].get<std::string>();
127 if (data.contains(
"left"))
130 if (data.contains(
"op") && data[
"op"].is_string())
132 else if (data.contains(
"operator") && data[
"operator"].is_string())
135 if (data.contains(
"right"))
Defines ConditionPreset — a reusable, globally-stored condition expression.
ComponentTypeID GetComponentTypeID_Static()
< Provides AssetID and INVALID_ASSET_ID
ComparisonOp
The relational operator used in a ConditionPreset.
A globally-stored, reusable condition expression.
std::pair< bool, bool > GetPinNeeds() const
Returns a pair {needsLeft, needsRight}.
nlohmann::json ToJson() const
Serializes this preset to a JSON object.
std::string GetPreview() const
Returns a human-readable preview string.
static ConditionPreset FromJson(const nlohmann::json &data)
Deserializes a ConditionPreset from a JSON object.
ConditionPreset()
Default constructor — generates an empty preset.
static std::string OpToString(ComparisonOp o)
Returns the operator as a display string (e.g. "<=").
std::string id
Global unique UUID (e.g. "preset_001")
bool NeedsLeftPin() const
Returns true when the left operand is in Pin mode.
static ComparisonOp OpFromString(const std::string &s)
Parses a display string back to a ComparisonOp.
bool NeedsRightPin() const
Returns true when the right operand is in Pin mode.
std::string name
Human-readable display name (e.g. "Condition #1")
One side of a ConditionPreset comparison expression.
static Operand FromJson(const nlohmann::json &data)
Deserializes an Operand from a JSON object.
nlohmann::json ToJson() const
Serializes this Operand to a JSON object.
bool IsPin() const
Returns true when mode == Pin.
std::string GetDisplayString() const
Returns a human-readable display string.