From fa5403dccd986022b2a849e2078f043c3225348a Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 2 Jan 2017 19:33:41 +0100 Subject: Initial --- Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt | 7 ++ Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt | 18 ++++ Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png | Bin 0 -> 3860 bytes Items.c4d/Sensors.c4d/Timer.c4d/Names.txt | 2 + Items.c4d/Sensors.c4d/Timer.c4d/Script.c | 112 ++++++++++++++++++++++++ Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt | 8 ++ Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt | 8 ++ 7 files changed, 155 insertions(+) create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/ActMap.txt create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/DefCore.txt create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/Names.txt create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/Script.c create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/StringTblDE.txt create mode 100644 Items.c4d/Sensors.c4d/Timer.c4d/StringTblUS.txt (limited to 'Items.c4d/Sensors.c4d/Timer.c4d') 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 new file mode 100644 index 0000000..a42131c Binary files /dev/null and b/Items.c4d/Sensors.c4d/Timer.c4d/Graphics.png differ 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 -- cgit v1.2.3-54-g00ecf