From 951ec3ccd00bdfab3bf98c53fdd94383ee1e6eca Mon Sep 17 00:00:00 2001
From: Eric Heine <erheine@nps.edu>
Date: Tue, 28 Jan 2020 10:12:42 -0800
Subject: [PATCH] Added game event loggers for the four types of basic value
 game events.

---
 .../BooleanGameEventLogger.cs                 | 22 +++++++++++++++++++
 .../BooleanGameEventLogger.cs.meta            | 13 +++++++++++
 .../FloatGameEventLogger.cs                   | 22 +++++++++++++++++++
 .../FloatGameEventLogger.cs.meta              | 13 +++++++++++
 .../Scriptable Variables/GameEventLogger.cs   |  6 ++++-
 .../IntGameEventLogger.cs                     | 22 +++++++++++++++++++
 .../IntGameEventLogger.cs.meta                | 13 +++++++++++
 .../StringGameEventLogger.cs                  | 22 +++++++++++++++++++
 .../StringGameEventLogger.cs.meta             | 13 +++++++++++
 9 files changed, 145 insertions(+), 1 deletion(-)
 create mode 100644 Event Logger/Scriptable Variables/BooleanGameEventLogger.cs
 create mode 100644 Event Logger/Scriptable Variables/BooleanGameEventLogger.cs.meta
 create mode 100644 Event Logger/Scriptable Variables/FloatGameEventLogger.cs
 create mode 100644 Event Logger/Scriptable Variables/FloatGameEventLogger.cs.meta
 create mode 100644 Event Logger/Scriptable Variables/IntGameEventLogger.cs
 create mode 100644 Event Logger/Scriptable Variables/IntGameEventLogger.cs.meta
 create mode 100644 Event Logger/Scriptable Variables/StringGameEventLogger.cs
 create mode 100644 Event Logger/Scriptable Variables/StringGameEventLogger.cs.meta

