From fa5403dccd986022b2a849e2078f043c3225348a Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Mon, 2 Jan 2017 19:33:41 +0100 Subject: Initial --- .../CardReader.c4d/Keycard.c4d/Script.c | 109 +++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c (limited to 'Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c') diff --git a/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c new file mode 100644 index 0000000..bd604c3 --- /dev/null +++ b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c @@ -0,0 +1,109 @@ +#strict 2 + +local readers; +local color; + +func Initialize() +{ + readers = []; + ResetColor(); +} + +func ResetColor() +{ + SetColor(RGB(255, 255, 255)); +} + +func OnOwnerChanged() +{ + SetColorDw(color); +} + +func HasReader(object reader) +{ + return GetIndexOf(reader, readers) != -1; +} + +func CleanRemovedReaders() +{ + ArrayEraseItem(readers, 0, true); +} + +func AddReader(object reader) +{ + if(!HasReader(reader)) + { + readers[GetLength(readers)] = reader; + CleanRemovedReaders(); + if(GetLength(readers) == 1) + { + SetColor(reader->GetColor()); + } + } + return true; +} + +func RemoveReader(object reader) +{ + ArrayEraseItem(readers, reader); + CleanRemovedReaders(); + if(color == reader->GetColor()) + { + if(GetLength(readers) > 0) + { + SetColor(readers[0]->GetColor()); + } + else + { + ResetColor(); + } + } + return true; +} + +func SetColor(int newColor) +{ + color = newColor; + SetColorDw(newColor); +} + +func Selection() +{ + if(GetLength(readers)) + { + var first = true, descList = ""; + for(var reader in readers) + { + if(reader) + { + Contained()->CreateSelectMark()->MarkObject(reader, 35); + var desc = reader->GetDescription() || ""; + if(!first) + { + descList = Format("%s, ", descList); + } + descList = Format("%s· %s", descList, reader->GetColor(), desc); + first = false; + } + } + if(descList != "") + { + PlayerMessage(GetOwner(Contained()), "%s: %s", Contained(), SN7I->TargetText(), descList); + } + } +} + +func Entrance(object container) +{ + if(GetOCF(container) & OCF_CrewMember) + { + Selection(); + } +} + +func GetColor() +{ + return color; +} + +func IsAnvilProduct() { return true; } -- cgit v1.2.3-54-g00ecf