3#include "pixelbullet/scene/behavior_state_machine_asset.h"
4#include "pixelbullet/serialization/node.h"
13 EntityId prefab_entity = EntityId::Invalid();
14 std::vector<BehaviorStringParameterValue> string_parameter_overrides;
19inline void NormalizePrefabBehaviorOverrideEntries(std::vector<PrefabBehaviorOverrideEntry>& overrides)
21 std::vector<PrefabBehaviorOverrideEntry> normalized;
22 normalized.reserve(overrides.size());
25 NormalizeBehaviorStringParameterOverrides(override_entry.string_parameter_overrides);
26 if (!override_entry.prefab_entity || override_entry.string_parameter_overrides.empty())
31 std::erase_if(normalized, [&](
const PrefabBehaviorOverrideEntry& existing)
32 {
return existing.prefab_entity == override_entry.prefab_entity; });
33 normalized.push_back(std::move(override_entry));
36 overrides = std::move(normalized);
41 node[
"entity"] << entry.prefab_entity;
42 if (!entry.string_parameter_overrides.empty())
44 node[
"stringParameterOverrides"] << entry.string_parameter_overrides;
51 if (node.HasProperty(
"entity"))
53 node[
"entity"] >> entry.prefab_entity;
57 entry.prefab_entity = EntityId::Invalid();
60 if (node.HasProperty(
"stringParameterOverrides"))
62 node[
"stringParameterOverrides"] >> entry.string_parameter_overrides;
66 entry.string_parameter_overrides.clear();
69 NormalizeBehaviorStringParameterOverrides(entry.string_parameter_overrides);
75 std::vector<PrefabBehaviorOverrideEntry> behavior_overrides;
79 const auto it = std::find_if(behavior_overrides.begin(), behavior_overrides.end(),
81 return it == behavior_overrides.end() ? nullptr : &(*it);
89 if (!component.behavior_overrides.empty())
91 node[
"behaviorOverrides"] << component.behavior_overrides;
98 if (node.HasProperty(
"behaviorOverrides"))
100 node[
"behaviorOverrides"] >> component.behavior_overrides;
104 component.behavior_overrides.clear();
107 NormalizePrefabBehaviorOverrideEntries(component.behavior_overrides);
Definition entity_id.h:11
Represents a hierarchical node capable of storing various data types and supporting YAML serializatio...
Definition node.h:45
Definition prefab_behavior_overrides_component.h:12
Definition prefab_behavior_overrides_component.h:74