From fa5403dccd986022b2a849e2078f043c3225348a Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 2 Jan 2017 19:33:41 +0100 Subject: Initial --- Targets.c4d/System.c4g/Towers.c | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Targets.c4d/System.c4g/Towers.c (limited to 'Targets.c4d/System.c4g/Towers.c') diff --git a/Targets.c4d/System.c4g/Towers.c b/Targets.c4d/System.c4g/Towers.c new file mode 100644 index 0000000..1b66297 --- /dev/null +++ b/Targets.c4d/System.c4g/Towers.c @@ -0,0 +1,48 @@ +#strict 2 +#appendto TWR2 + +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]]; + } + } + 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(); + } + } +} -- cgit v1.2.3-54-g00ecf