diff --git a/Assets/Klak/Wiring/Basic/HSBColor.cs b/Assets/Klak/Wiring/Basic/HSBColor.cs new file mode 100644 index 0000000..adaf6a0 --- /dev/null +++ b/Assets/Klak/Wiring/Basic/HSBColor.cs @@ -0,0 +1,64 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; + +namespace Klak.Wiring +{ + [AddComponentMenu("Klak/Wiring/Convertion/HSB Color")] + public class HSBColor : NodeBase + { + #region Editable properties + + [SerializeField, Range(0, 1)] + float _hue = 0; + + [SerializeField, Range(0, 1)] + float _saturation = 1; + + [SerializeField] + float _brightness = 1; + + #endregion + + #region Node I/O + + [Inlet] + public float hue { + set { + _hue = value; + if (enabled) UpdateAndInvoke(); + } + } + + [Inlet] + public float saturation { + set { + _saturation = value; + if (enabled) UpdateAndInvoke(); + } + } + + [Inlet] + public float brightness { + set { + _brightness = value; + if (enabled) UpdateAndInvoke(); + } + } + + [SerializeField, Outlet] + ColorEvent _colorEvent = new ColorEvent(); + + #endregion + + #region Private members + + void UpdateAndInvoke() + { + _colorEvent.Invoke(Color.HSVToRGB(_hue, _saturation, _brightness)); + } + + #endregion + } +} diff --git a/Assets/Klak/Wiring/Basic/HSBColor.cs.meta b/Assets/Klak/Wiring/Basic/HSBColor.cs.meta new file mode 100644 index 0000000..7e5c5c8 --- /dev/null +++ b/Assets/Klak/Wiring/Basic/HSBColor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a163ee3cdea6cbf4ca2a23ee3f2c09c1 +timeCreated: 1492926315 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs new file mode 100644 index 0000000..4d5918e --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs @@ -0,0 +1,45 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; +using UnityEditor; + +namespace Klak.Wiring +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(HSBColor))] + public class HSBColorEditor : Editor + { + SerializedProperty _hue; + SerializedProperty _saturation; + SerializedProperty _brightness; + SerializedProperty _colorEvent; + + static GUIContent _textHue = new GUIContent("Initial Hue"); + static GUIContent _textSaturation = new GUIContent("Initial Saturation"); + static GUIContent _textBrightness = new GUIContent("Initial Brightness"); + + void OnEnable() + { + _hue = serializedObject.FindProperty("_hue"); + _saturation = serializedObject.FindProperty("_saturation"); + _brightness = serializedObject.FindProperty("_brightness"); + _colorEvent = serializedObject.FindProperty("_colorEvent"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_hue, _textHue); + EditorGUILayout.PropertyField(_saturation, _textSaturation); + EditorGUILayout.PropertyField(_brightness, _textBrightness); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(_colorEvent); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta new file mode 100644 index 0000000..e85925f --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Basic/HSBColorEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 10a8b6e76ed666049beaa7a4113e5b23 +timeCreated: 1492926314 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs new file mode 100644 index 0000000..63d68ae --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs @@ -0,0 +1,37 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; +using UnityEditor; + +namespace Klak.Wiring +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(BangFilter))] + public class BangFilterEditor : Editor + { + SerializedProperty _state; + SerializedProperty _bangEvent; + + static GUIContent _textInitialState = new GUIContent("Opened"); + + void OnEnable() + { + _state = serializedObject.FindProperty("_state"); + _bangEvent = serializedObject.FindProperty("_bangEvent"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_state, _textInitialState); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(_bangEvent); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta new file mode 100644 index 0000000..43ac03b --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Filter/BangFilterEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0dbd16654bd96b24d8b9906b6fd2f29f +timeCreated: 1492926314 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs new file mode 100644 index 0000000..98059d7 --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs @@ -0,0 +1,41 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; +using UnityEditor; + +namespace Klak.Wiring +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(RandomValue))] + public class RandomValueEditor : Editor + { + SerializedProperty _minimum; + SerializedProperty _maximum; + SerializedProperty _sendOnStartUp; + SerializedProperty _outputEvent; + + void OnEnable() + { + _minimum = serializedObject.FindProperty("_minimum"); + _maximum = serializedObject.FindProperty("_maximum"); + _sendOnStartUp = serializedObject.FindProperty("_sendOnStartUp"); + _outputEvent = serializedObject.FindProperty("_outputEvent"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_minimum); + EditorGUILayout.PropertyField(_maximum); + EditorGUILayout.PropertyField(_sendOnStartUp); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(_outputEvent); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta new file mode 100644 index 0000000..b862a79 --- /dev/null +++ b/Assets/Klak/Wiring/Editor/Input/RandomValueEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2c12f8afc0508fc42a737a2054ed3ea6 +timeCreated: 1492926314 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Klak/Wiring/Filter/BangFilter.cs b/Assets/Klak/Wiring/Filter/BangFilter.cs new file mode 100644 index 0000000..6c12c0e --- /dev/null +++ b/Assets/Klak/Wiring/Filter/BangFilter.cs @@ -0,0 +1,43 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; + +namespace Klak.Wiring +{ + [AddComponentMenu("Klak/Wiring/Filter/Bang Filter")] + public class BangFilter : NodeBase + { + #region Editable properties + + [SerializeField] + bool _state; + + #endregion + + #region Node I/O + + [Inlet] + public void Bang() + { + if (_state) _bangEvent.Invoke(); + } + + [Inlet] + public void Open() + { + _state = true; + } + + [Inlet] + public void Close() + { + _state = false; + } + + [SerializeField, Outlet] + VoidEvent _bangEvent = new VoidEvent(); + + #endregion + } +} diff --git a/Assets/Klak/Wiring/Filter/BangFilter.cs.meta b/Assets/Klak/Wiring/Filter/BangFilter.cs.meta new file mode 100644 index 0000000..f87fe9d --- /dev/null +++ b/Assets/Klak/Wiring/Filter/BangFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4169d4e098bab3b4dadc3895be988f70 +timeCreated: 1492926314 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Klak/Wiring/Input/RandomValue.cs b/Assets/Klak/Wiring/Input/RandomValue.cs new file mode 100644 index 0000000..b30b479 --- /dev/null +++ b/Assets/Klak/Wiring/Input/RandomValue.cs @@ -0,0 +1,48 @@ +// Klak - Creative coding library for Unity +// https://github.com/keijiro/Klak + +using UnityEngine; + +namespace Klak.Wiring +{ + [AddComponentMenu("Klak/Wiring/Input/Random Value")] + public class RandomValue : NodeBase + { + #region Editable properties + + [SerializeField] + float _minimum = 0; + + [SerializeField] + float _maximum = 1; + + [SerializeField] + bool _sendOnStartUp = false; + + #endregion + + #region Node I/O + + [Inlet] + public void Bang() + { + if (!enabled) return; + + _outputEvent.Invoke(Random.Range(_minimum, _maximum)); + } + + [SerializeField, Outlet] + FloatEvent _outputEvent = new FloatEvent(); + + #endregion + + #region MonoBehaviour functions + + void Start() + { + if (_sendOnStartUp) Bang(); + } + + #endregion + } +} diff --git a/Assets/Klak/Wiring/Input/RandomValue.cs.meta b/Assets/Klak/Wiring/Input/RandomValue.cs.meta new file mode 100644 index 0000000..8df8bc6 --- /dev/null +++ b/Assets/Klak/Wiring/Input/RandomValue.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f4fa215cb6f538043b9a260fea65bebc +timeCreated: 1492926316 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: