3#include "pixelbullet/serialization/node.h"
12 float attack_range = 8.0f;
13 float cooldown_seconds = 0.75f;
14 int damage_amount = 1;
21 node[
"enabled"] << component.enabled;
22 node[
"attackRange"] << component.attack_range;
23 node[
"cooldownSeconds"] << component.cooldown_seconds;
24 node[
"damageAmount"] << component.damage_amount;
28inline const Node& operator>>(
const Node& node, RangedHitscanAttackComponent& component)
30 if (node.HasProperty(
"enabled"))
32 node[
"enabled"] >> component.enabled;
36 component.enabled =
true;
39 if (node.HasProperty(
"attackRange"))
41 node[
"attackRange"] >> component.attack_range;
45 component.attack_range = 8.0f;
48 if (node.HasProperty(
"cooldownSeconds"))
50 node[
"cooldownSeconds"] >> component.cooldown_seconds;
54 component.cooldown_seconds = 0.75f;
57 if (node.HasProperty(
"damageAmount"))
59 node[
"damageAmount"] >> component.damage_amount;
63 component.damage_amount = 1;
66 component.attack_range = std::max(component.attack_range, 0.0001f);
67 component.cooldown_seconds = std::max(component.cooldown_seconds, 0.0001f);
68 component.damage_amount = std::max(component.damage_amount, 1);
Represents a hierarchical node capable of storing various data types and supporting YAML serializatio...
Definition node.h:45
Definition ranged_hitscan_attack_component.h:10