Skip to content

Commit a1404be

Browse files
committed
Allow objects to be triggered only once.
1 parent cb98e0f commit a1404be

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/triggerableNode.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,26 @@
22

33
void TriggerableNode::triggerAdd()
44
{
5+
if (once && trigger_counter)
6+
return;
57
if (!trigger_counter)
68
onTrigger();
79
trigger_counter++;
810
}
911

1012
void TriggerableNode::triggerSubstract()
1113
{
14+
if (once)
15+
return;
1216
trigger_counter--;
1317
if (!trigger_counter)
1418
onUnTrigger();
1519
}
1620

1721
void TriggerableNode::setProperty(sp::string name, sp::string value)
1822
{
19-
LevelObject::setProperty(name, value);
23+
if (name == "trigger_once")
24+
once = sp::stringutil::convert::toBool(value);
25+
else
26+
LevelObject::setProperty(name, value);
2027
}

src/triggerableNode.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class TriggerableNode : public LevelObject
2525
private:
2626
int trigger_counter = 0;
2727
sp::string trigger_name;
28+
bool once = false;
2829
};
2930

3031
#endif//TRIGGER_H

0 commit comments

Comments
 (0)