summaryrefslogtreecommitdiffstats
path: root/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d
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 /Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d
downloadDTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.tar.gz
DTSensors.c4d-fa5403dccd986022b2a849e2078f043c3225348a.zip
Initial
Diffstat (limited to 'Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d')
-rw-r--r--Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/DefCore.txt21
-rw-r--r--Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Graphics.pngbin0 -> 2238 bytes
-rw-r--r--Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Names.txt2
-rw-r--r--Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Overlay.pngbin0 -> 2580 bytes
-rw-r--r--Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Script.c109
5 files changed, 132 insertions, 0 deletions
diff --git a/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/DefCore.txt b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/DefCore.txt
new file mode 100644
index 0000000..c626851
--- /dev/null
+++ b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/DefCore.txt
@@ -0,0 +1,21 @@
+[DefCore]
+id=KC7I
+Name=Keycard
+Version=4,9,5
+Category=C4D_Object|C4D_SelectMaterial|C4D_SelectKnowledge|C4D_SelectHomebase
+MaxUserSelect=10
+Width=8
+Height=5
+Offset=-4,-3
+Value=10
+Mass=10
+Components=METL=1;
+Picture=0,5,64,48
+Vertices=2
+VertexX=-4,4
+VertexY=0,0
+VertexFriction=60,60
+Rebuy=1
+Collectible=1
+Rotate=1
+ColorByOwner=1
diff --git a/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Graphics.png b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Graphics.png
new file mode 100644
index 0000000..2d9c553
--- /dev/null
+++ b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Graphics.png
Binary files differ
diff --git a/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Names.txt b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Names.txt
new file mode 100644
index 0000000..ea9589e
--- /dev/null
+++ b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Schlüsselkarte
+US:Key card \ No newline at end of file
diff --git a/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Overlay.png b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Overlay.png
new file mode 100644
index 0000000..acdeab5
--- /dev/null
+++ b/Items.c4d/Sensors.c4d/CardReader.c4d/Keycard.c4d/Overlay.png
Binary files differ
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<c %x>·</c> %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; }