summaryrefslogtreecommitdiffstats
path: root/Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2017-01-02 19:33:41 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2017-01-05 16:31:26 +0100
commitfa5403dccd986022b2a849e2078f043c3225348a (patch)
tree223fac13363b078720cd6e0d04d6adf53edc5dc9 /Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c
downloadDTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.tar.gz
DTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.zip
Initial
Diffstat (limited to 'Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c')
-rw-r--r--Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c b/Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c
new file mode 100644
index 0000000..79ad02d
--- /dev/null
+++ b/Targets.c4d/Knights.c4d_disabled/System.c4g/Script.c
@@ -0,0 +1,73 @@
+#strict 2
+#appendto CPT2
+
+func IsRemoteControllable() { return false; }
+
+func FindGate(bool right) { return FindObject(0, 0, 0, 0, 0, 0, (right && "GateRight") || "GateLeft", this); }
+
+func SensorCallbacks()
+{
+ var ret = [];
+ for(var part in [[false, "$TWR2_LeftGate$", ["LeftGateOpen", "LeftGateClose", "ControlLeft"]], [true, "$TWR2_RightGate$", ["RightGateOpen", "RightGateClose", "ControlRight"]]])
+ {
+ if(FindGate(part[0]))
+ {
+ ret[GetLength(ret)] = [Format("$TWR2_GateOpen$", part[1]), part[2][0]];
+ ret[GetLength(ret)] = [Format("$TWR2_GateClose$", part[1]), part[2][1]];
+ ret[GetLength(ret)] = [Format("$TWR2_GateOpenClose$", part[1]), part[2][2]];
+ }
+ }
+
+ if((GetID() == CPT3 || GetID() == CPT4) && this->FindDrawbridge())
+ {
+ ret[GetLength(ret)] = ["$TWR2_DrawBridgeUp$", "ControlUp"];
+ ret[GetLength(ret)] = ["$TWR2_DrawBridgeDown$", "ControlDownSingle"];
+ ret[GetLength(ret)] = ["$TWR2_DrawBridgeUpDown$", "ToggleDrawBridge"];
+ }
+
+ return ret;
+}
+
+func LeftGateOpen() { return GateOpen(false); }
+func LeftGateClose() { return GateClose(false); }
+
+func RightGateOpen() { return GateOpen(true); }
+func RightGateClose() { return GateClose(true); }
+
+func GateOpen(bool right) { return GateOpenClose(right, false); }
+func GateClose(bool right) { return GateOpenClose(right, true); }
+
+func GateOpenClose(bool right, bool close)
+{
+ var gate = FindGate(right);
+ if(gate)
+ {
+ gate->Activate();
+
+ if(close)
+ {
+ gate->Close();
+ }
+ else
+ {
+ gate->Open();
+ }
+ }
+}
+
+func ToggleDrawBridge()
+{
+ var bridge = this->FindDrawbridge();
+ if(bridge)
+ {
+ if(bridge->IsUp())
+ {
+ return bridge->ControlDown();
+ }
+ else
+ {
+ return bridge->ControlUp();
+ }
+ }
+}
+