diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2017-01-02 19:33:41 +0100 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2017-01-05 16:31:26 +0100 |
| commit | fa5403dccd986022b2a849e2078f043c3225348a (patch) | |
| tree | 223fac13363b078720cd6e0d04d6adf53edc5dc9 /Items.c4d/Sensors.c4d/Timer.c4d | |
| download | DTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.tar.gz DTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.zip | |
Initial
Diffstat (limited to 'Items.c4d/Sensors.c4d/Timer.c4d')
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt | 7 | ||||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt | 18 | ||||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png | bin | 0 -> 3860 bytes | |||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/Names.txt | 2 | ||||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/Script.c | 112 | ||||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt | 8 | ||||
| -rw-r--r-- | Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt | 8 |
7 files changed, 155 insertions, 0 deletions
diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt b/Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt new file mode 100644 index 0000000..7dc639a --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt @@ -0,0 +1,7 @@ +[Action] +Name=On +Facet=0,0,10,5 +Length=2 +Delay=35 +NextAction=On +Reverse=1 diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt b/Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt new file mode 100644 index 0000000..5b2a80f --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt @@ -0,0 +1,18 @@ +[DefCore]
+id=TI7I
+Name=Timer
+Category=C4D_Object|C4D_SelectMaterial|C4D_SelectKnowledge|C4D_SelectHomebase
+Width=10
+Height=5
+Offset=-5,-2
+Mass=10
+Value=5
+Components=METL=1;
+Picture=0,5,64,64
+Vertices=1
+VertexFriction=100
+Grab=2
+Collectible=1
+MaxUserSelect=10
+Rebuy=1
+NoPushEnter=1
diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png b/Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png Binary files differnew file mode 100644 index 0000000..a42131c --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/Names.txt b/Items.c4d/Sensors.c4d/Timer.c4d/Names.txt new file mode 100644 index 0000000..5e3934a --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/Names.txt @@ -0,0 +1,2 @@ +DE:Zeitgeber
+US:Timer
diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/Script.c b/Items.c4d/Sensors.c4d/Timer.c4d/Script.c new file mode 100644 index 0000000..e41043a --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/Script.c @@ -0,0 +1,112 @@ +#strict 2
+#include SN7I
+
+local interval, timer, setupUser, repeats, repeatCount;
+
+func Init()
+{
+ interval = 35;
+}
+
+func ControlThrow(object caller)
+{
+ Toggle();
+ return ClearCom(caller);
+}
+
+func ControlThrowDouble() { return ControlThrow(...); }
+
+func Triggers() { return [["$Timeout$"]];}
+
+func Setup(object caller, int &menuIndex)
+{
+ setupUser = caller;
+ AddMenuItem(Format("$Interval$", interval), "SetTimerEntry", GetID(), caller, 0, menuIndex++, 0, C4MN_Add_ForceNoDesc);
+ AddMenuItem(Format("$Repeats$", (repeats && Format("%d", repeats)) || "$InfRepeats$"), "SetRepeatsEntry", GetID(), caller, 0, menuIndex++, 0, C4MN_Add_ForceNoDesc);
+ AddMenuItem((!timer && "$Start$") || "$Stop$", "ToggleActive", GetID(), caller, 0, menuIndex++, 0, C4MN_Add_ForceNoDesc);
+ AddMenuItem("$Test$", "Timeout", GetID(), caller, 0, menuIndex++, 0, C4MN_Add_ForceNoDesc);
+ return true;
+}
+
+func SetTimerEntry(id id, int menuIndex, bool right)
+{
+ interval = Max(1, interval - (right * 2 - 1));
+ _Setup(setupUser);
+ SelectMenuItem(menuIndex, setupUser);
+ if(timer)
+ {
+ RemoveTimer(timer);
+ timer = 0;
+ timer = AddTimer("Timeout", interval);
+ }
+}
+
+func SetRepeatsEntry(id id, int menuIndex, bool right)
+{
+ repeats = Max(0, repeats - (right * 2 - 1));
+ _Setup(setupUser);
+ SelectMenuItem(menuIndex, setupUser);
+}
+
+func ToggleActive(id id, int menuIndex, bool right)
+{
+ Toggle();
+ _Setup(setupUser);
+ SelectMenuItem(menuIndex, setupUser);
+}
+
+func Toggle()
+{
+ if(timer)
+ {
+ Stop();
+ }
+ else
+ {
+ Start();
+ }
+}
+
+func Stop()
+{
+ if(timer)
+ {
+ RemoveTimer(timer);
+ timer = 0;
+ SetAction("Idle");
+ }
+}
+
+func Start()
+{
+ if(!timer)
+ {
+ timer = AddTimer("Timeout", interval);
+ SetAction("On");
+ repeatCount = 0;
+ }
+}
+
+func Timeout(sym, int menuIndex)
+{
+ Trigger(0, this);
+ if(GetType(sym) == C4V_C4ID)
+ {
+ _Setup(setupUser);
+ SelectMenuItem(menuIndex, setupUser);
+ }
+ else if(!sym && repeats && ++repeatCount >= repeats)
+ {
+ Stop();
+ }
+}
+
+func SingleShot()
+{
+ ScheduleCall(this, "Timeout", interval);
+}
+
+func SensorCallbacks()
+{
+ return [["$SingleShot$", "SingleShot"], ["$Start$", "Start"], ["$Stop$", "Stop"]];
+}
diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt b/Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt new file mode 100644 index 0000000..7cf46ee --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt @@ -0,0 +1,8 @@ +Timeout=Zeitablauf +Interval=Zeitintervall: %d Frames +Start=Starten +Stop=Stoppen +SingleShot=Einzelne Verzögerung +Test=Testsignal auslösen +Repeats=Wiederholungen: %s +InfRepeats=Endlos diff --git a/Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt b/Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt new file mode 100644 index 0000000..ae1e896 --- /dev/null +++ b/Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt @@ -0,0 +1,8 @@ +Timeout=Timeout +Interval=Interval: %d frames +Start=Start +Stop=Stop +SingleShot=Single shot +Test=Emit test signal +Repeats=Repeat: %s +InfRepeats=infinite |