diff --git a/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs b/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs
new file mode 100644
index 0000000..2b0ba48
--- /dev/null
+++ b/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs	
@@ -0,0 +1,22 @@
+using UnityEngine;
+using Shared.ScriptableVariables;
+
+namespace Shared.EventLog {
+  // Logs a boolean game event when it is raised
+  // Depends on ScriptableVariable package
+  public class BooleanGameEventLogger : BooleanGameEventListener {
+    [Tooltip("The event log to add the event trigger log to")]
+    public EventLog eventLog;
+    [Tooltip("The custom key to use in the event log (if not set, the key will be the event name itself)")]
+    public string customKey;
+    [Tooltip("The custom format of the event value output (if not set, the value will be the ToString() of the value)")]
+    public string customValueFormat;
+
+    //---------------------------------------------------------------------------
+    // Overridden event listening function to add the event to the event log
+    public override void OnEventRaised(bool value) {
+      eventLog.Add(string.IsNullOrEmpty(customKey) ? $"{eventToListenTo.name} Triggered" : customKey, !string.IsNullOrEmpty(customValueFormat) ? string.Format(customValueFormat, value) : value.ToString());
+      base.OnEventRaised(value);
+    }
+  }
+}
diff --git a/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs.meta b/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs.meta
new file mode 100644
index 0000000..e48a86b
--- /dev/null
+++ b/Event Logger/Scriptable Variables/BooleanGameEventLogger.cs.meta	
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 8e522c9f678eaa648a263ea5e6919776
+timeCreated: 1510685488
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Event Logger/Scriptable Variables/FloatGameEventLogger.cs b/Event Logger/Scriptable Variables/FloatGameEventLogger.cs
new file mode 100644
index 0000000..4269228
--- /dev/null
+++ b/Event Logger/Scriptable Variables/FloatGameEventLogger.cs	
@@ -0,0 +1,22 @@
+using UnityEngine;
+using Shared.ScriptableVariables;
+
+namespace Shared.EventLog {
+  // Logs a float game event when it is raised
+  // Depends on ScriptableVariable package
+  public class FloatGameEventLogger : FloatGameEventListener {
+    [Tooltip("The event log to add the event trigger log to")]
+    public EventLog eventLog;
+    [Tooltip("The custom key to use in the event log (if not set, the key will be the event name itself)")]
+    public string customKey;
+    [Tooltip("The custom format of the event value output (if not set, the value will be the ToString() of the value)")]
+    public string customValueFormat;
+
+    //---------------------------------------------------------------------------
+    // Overridden event listening function to add the event to the event log
+    public override void OnEventRaised(float value) {
+      eventLog.Add(string.IsNullOrEmpty(customKey) ? $"{eventToListenTo.name} Triggered" : customKey, !string.IsNullOrEmpty(customValueFormat) ? string.Format(customValueFormat, value) : value.ToString());
+      base.OnEventRaised(value);
+    }
+  }
+}
diff --git a/Event Logger/Scriptable Variables/FloatGameEventLogger.cs.meta b/Event Logger/Scriptable Variables/FloatGameEventLogger.cs.meta
new file mode 100644
index 0000000..ef7469f
--- /dev/null
+++ b/Event Logger/Scriptable Variables/FloatGameEventLogger.cs.meta	
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 5e790628a507f5d449c58dc70a429127
+timeCreated: 1510685488
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Event Logger/Scriptable Variables/GameEventLogger.cs b/Event Logger/Scriptable Variables/GameEventLogger.cs
index 7274632..2b01361 100644
--- a/Event Logger/Scriptable Variables/GameEventLogger.cs	
+++ b/Event Logger/Scriptable Variables/GameEventLogger.cs	
@@ -7,11 +7,15 @@ namespace Shared.EventLog {
   public class GameEventLogger : GameEventListener {
     [Tooltip("The event log to add the event trigger log to")]
     public EventLog eventLog;
+    [Tooltip("The custom key to use in the event log")]
+    public string customKey;
+    [Tooltip("The custom value to use in the event log")]
+    public string customValue;
 
     //---------------------------------------------------------------------------
     // Overridden event listening function to add the event to the event log
     public override void OnEventRaised() {
-      eventLog.Add(eventToListenTo.name + " Triggered", "");
+      eventLog.Add(string.IsNullOrEmpty(customKey) ? $"{eventToListenTo.name} Triggered" : customKey, string.IsNullOrEmpty(customValue) ? "" : customValue);
       base.OnEventRaised();
     }
   }
diff --git a/Event Logger/Scriptable Variables/IntGameEventLogger.cs b/Event Logger/Scriptable Variables/IntGameEventLogger.cs
new file mode 100644
index 0000000..2b058fb
--- /dev/null
+++ b/Event Logger/Scriptable Variables/IntGameEventLogger.cs	
@@ -0,0 +1,22 @@
+using UnityEngine;
+using Shared.ScriptableVariables;
+
+namespace Shared.EventLog {
+  // Logs a int game event when it is raised
+  // Depends on ScriptableVariable package
+  public class IntGameEventLogger : IntGameEventListener {
+    [Tooltip("The event log to add the event trigger log to")]
+    public EventLog eventLog;
+    [Tooltip("The custom key to use in the event log (if not set, the key will be the event name itself)")]
+    public string customKey;
+    [Tooltip("The custom format of the event value output (if not set, the value will be the ToString() of the value)")]
+    public string customValueFormat;
+
+    //---------------------------------------------------------------------------
+    // Overridden event listening function to add the event to the event log
+    public override void OnEventRaised(int value) {
+      eventLog.Add(string.IsNullOrEmpty(customKey) ? $"{eventToListenTo.name} Triggered" : customKey, !string.IsNullOrEmpty(customValueFormat) ? string.Format(customValueFormat, value) : value.ToString());
+      base.OnEventRaised(value);
+    }
+  }
+}
diff --git a/Event Logger/Scriptable Variables/IntGameEventLogger.cs.meta b/Event Logger/Scriptable Variables/IntGameEventLogger.cs.meta
new file mode 100644
index 0000000..9920d97
--- /dev/null
+++ b/Event Logger/Scriptable Variables/IntGameEventLogger.cs.meta	
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 21cd7582d990fe44a9d0987067a01d07
+timeCreated: 1510685488
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Event Logger/Scriptable Variables/StringGameEventLogger.cs b/Event Logger/Scriptable Variables/StringGameEventLogger.cs
new file mode 100644
index 0000000..5dccdfc
--- /dev/null
+++ b/Event Logger/Scriptable Variables/StringGameEventLogger.cs	
@@ -0,0 +1,22 @@
+using UnityEngine;
+using Shared.ScriptableVariables;
+
+namespace Shared.EventLog {
+  // Logs a string game event when it is raised
+  // Depends on ScriptableVariable package
+  public class StringGameEventLogger : StringGameEventListener {
+    [Tooltip("The event log to add the event trigger log to")]
+    public EventLog eventLog;
+    [Tooltip("The custom key to use in the event log (if not set, the key will be the event name itself)")]
+    public string customKey;
+    [Tooltip("The custom format of the event value output (if not set, the value will be the ToString() of the value)")]
+    public string customValueFormat;
+
+    //---------------------------------------------------------------------------
+    // Overridden event listening function to add the event to the event log
+    public override void OnEventRaised(string value) {
+      eventLog.Add(string.IsNullOrEmpty(customKey) ? $"{eventToListenTo.name} Triggered" : customKey, !string.IsNullOrEmpty(customValueFormat) ? string.Format(customValueFormat, value) : value);
+      base.OnEventRaised(value);
+    }
+  }
+}
diff --git a/Event Logger/Scriptable Variables/StringGameEventLogger.cs.meta b/Event Logger/Scriptable Variables/StringGameEventLogger.cs.meta
new file mode 100644
index 0000000..f73156c
--- /dev/null
+++ b/Event Logger/Scriptable Variables/StringGameEventLogger.cs.meta	
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 149bda40b8fd7124eb7f66dff5220467
+timeCreated: 1510685488
+licenseType: Pro
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
-- 
GitLab