diff --git a/Assembly-CSharp-vs.csproj b/Assembly-CSharp-vs.csproj new file mode 100644 index 0000000..18f9daa --- /dev/null +++ b/Assembly-CSharp-vs.csproj @@ -0,0 +1,114 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42} + Library + Properties + + Assembly-CSharp + v3.5 + 512 + + + true + full + false + Temp\bin\Debug\ + DEBUG;TRACE;UNITY_3_4_2;UNITY_3_4;UNITY_EDITOR;ENABLE_PROFILER;UNITY_STANDALONE_OSX;ENABLE_GENERICS;ENABLE_DUCK_TYPING;ENABLE_TERRAIN;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CLOTH;ENABLE_WWW + prompt + 4 + 0169 + + + pdbonly + true + Temp\bin\Release\ + TRACE + prompt + 4 + 0169 + + + + + + + C:/Program Files (x86)/Unity/Editor/Data/Managed/UnityEngine.dll + + + C:/Program Files (x86)/Unity/Editor/Data/Managed/UnityEditor.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj new file mode 100644 index 0000000..18f9daa --- /dev/null +++ b/Assembly-CSharp.csproj @@ -0,0 +1,114 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42} + Library + Properties + + Assembly-CSharp + v3.5 + 512 + + + true + full + false + Temp\bin\Debug\ + DEBUG;TRACE;UNITY_3_4_2;UNITY_3_4;UNITY_EDITOR;ENABLE_PROFILER;UNITY_STANDALONE_OSX;ENABLE_GENERICS;ENABLE_DUCK_TYPING;ENABLE_TERRAIN;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CLOTH;ENABLE_WWW + prompt + 4 + 0169 + + + pdbonly + true + Temp\bin\Release\ + TRACE + prompt + 4 + 0169 + + + + + + + C:/Program Files (x86)/Unity/Editor/Data/Managed/UnityEngine.dll + + + C:/Program Files (x86)/Unity/Editor/Data/Managed/UnityEditor.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly-CSharp.pidb b/Assembly-CSharp.pidb new file mode 100644 index 0000000..a655c5a Binary files /dev/null and b/Assembly-CSharp.pidb differ diff --git a/Assets/Assets/GUILib_Test_Material/GUIMaterial.mat b/Assets/Assets/GUILib_Test_Material/GUIMaterial.mat new file mode 100755 index 0000000..d537a8f Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/GUIMaterial.mat differ diff --git a/Assets/Assets/GUILib_Test_Material/colorGrid.png b/Assets/Assets/GUILib_Test_Material/colorGrid.png new file mode 100755 index 0000000..aeeab39 Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/colorGrid.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_credits.png b/Assets/Assets/GUILib_Test_Material/menu_credits.png new file mode 100755 index 0000000..41e88fb Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_credits.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_credits_active.png b/Assets/Assets/GUILib_Test_Material/menu_credits_active.png new file mode 100755 index 0000000..7baba52 Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_credits_active.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_highscore.png b/Assets/Assets/GUILib_Test_Material/menu_highscore.png new file mode 100755 index 0000000..ae31b1f Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_highscore.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_highscore_active.png b/Assets/Assets/GUILib_Test_Material/menu_highscore_active.png new file mode 100755 index 0000000..1f6cc5d Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_highscore_active.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_mypux.png b/Assets/Assets/GUILib_Test_Material/menu_mypux.png new file mode 100755 index 0000000..5d98190 Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_mypux.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_mypux_active.png b/Assets/Assets/GUILib_Test_Material/menu_mypux_active.png new file mode 100755 index 0000000..9856208 Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_mypux_active.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_play.png b/Assets/Assets/GUILib_Test_Material/menu_play.png new file mode 100755 index 0000000..e269aac Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_play.png differ diff --git a/Assets/Assets/GUILib_Test_Material/menu_top.png b/Assets/Assets/GUILib_Test_Material/menu_top.png new file mode 100755 index 0000000..31bec92 Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/menu_top.png differ diff --git a/Assets/Assets/GUILib_Test_Material/white.png b/Assets/Assets/GUILib_Test_Material/white.png new file mode 100755 index 0000000..f476f9d Binary files /dev/null and b/Assets/Assets/GUILib_Test_Material/white.png differ diff --git a/Assets/Materials/guiPlane-No Name.mat b/Assets/Materials/guiPlane-No Name.mat new file mode 100755 index 0000000..19c7730 Binary files /dev/null and b/Assets/Materials/guiPlane-No Name.mat differ diff --git a/Assets/Scenes/GUILib.unity b/Assets/Scenes/GUILib.unity new file mode 100755 index 0000000..25cc96c Binary files /dev/null and b/Assets/Scenes/GUILib.unity differ diff --git a/Assets/Scenes/GUILib_testPlanes.unity b/Assets/Scenes/GUILib_testPlanes.unity new file mode 100755 index 0000000..a2f217a Binary files /dev/null and b/Assets/Scenes/GUILib_testPlanes.unity differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/GUIMaterial.mat b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/GUIMaterial.mat new file mode 100755 index 0000000..d537a8f Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/GUIMaterial.mat differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/colorGrid.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/colorGrid.png new file mode 100755 index 0000000..aeeab39 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/colorGrid.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits.png new file mode 100755 index 0000000..41e88fb Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits_active.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits_active.png new file mode 100755 index 0000000..7baba52 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_credits_active.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore.png new file mode 100755 index 0000000..ae31b1f Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore_active.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore_active.png new file mode 100755 index 0000000..1f6cc5d Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_highscore_active.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux.png new file mode 100755 index 0000000..5d98190 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux_active.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux_active.png new file mode 100755 index 0000000..9856208 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_mypux_active.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_play.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_play.png new file mode 100755 index 0000000..e269aac Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_play.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_top.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_top.png new file mode 100755 index 0000000..31bec92 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/menu_top.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/white.png b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/white.png new file mode 100755 index 0000000..f476f9d Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/GUILib_Test_Material/white.png differ diff --git a/Assets/Scripts/GUI_Module/Assets/Media/Materials/guiPlane-No Name.mat b/Assets/Scripts/GUI_Module/Assets/Media/Materials/guiPlane-No Name.mat new file mode 100755 index 0000000..19c7730 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/Media/Materials/guiPlane-No Name.mat differ diff --git a/Assets/Scripts/GUI_Module/Assets/Media/guiPlane.dae b/Assets/Scripts/GUI_Module/Assets/Media/guiPlane.dae new file mode 100755 index 0000000..2fc87e9 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Assets/Media/guiPlane.dae @@ -0,0 +1,77 @@ + + + + + Blender User + Blender 2.60.0 r41226 + + 2011-11-11T13:23:13 + 2011-11-11T13:23:13 + + Z_UP + + + + + + + + + 1 1 0 1 -1 0 -1 -0.9999998 0 -0.9999997 1 0 + + + + + + + + + + 0 0 1 + + + + + + + + + + 1 1 0 1 0 0 1 0 + + + + + + + + + + + + + + + 4 +

0 0 0 3 0 1 2 0 2 1 0 3

+
+
+ 1 +
+
+ + + + 0 0 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 1 1 1 + + + + + + + +
\ No newline at end of file diff --git a/Assets/Scripts/GUI_Module/Assets/Resources/TextMesh.prefab b/Assets/Scripts/GUI_Module/Assets/Resources/TextMesh.prefab new file mode 100755 index 0000000..e1ca414 Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/Resources/TextMesh.prefab differ diff --git a/Assets/Scripts/GUI_Module/Assets/Resources/guiPlane.prefab b/Assets/Scripts/GUI_Module/Assets/Resources/guiPlane.prefab new file mode 100755 index 0000000..512666c Binary files /dev/null and b/Assets/Scripts/GUI_Module/Assets/Resources/guiPlane.prefab differ diff --git a/Assets/Scripts/GUI_Module/Behaviours/AnimatedUVBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/AnimatedUVBehaviour.cs new file mode 100755 index 0000000..06b89b2 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/AnimatedUVBehaviour.cs @@ -0,0 +1,93 @@ +using UnityEngine; +using System.Collections; + +public class AnimatedUVBehaviour : UVMoveBehaviour { + + public int MovieSpeedFPS; + public int FrameSizeX; + public int FrameSizeY; + public int TotalFramesCount; + public int RowCount; + public int ColumnCount; + public Texture2D[] Textures; + + private float frameTime; + private int currentFrameNumber; + private int currentRow; + private int currentColoum; + private int currentTexture; + private int framesPerTexture; + //private int textureSize; + private bool changeTexture; + + // Use this for initialization + void Start () { + StartOverride(); + + } + + protected override void StartOverride(){ + base.StartOverride(); + //textureSize = mainTexture.height; + //AbsoluteUVPosition = true; + + } + + void Awake(){ + AwakeOverride(); + } + protected override void AwakeOverride(){ + base.AwakeOverride(); + frameTime = 0; + currentFrameNumber = 0; + currentRow = 0; + currentColoum = 0; + currentTexture = 0; + framesPerTexture= ColumnCount * RowCount; + changeTexture = false; + + } + + // Update is called once per frame + /*void Update () { + + }*/ + + + void FixedUpdate(){ + + frameTime += Time.deltaTime; + + if(frameTime > (1.0f/MovieSpeedFPS)){ // change frame + + var framesPlayed = (int)(frameTime*MovieSpeedFPS); + currentFrameNumber = (currentFrameNumber + framesPlayed) % TotalFramesCount; + frameTime -= framesPlayed/MovieSpeedFPS; + changeFrame(); + + + } + } + + private void changeFrame(){ + + newUvs = new Rect(FrameSizeX*(currentColoum),FrameSizeY*(currentRow*-1) , 1,1); + if(changeTexture){ + //EditorDebug.LogWarning("ChangeTExture"); + renderer.material.SetTexture("_MainTex", Textures[currentTexture]); + changeTexture = false; + } + + + currentRow = (int)(currentFrameNumber%framesPerTexture)/ColumnCount; + currentColoum = (int)(currentFrameNumber%framesPerTexture)/RowCount; + int oldTexture = currentTexture; + currentTexture = (int)(currentFrameNumber/framesPerTexture); + if(oldTexture != currentTexture) + changeTexture = true; + + + //EditorDebug.Log("New UVs: " + newUvs + "Row: " + currentRow + "Coloumn: " + currentColoum); + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/DropDownElementBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/DropDownElementBehaviour.cs new file mode 100755 index 0000000..b379eaf --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/DropDownElementBehaviour.cs @@ -0,0 +1,63 @@ +using UnityEngine; +using System.Collections; + +public class DropDownElementBehaviour : InteractionBehaviour { + + private DropDownMenu containingDropDownElement; + private Frame frame; + public string Identifier; + + + protected override void AwakeOverride (){ + base.AwakeOverride (); + initDropDownElement(); + initGUIElement(); + if(Identifier == string.Empty) + Identifier = gameObject.name; + } + + private void initGUIElement(){ + frame = this.GetComponent(); + if(frame == null) + EditorDebug.LogError("DropDownElement: " + gameObject.name + " is not attached to an GUIElement"); + } + private void initDropDownElement(){ + GameObject obj = this.gameObject; + GameObject savedObj = obj; + GameObject savedParent = null; + DropDownMenu menu = null; + while(obj != null){ + menu = obj.GetComponent(); + if( menu != null){ + break; + } + + if(obj.transform.parent != null) + savedParent = obj.transform.parent.gameObject; + else + savedParent = null; + obj = savedParent; + } + if(menu == null){ + EditorDebug.LogWarning("Element: " + savedObj.gameObject.name + " is not a child of a DropDownMenu!"); + } + containingDropDownElement = menu; + } + + + public override void Click (MouseEventArgs mouse){ + EditorDebug.Log("DropDownElement clicked"); + base.Click (mouse); + if(containingDropDownElement == null){ + initDropDownElement(); + if(containingDropDownElement == null){ + EditorDebug.LogError("DropDownElement : " + gameObject.name + " has no DropDownElement as Parent"); + return; + } + + } + containingDropDownElement.Selected = frame; + containingDropDownElement.ToggleContentVisibility(); + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/HorizontalLayoutBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/HorizontalLayoutBehaviour.cs new file mode 100755 index 0000000..db1e145 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/HorizontalLayoutBehaviour.cs @@ -0,0 +1,15 @@ +using UnityEngine; +using System.Collections; + +public class HorizontalLayoutBehaviour : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/ILayoutBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/ILayoutBehaviour.cs new file mode 100755 index 0000000..fd423d7 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/ILayoutBehaviour.cs @@ -0,0 +1,15 @@ +using UnityEngine; +using System.Collections; + +public class ILayoutBehaviour : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/InteractionBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/InteractionBehaviour.cs new file mode 100755 index 0000000..e03b7b2 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/InteractionBehaviour.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using System.Collections; + +public class InteractionBehaviour : MonoBehaviour{ + + // DONT USE THIS + void Awake(){ + AwakeOverride(); + } + + // USE THIS FOR INITIALISATION + protected virtual void AwakeOverride(){ + + } + + public virtual void Click(MouseEventArgs mouse){} + public virtual void Hover(MouseEventArgs mouse){} + public virtual void Down(MouseEventArgs mouse){} + public virtual void Up(MouseEventArgs mouse){} + public virtual void Move(MouseEventArgs mouse){} + public virtual void Swipe(MouseEventArgs mouse){} + public virtual void TextChanged(string newText){} + +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/LayoutBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/LayoutBehaviour.cs new file mode 100755 index 0000000..bef2ff6 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/LayoutBehaviour.cs @@ -0,0 +1,15 @@ +using UnityEngine; +using System.Collections; + +public class LayoutBehaviour : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/OpenDropDownMenuBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/OpenDropDownMenuBehaviour.cs new file mode 100755 index 0000000..cad84f7 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/OpenDropDownMenuBehaviour.cs @@ -0,0 +1,13 @@ +using UnityEngine; +using System.Collections; + +public class OpenDropDownMenuBehaviour : InteractionBehaviour { + + public DropDownMenu DropDown; + + public override void Click (MouseEventArgs mouse){ + base.Click (mouse); + DropDown.ToggleContentVisibility(); + + } +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/UVMoveBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/UVMoveBehaviour.cs new file mode 100755 index 0000000..aaa8c93 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/UVMoveBehaviour.cs @@ -0,0 +1,134 @@ +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; + +public class UVMoveBehaviour : MonoBehaviour { + + public Rect newUvs{ + get{ + return currentUvs; + } + set{ + currentUvs = value; + updateCurrentUV(); + } + } + + //public bool AbsoluteUVPosition = false; + + protected Texture mainTexture; + + private Rect currentUvs; + private MeshFilter meshFilter; + private List originalUVs; + private bool disabled = true; + + void Start(){ + StartOverride(); + } + + protected virtual void StartOverride(){ + if(mainTexture == null) + initMainTexture(); + } + void Awake(){ + AwakeOverride(); + } + + protected virtual void AwakeOverride(){ + + newUvs = new Rect(0,0,0,0); + disabled = false; + loadMesh(); + initMainTexture(); + if(!disabled) + storeUvs(); + } + + private void initMainTexture(){ + mainTexture = meshFilter.renderer.material.GetTexture("_MainTex"); + if(mainTexture == null){ + EditorDebug.LogWarning("No Texture set for UVMoveBehaviour on: " + gameObject.name); + } + } + + private void storeUvs(){ + var uvs = meshFilter.mesh.uv; + originalUVs = new List(); + for(int i=0; i< uvs.Length; i++){ + Vector2 uv = uvs[i]; + originalUVs.Add(uv); + } + + } + private void loadMesh(){ + meshFilter = gameObject.GetComponent() as MeshFilter; + if(meshFilter == null){ + meshFilter = gameObject.GetComponentInChildren() as MeshFilter; + } + if(meshFilter == null){ + EditorDebug.LogError("No Meshfound for UVMoveBehaviour on Object: " + gameObject.name); + disabled = true; + + } + + } + + private void updateCurrentUV(){ + if(disabled) + return; + + var uvs = meshFilter.mesh.uv; + for(int i=0; i< originalUVs.Count; i++){ + + Vector2 uv = originalUVs[i]; + Vector2 normPos = toUVSpace(new Vector2(newUvs.x, newUvs.y)); + //EditorDebug.Log("NormPos: " + normPos.x + " " + normPos.y); + /*if(AbsoluteUVPosition){ + Vector2 diff = uv - normPos; + uv.x -= normPos.x; + uv.y -= normPos.y; + float factorX = newUvs.width / mainTexture.width; + float factorY = newUvs.height / mainTexture.height; + uv.x *= factorX; + uv.y *= factorY; + + //EditorDebug.Log("Factor: " + factorX); + EditorDebug.Log(i + " UV.x: " + uv.x); + // verschieben auf null / null + + // skalier dann + // zurück verschieben + + } else {*/ + + //EditorDebug.Log(i + " Before UV: " + uv.x + " " + uv.y); + uv.x += normPos.x; + uv.y += normPos.y; + uv.x *= newUvs.width; + uv.y *= newUvs.height; + + //EditorDebug.Log(i + " UV: " + uv.x + " " + uv.y); + + + + uvs[i] = uv; + + } + meshFilter.mesh.uv = uvs; + } + + private Vector2 toUVSpace(Vector2 xy){ + if(Math.Abs(xy.x) < 1 && Math.Abs(xy.y) < 1) + return xy; + + if(mainTexture == null) + initMainTexture(); + + var p = new Vector2(xy.x / ((float)mainTexture.width), xy.y / ((float)mainTexture.height)); + return p; + } + + +} diff --git a/Assets/Scripts/GUI_Module/Behaviours/VerticalLayoutBehaviour.cs b/Assets/Scripts/GUI_Module/Behaviours/VerticalLayoutBehaviour.cs new file mode 100755 index 0000000..dae0364 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Behaviours/VerticalLayoutBehaviour.cs @@ -0,0 +1,15 @@ +using UnityEngine; +using System.Collections; + +public class VerticalLayoutBehaviour : MonoBehaviour { + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + + } +} diff --git a/Assets/Scripts/GUI_Module/Configs/ScreenConfig.cs b/Assets/Scripts/GUI_Module/Configs/ScreenConfig.cs new file mode 100755 index 0000000..3540e27 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Configs/ScreenConfig.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using System.Collections; + +public class ScreenConfig : MonoBehaviour { + + public int TargetScreenWidth = 960; + public int TargetScreenHeight = 640; + public double SwipeMinTime = 0.01; + public float SwipeMinDistance = 150; + + public float ScreenAspect{ + get; + private set; + } + public int[] FontSizes; + public Font[] Fonts; + + public static ScreenConfig Instance{ + get; + private set; + } + + void Awake(){ + Instance = this; + ScreenAspect = (float)TargetScreenWidth / (float)TargetScreenHeight; + } + + + + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/AlertTextPanel.cs b/Assets/Scripts/GUI_Module/Elements/AlertTextPanel.cs new file mode 100755 index 0000000..3c8f3cc --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/AlertTextPanel.cs @@ -0,0 +1,85 @@ +using UnityEngine; +using System.Collections; +using System; +public class AlertTextPanel : TextPanel { + + public int ShowTimeInSeconds = 8; + + public string help_alert = "ONLY IN EditorDebugMODUS:"; + public bool ShowAlways; + + protected bool textShow = false; + public Timer HidingTimer{ + get{ + return localTimer; + } + private set{ + localTimer = value; + } + + } + + private Timer localTimer; + + void Awake(){ + AwakeOverride(); + } + + void Start(){ + StartOverride(); + } + + protected override void AwakeOverride(){ + base.AwakeOverride(); + initTimer(); + + + } + + private void initTimer(){ + if(HidingTimer == null) + HidingTimer = new Timer(ShowTimeInSeconds); + HidingTimer.TimerFinished += OnTimerFinished; + } + + + void Update(){ + UpdateOverride(); + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + Visibility = textShow; +#if UNITY_EDITOR + Visibility |= ShowAlways; +#endif + } + + void OnGUI(){ + OnGUIOverride(); + } + + protected override void OnGUIOverride(){ + if(textShow || ShowAlways){ + base.OnGUIOverride(); + } + } + + public void ShowText(string value){ + ShowText(value, ShowTimeInSeconds); + } + + public void ShowText(string value, float time){ + initTimer(); + textShow = true; + Text = value; + HidingTimer.StartTimer(time); + } + public void HideText(){ + textShow = false; + } + + private void OnTimerFinished(object sender, EventArgs e){ + textShow = false; + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/Button.cs b/Assets/Scripts/GUI_Module/Elements/Button.cs new file mode 100755 index 0000000..4ce48f7 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Button.cs @@ -0,0 +1,60 @@ +using UnityEngine; +using System.Collections; + +public class Button : Control { + + public Rect hoverUV; + public Rect activeUV; + + // Two Bools to emulate Hover and Active for better Texture placing + public bool ConstantHover; + public bool ConstantActive; + + protected bool down = false; + + + public override void OnClick(object sender, MouseEventArgs e){ + base.OnClick(sender,e); + + } + + public override void OnDown(object sender, MouseEventArgs e){ + + base.OnDown(sender,e); + down = true; + plane.UV = activeUV; + + + } + + public override void OnUp(object sender, MouseEventArgs e){ + if(down){ + base.OnUp(sender,e); + down = false; + plane.UV = Uv; + } + } + + public override void OnHover(object sender, MouseEventArgs e){ + //EditorDebug.Log("HOVER: " + gameObject.name); + base.OnHover(sender,e); + if(!down) + plane.UV = hoverUV; + } + + public override void resetElement(){ + if(!down && plane != null){ + plane.UV = Uv; +#if UNITY_EDITOR + if(ConstantHover) + plane.UV = hoverUV; + if(ConstantActive) + plane.UV = activeUV; +#endif + } + } + + + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/CameraScreen.cs b/Assets/Scripts/GUI_Module/Elements/CameraScreen.cs new file mode 100755 index 0000000..7bd73af --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/CameraScreen.cs @@ -0,0 +1,204 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class CameraScreen : Frame { + + // If EditorDebugModus is checked, ScreenPosition is update every OnGUI call this is usefull for positioning elements + // but not good for the framerate + public bool DebugModus; + public int TextureSize = 512; + public Material GUIMaterial; + + // Public Member - init in the inspector + public Camera ScreenCamera; + + + // Propertys + public static Vector2 mousePosition{ + get{ + return PhysicalToVirtualScreenPosition(Input.mousePosition); + } + } + + private Panel[] allChildren{ + get{ + return (gameObject.GetComponentsInChildren() as Panel[]); + } + } + + // DONT USE THIS + void Awake(){ + AwakeOverride(); + } + + protected override void AwakeOverride(){ + base.AwakeOverride(); + } + + void Start(){ + StartOverride(); + } + + protected override void StartOverride(){ + base.StartOverride(); + CreateElement(); + + initEvents(); + } + + private void initEvents(){ + InputEvents.Instance.ClickEvent += OnClick; + InputEvents.Instance.MoveEvent += OnMove; + InputEvents.Instance.MoveEvent += OnHover; + InputEvents.Instance.DownEvent += OnDown; + InputEvents.Instance.UpEvent += OnUp; + InputEvents.Instance.SwipeEvent += OnSwipe; + } + + +#if UNITY_EDITOR + void Update(){ + UpdateOverride(); + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + + if(DebugModus) + UpdateElement(); + + } +#endif + + public override void UpdateElement(){ + this.RealRegionOnScreen = GetPhysicalRegionFromRect(VirtualRegionOnScreen,KeepAspectRatio); + } + private static Vector2 getFactor(bool withAspect = true){ + // Get the right Hight and Width proportional to screen + float rightAspectHeight = Screen.height; + float rightAspectWidth = Screen.width; + float aspectRatio = (float)(Screen.width) / Screen.height; + if(withAspect && aspectRatio < ScreenConfig.Instance.ScreenAspect){ + rightAspectHeight = (float)(Screen.width) / ScreenConfig.Instance.ScreenAspect; + } else if(withAspect && aspectRatio > ScreenConfig.Instance.ScreenAspect){ + rightAspectWidth = (float)(Screen.height) * ScreenConfig.Instance.ScreenAspect; + } + + float factorY = rightAspectHeight / (float)(ScreenConfig.Instance.TargetScreenHeight); + float factorX = rightAspectWidth / (float)(ScreenConfig.Instance.TargetScreenWidth); + return new Vector2(factorX, factorY); + } + + + public Rect GetPhysicalRegionFromRect(Rect rect, bool withAspect = true){ + Rect camPosition = ScreenCamera.pixelRect; + // Move Camera is needed for Splitscreen + if(((int)ScreenCamera.pixelHeight) != Screen.height){ + //EditorDebug.Log("ScreenCamera Height: " + ScreenCamera.pixelHeight + "\n Screen Height: " + Screen.height); + camPosition.y = ScreenCamera.pixelHeight - camPosition.y; + } + + Vector2 factor = getFactor(withAspect); + Vector2 newPosition = new Vector2((camPosition.x+rect.x)*factor.x, (camPosition.y + rect.y)*factor.y); + Vector2 newSize = new Vector2(rect.width*factor.x,rect.height*factor.y); + + return new Rect ( newPosition.x, newPosition.y, newSize.x, newSize.y ); + } + + + + + + + public static int GetPhysicalTextSize(int size) { + Vector2 factor = getFactor(); + return (int)(size * factor.y); + } + + protected override void callHandler(InteractionEvent interaction, ActionEvent action){ + InteractionBehaviour[] behaviours = gameObject.GetComponents() as InteractionBehaviour[]; + foreach(InteractionBehaviour ib in behaviours){ + interaction(ib); + } + base.callHandler(interaction, action); + } + + private void createElements(){ + foreach(Panel box in allChildren){ + box.createGUIElement(); + } + } + + // STATIC FUNCTIONS + public static bool cursorInside(Vector2 elementPosition, Vector2 elementSize) { + bool flagX = false; + bool flagY = false; + + if (mousePosition.x >= elementPosition.x && (mousePosition.x <= (elementPosition.x + elementSize.x))) + flagX = true; + if (mousePosition.y >= elementPosition.y && (mousePosition.y <= (elementPosition.y + elementSize.y))) + flagY = true; + return (flagX && flagY); + } + + public static bool CursorInsidePhysicalRegion(Vector2 elementPosition, Vector2 elementSize){ + bool flagX = false; + bool flagY = false; + + Vector2 mouse = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y); + if (mouse.x >= elementPosition.x && (mouse.x <= (elementPosition.x + elementSize.x))) + flagX = true; + if (mouse.y >= elementPosition.y && (mouse.y <= (elementPosition.y + elementSize.y))) + flagY = true; + return (flagX && flagY); + } + + public static bool CursorInsidePhysicalRegion(Rect physicalRegion){ + return CursorInsidePhysicalRegion(new Vector2(physicalRegion.x, physicalRegion.y), new Vector2(physicalRegion.width, physicalRegion.height)); + } + + + public static bool cursorInside(Rect region){ + return cursorInside(new Vector2(region.x, region.y), new Vector2(region.width, region.height)); + } + + public static CameraScreen GetScreenForObject(GameObject obj){ + GameObject savedObj = obj; + GameObject savedParent = null; + CameraScreen screen = null; + while(obj != null){ + screen = obj.GetComponent(); + if( screen != null){ + break; + } + + if(obj.transform.parent != null) + savedParent = obj.transform.parent.gameObject; + else + savedParent = null; + obj = savedParent; + } + if(screen == null){ + EditorDebug.LogWarning("Element: " + savedObj.gameObject.name + " is not a child of a Screen!"); + } + return screen; + + + } + + public static Vector2 PhysicalToVirtualScreenPosition(Vector2 screenPosition){ + //float factorY = (float)(Screen.height) / (float)(ScreenConfig.Instance.TargetScreenHeight); + var factor = getFactor(); + //float factorX = (float)(Screen.width) / (float)(ScreenConfig.Instance.TargetScreenWidth); + //float factorY = factorX / ScreenConfig.Instance.ScreenAspect; + //screenPosition.y = Screen.height - screenPosition.y; + screenPosition.x /= factor.x; + screenPosition.y /= factor.y; + return screenPosition; + } + + + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/CheckBox.cs b/Assets/Scripts/GUI_Module/Elements/CheckBox.cs new file mode 100755 index 0000000..e5f6504 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/CheckBox.cs @@ -0,0 +1,59 @@ +using UnityEngine; +using System.Collections; +using System; + +public class CheckBox : Control { + + public Rect ActiveUV; + public Rect HoverUV; + + public event EventHandler CheckboxStatusChanged; + + public bool Checked{ + get{ + return checkedFlag; + } + + set{ + checkedFlag = value; + if(!checkedFlag) + resetElement(); + else{ + if(plane != null) + plane.UV = ActiveUV; + } + } + } + + private bool checkedFlag; + + protected override void AwakeOverride (){ + base.AwakeOverride (); + Checked = false; + } + + + public override void OnClick (object sender, MouseEventArgs e){ + base.OnClick (sender, e); + Checked = !Checked; + InvokeCheckboxStatusChanged(); + } + + + public override void resetElement (){ + if(!checkedFlag) + base.resetElement (); + + + } + + private void InvokeCheckboxStatusChanged(){ + var handler = CheckboxStatusChanged; + if (handler == null) { + return; + } + + var e = new CheckBoxEventArgs(this); + CheckboxStatusChanged(this, e); + } +} \ No newline at end of file diff --git a/Assets/Scripts/GUI_Module/Elements/Control.cs b/Assets/Scripts/GUI_Module/Elements/Control.cs new file mode 100755 index 0000000..4c7d090 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Control.cs @@ -0,0 +1,73 @@ +using UnityEngine; +using System.Collections; + +public class Control : Panel { + + // Show Active Region is an EditorDebug Option that makes the active array visible + public bool ShowActiveRegion = false; + public Rect ActiveRegion; + protected Rect realActiveRegion; + + void Awake(){ + AwakeOverride(); + } + protected override void AwakeOverride(){ + base.AwakeOverride(); + + } + + void Start () { + + } + + public override void createGUIElement(){ + base.createGUIElement(); + } + + void OnGUI(){ +#if UNITY_EDITOR + if(ShowActiveRegion){ + initActiveRegion(); + UnityEngine.GUI.Box(realActiveRegion, ""); + } +#endif + } + + public override void CreateElement (){ + base.CreateElement (); + initActiveRegion(); + } + public override bool checkMouseOverElement(){ + if(ShowActiveRegion) + initActiveRegion(); + if(!this.Visibility) + return false; + + //Rect t = new Rect(VirtualRegionOnScreen.x+ ActiveRegion.x, + // VirtualRegionOnScreen.y + ActiveRegion.y, ActiveRegion.width, ActiveRegion.height); + + return CameraScreen.CursorInsidePhysicalRegion(realActiveRegion); + } + + public override void UpdateElement(){ + base.UpdateElement(); + initActiveRegion(); + + } + // Caclulate the Absolute Values on the physical screen - because ActiveRegion is virtual an relative to the Control Position + + private void initActiveRegion(){ + if(activeScreen == null){ + EditorDebug.LogWarning("ActiveScreen is not set on Object: " + gameObject.name); + return; + } + var activeRegion = activeScreen.GetPhysicalRegionFromRect(ActiveRegion, KeepAspectRatio); + realActiveRegion = new Rect(RealRegionOnScreen.x + activeRegion.x , RealRegionOnScreen.y + activeRegion.y, activeRegion.width, activeRegion.height); + /*realActiveRegion = new Rect(VirtualRegionOnScreen.x+ ActiveRegion.x, + VirtualRegionOnScreen.y + ActiveRegion.y, ActiveRegion.width, ActiveRegion.height); + realActiveRegion = activeScreen.GetPhysicalRegionFromRect(realActiveRegion); + var position = activeScreen.GetFloatingPosition(); + realActiveRegion = new Rect(position.x, position.y, RealRegionOnScreen.width, RealRegionOnScreen.height);*/ + } + +} diff --git a/Assets/Scripts/GUI_Module/Elements/DropDownMenu.cs b/Assets/Scripts/GUI_Module/Elements/DropDownMenu.cs new file mode 100755 index 0000000..8340f60 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/DropDownMenu.cs @@ -0,0 +1,77 @@ +using UnityEngine; +using System.Collections; + +public class DropDownMenu : Frame { + + public RolloutPanel Content; + public Rect CurrentElementRegion; + public bool InitialOpen; + public Frame InitalSelectedObject; + + public Frame Selected{ + get{ + return currentSelection; + } + set{ + oldSelection = currentSelection; + currentSelection = value; + Select(currentSelection); + } + } + private Frame currentSelection; + private Frame oldSelection; + + private void Select(Frame element){ + int count = 0; + foreach(var frame in Content.DirectChildren){ + if(frame == element) + break; + count++; + } + Select(count); + } + + private void Select(int index){ + if(oldSelection != null) + Destroy(oldSelection.gameObject); + + var obj = Instantiate(Content.DirectChildren[index].gameObject) as GameObject; + currentSelection = obj.GetComponent() as Frame; + var DropDownBehaviour = currentSelection.gameObject.GetComponent() as DropDownElementBehaviour; + if(DropDownBehaviour != null) + Destroy(DropDownBehaviour); + + currentSelection.activeScreen = this.activeScreen; + //currentSelection.UpdateActiveScreen(); + currentSelection.Visibility = true; + currentSelection.gameObject.transform.parent = this.gameObject.transform; + currentSelection.VirtualRegionOnScreen = CurrentElementRegion; + currentSelection.CreateElement(); + currentSelection.UpdateElement(); + } + + protected override void firstUpdate (){ + base.firstUpdate (); + if(!InitialOpen){ + Content.Hide(0); + } + + + if(InitalSelectedObject != null) + Select(InitalSelectedObject); + else{ + EditorDebug.LogWarning("DropDownMenu: " + gameObject.name + " has no InitiaElement Set - take Element zero"); + Select(0); + } + + + } + + public void ToggleContentVisibility(){ + if(Content.Visibility) + Content.Hide(); + else + Content.Show(); + } + +} diff --git a/Assets/Scripts/GUI_Module/Elements/FPSPanel.cs b/Assets/Scripts/GUI_Module/Elements/FPSPanel.cs new file mode 100755 index 0000000..372e1c0 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/FPSPanel.cs @@ -0,0 +1,57 @@ +// Attach this to a GUIText to make a frames/second indicator. +// +// It calculates frames/second over each updateInterval, +// so the display does not keep changing wildly. +// +// It is also fairly accurate at very low FPS counts (<10). +// We do this not by simply counting frames per interval, but +// by accumulating FPS for each frame. This way we end up with +// correct overall FPS even if the interval renders something like +// 5.5 frames. + +using UnityEngine; +using System.Collections; + +public class FPSPanel : TextPanel { + + + public float updateInterval = 0.5F; + + private float accum = 0; // FPS accumulated over the interval + private int frames = 0; // Frames drawn over the interval + private float timeleft; // Left time for current interval + + void Start(){ + timeleft = updateInterval; + } + + void Update() + { + timeleft -= Time.deltaTime; + accum += Time.timeScale/Time.deltaTime; + ++frames; + + // Interval ended - update GUI text and start new interval + if( timeleft <= 0.0 ) + { + // display two fractional digits (f2 format) + float fps = accum/frames; + string format = System.String.Format("{0:F2} FPS",fps); + //guiText.text = format; + Text = format; + + /*if(fps < 30) + guiText.material.color = Color.yellow; + else + if(fps < 10) + guiText.material.color = Color.red; + else + guiText.material.color = Color.green;*/ + // EditorDebugConsole.Log(format,level); + timeleft = updateInterval; + accum = 0.0F; + frames = 0; + } + } +} + diff --git a/Assets/Scripts/GUI_Module/Elements/Frame.cs b/Assets/Scripts/GUI_Module/Elements/Frame.cs new file mode 100755 index 0000000..d3afac1 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Frame.cs @@ -0,0 +1,361 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; + +public class Frame : MonoBehaviour +{ + public List DirectChildren{ + get; + protected set; + } + protected delegate void InteractionEvent(InteractionBehaviour ib); + protected delegate void ActionEvent(Frame b); + + public enum HorizontalFloatPositions {left, right,center, none} + public enum VerticalFloatPositions {top, bottom,center, none} + public enum ElementOrientation{horizontal, vertical} + + public Rect VirtualRegionOnScreen; + protected Rect originalVirtualRegionOnScreen; + + public VerticalFloatPositions verticalFloat = Panel.VerticalFloatPositions.none; + public HorizontalFloatPositions horizontalFloat = Panel.HorizontalFloatPositions.none; + + public bool FullscreenElement = false; + public bool KeepAspectRatio = true; + + protected bool created = false; + protected bool firstUpdateFlag = true; + protected bool currentVisibility = true; + protected bool savedVisibility; + + protected bool inheritedVisibility = false; + + + public virtual bool Visibility{ + get{ + return currentVisibility; + } + set{ + currentVisibility = value; + } + } + + public CameraScreen activeScreen{ + get; + set; + } + + public Rect RealRegionOnScreen{ + get; + set; + } + + // PROPERTYS + public Vector2 Position{ + get{ + return new Vector2(VirtualRegionOnScreen.x, VirtualRegionOnScreen.y); + } + set{ + VirtualRegionOnScreen.x = value.x; + VirtualRegionOnScreen.y = value.y; + } + } + + + + public Vector2 Size{ + get{ + return new Vector2(VirtualRegionOnScreen.xMax, VirtualRegionOnScreen.yMin); + } + set{ + VirtualRegionOnScreen.width = value.x; + VirtualRegionOnScreen.height = value.y; + } + } + + protected Frame parent; + + // DONT USE THIS! + void Awake() { + AwakeOverride(); + } + + // Use this for initialization + protected virtual void AwakeOverride() { + + Visibility = true; + savedVisibility = true; + UpdateParent(); + if(FullscreenElement){ + VirtualRegionOnScreen.width = ScreenConfig.Instance.TargetScreenWidth;//Screen.width; + VirtualRegionOnScreen.height = ScreenConfig.Instance.TargetScreenHeight;//Screen.height; + } + UpdateActiveScreen(); + originalVirtualRegionOnScreen = VirtualRegionOnScreen; + + initDirectChildren(); + + } + + public void UpdateActiveScreen(){ + activeScreen = CameraScreen.GetScreenForObject(this.gameObject); + } + public void UpdateParent(){ + if(gameObject.transform.parent == null) + parent = this; + else + parent = gameObject.transform.parent.GetComponent() as Frame; + } + + void Start() { + StartOverride(); + } + + protected virtual void StartOverride(){ + Visibility = true; + } + + // Update is called once per frame + void Update() { + UpdateOverride(); + } + + protected virtual void UpdateOverride() { + if(firstUpdateFlag){ + firstUpdateFlag = false; + firstUpdate(); + } +#if UNITY_EDITOR + if(activeScreen.DebugModus) + UpdateElement(); +#endif + + } + + + protected virtual void firstUpdate(){ + // nothing here + } + + + /** + * This Function is called by Parent to force the child to arrange them selves + **/ + public virtual void LayoutElement() { + + + //do positioning etc. for this class here + } + + public virtual void OnClick(object sender, MouseEventArgs e) { + + callHandler(ib => { ib.Click(e); }, action => { action.OnClick(sender, e); }); + } + + public virtual void OnHover(object sender, MouseEventArgs e) { + callHandler(ib => { ib.Hover(e); }, action => { action.OnHover(sender, e); }); + } + + public virtual void OnDown(object sender, MouseEventArgs e) { + callHandler(ib => { ib.Down(e); }, action => { action.OnDown(sender, e); }); + } + + public virtual void OnUp(object sender, MouseEventArgs e) { + callHandler(ib => { ib.Up(e); }, action => { action.OnUp(sender, e); }); + } + + public virtual void OnMove(object sender, MouseEventArgs e) { + callHandler(ib => { ib.Move(e); }, action => { action.OnMove(sender, e); }); + } + + public virtual void OnSwipe(object sender, MouseEventArgs e) { + callHandler(ib => { ib.Swipe(e); }, action => { action.OnSwipe(sender, e); }); + } + + protected virtual void callHandler(InteractionEvent interaction, ActionEvent action) { + foreach (Frame b in DirectChildren) { + if(b == null) + continue; + if (b.checkMouseOverElement()) { + if (action != null) { + action(b); + } + var behaviours = b.GetComponents() as InteractionBehaviour[]; + if (behaviours != null) { + foreach (var ib in behaviours) { + interaction(ib); + } + } + } else { + b.resetElement(); + } + } + } + + public virtual bool checkMouseOverElement(){ + return true; + } + + public void UpdateDirectChildren() { + initDirectChildren(); + } + + public virtual void UpdateElement(){ + + //base.UpdateElement(); + + //EditorDebug.LogWarning("Update Element: " + gameObject.name); + UpdateDirectChildren(); + UpdateParent(); + //activeScreen = CameraScreen.GetScreenForObject(this.gameObject); + + // Get RealRegion + if(activeScreen != null) + this.RealRegionOnScreen = activeScreen.GetPhysicalRegionFromRect(this.VirtualRegionOnScreen, KeepAspectRatio); + + + + + //Check for Flaoting + //this.RealRegionOnScreen = this.RealRegionOnScreen.AddPosition(GetFloatingPosition()); + var position = GetFloatingPosition(); + this.RealRegionOnScreen = new Rect(position.x, position.y, RealRegionOnScreen.width, RealRegionOnScreen.height); + + + // Move Parent Offset + + position = new Vector2(parent.RealRegionOnScreen.x + this.RealRegionOnScreen.x, parent.RealRegionOnScreen.y + this.RealRegionOnScreen.y); + this.RealRegionOnScreen = new Rect(position.x, position.y, RealRegionOnScreen.width, RealRegionOnScreen.height); + + + UpdateRegionOnScreen(); + + + + updateVisibiltyAfterParent(); + + foreach (var frame in DirectChildren){ + frame.UpdateElement(); + } + + /*UpdateDirectChildren(); + foreach (Panel panel in directChildren){ + panel.UpdateElement(); + }*/ + } + + protected void updateVisibiltyAfterParent(){ + if(!parent.Visibility){ + savedVisibility = this.Visibility; + this.Visibility = false; + inheritedVisibility = true; + EditorDebug.Log("Save VIs: " + savedVisibility + " " + gameObject.name); + } + if(parent.Visibility && inheritedVisibility){ + EditorDebug.Log("Load VIs: " + savedVisibility + " " + gameObject.name); + this.Visibility = savedVisibility; + + } + + } + public void removeFloat(){ + var realPosition = new Vector2(this.RealRegionOnScreen.x, this.RealRegionOnScreen.y); + this.Position = CameraScreen.PhysicalToVirtualScreenPosition(realPosition); + this.horizontalFloat = Frame.HorizontalFloatPositions.none; + this.verticalFloat = Frame.VerticalFloatPositions.none; + + } + + public virtual void UpdateRegionOnScreen(){ + + } + + public Vector2 GetFloatingPosition(){ + var ret = new Vector2(0,0); + ret.y = getVerticalFloatPosition(); + ret.x = getHorizontalFloatPosition(); + + return ret; + } + + + + private float getVerticalFloatPosition(){ + float ret = RealRegionOnScreen.y ; + switch(verticalFloat){ + case VerticalFloatPositions.none: + break; + case VerticalFloatPositions.top: + ret = 0.0f; + break; + case VerticalFloatPositions.bottom: + ret = (parent.RealRegionOnScreen.height - this.RealRegionOnScreen.height); + break; + case VerticalFloatPositions.center: + ret = (parent.RealRegionOnScreen.height/2 - this.RealRegionOnScreen.height/2); + break; + default: + EditorDebug.LogError("Unknown VerticalPosition: " + verticalFloat); + break; + } + return ret; + } + + private float getHorizontalFloatPosition(){ + float ret = RealRegionOnScreen.x; + switch(horizontalFloat){ + case HorizontalFloatPositions.none: + break; + case HorizontalFloatPositions.left: + ret = 0.0f; + break; + case HorizontalFloatPositions.right: + ret = (parent.RealRegionOnScreen.width - this.RealRegionOnScreen.width); + break; + case HorizontalFloatPositions.center: + ret = (parent.RealRegionOnScreen.width/2 - this.RealRegionOnScreen.width/2); + break; + default: + EditorDebug.LogError("Unknown HorizontalPosition: " + horizontalFloat); + break; + + } + return ret; + } + public virtual void CreateElement(){ + if(created){ + EditorDebug.Log("Element: "+ gameObject.name + "already created"); + return; + } + + if(activeScreen == null) + activeScreen = CameraScreen.GetScreenForObject(this.gameObject); + RealRegionOnScreen = new Rect(0,0,0,0); + UpdateDirectChildren(); + UpdateElement(); + foreach (var frame in DirectChildren){ + frame.CreateElement(); + } + created = true; + + + + } + + public virtual void resetElement(){ + + } + + private void initDirectChildren() { + DirectChildren = new List(); + foreach (Transform child in transform) { + var b = child.GetComponent(); + if (b != null){ + DirectChildren.Add(b); + } + + } + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/GUIGameObject.cs b/Assets/Scripts/GUI_Module/Elements/GUIGameObject.cs new file mode 100755 index 0000000..30039cc --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/GUIGameObject.cs @@ -0,0 +1,94 @@ +using UnityEngine; +using System.Collections; + +public class GUIGameObject : MonoBehaviour { + + public Material GUIMaterial{ + get{ + return renderer.sharedMaterial; + } + set{ + renderer.sharedMaterial = value; + } + } + + protected float textureFactor = 1.0f; + + protected CameraScreen activeScreen; + + + public Mesh MeshObject{ + get{ + return GetComponent().mesh; + } + } + + // Use this for initialization + void Start () { + StartOverride(); + } + // Update is called once per frame + void Update () { + UpdateOverride(); + } + void Awake(){ + AwakeOverride(); + } + + + protected virtual void StartOverride(){ + + } + + protected virtual void UpdateOverride(){ + + } + + protected virtual void AwakeOverride(){ + + } + + + public Vector3 ScreenToWorldCoordinates(Vector2 screenCoordinate){ + + Camera cam = transform.parent.GetComponent(); + if(cam == null){ + EditorDebug.LogError("No camera found on Object: " + gameObject.name); + throw new MissingComponentException("No camera found on Object: " + gameObject.name); + } + + Ray r = cam.ScreenPointToRay(screenCoordinate); + EditorDebug.DrawRay(r.origin, r.direction); + // Switch x because Plane is looking at camera - so coordinate system is opposite, switching y because Camera has inverted space + // in y in comparison to World + //EditorDebug.Log("Origin: " + r.origin); + //var ret = new Vector3(r.origin.x, r.origin.y*-1, 0); + var ret = r.origin; + return ret; + + } + + public Vector3 WorldToLocalCoordinates(Vector3 worldCoordinates){ + return gameObject.transform.InverseTransformPoint(worldCoordinates); + } + + protected Vector2 toUVSpace(Vector2 xy){ + if(xy.x < 1 && xy.y < 1) + return xy; + + if(GUIMaterial == null) + EditorDebug.LogWarning("Material : " + GUIMaterial + " on Object: " + gameObject.name); + + Texture t = GUIMaterial.GetTexture("_MainTex"); + var p = new Vector2(xy.x / ((float)t.width), xy.y / ((float)t.height)); + return p; + } + + protected void updateTextureFactor(){ + if(GUIMaterial != null && activeScreen != null){ + Texture t = GUIMaterial.GetTexture("_MainTex"); + textureFactor = (float)(t.width) / activeScreen.TextureSize; + } + + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/GUIPlane.cs b/Assets/Scripts/GUI_Module/Elements/GUIPlane.cs new file mode 100755 index 0000000..8fc40cd --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/GUIPlane.cs @@ -0,0 +1,104 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class GUIPlane : GUIGameObject { + + + + public Vector2 RotationCenter { + get; + set; + } + + public float RotationAngle { + get; + set; + } + + // Use this for initialization + void Start () { + StartOverride(); + } + // Update is called once per frame + void Update () { + UpdateOverride(); + } + void Awake(){ + AwakeOverride(); + } + + + protected override void StartOverride(){ + base.StartOverride(); + activeScreen = CameraScreen.GetScreenForObject(this.gameObject); + if(activeScreen == null) + EditorDebug.LogWarning("No activeScreen found on GUIPlane: " + gameObject.name); + updateTextureFactor(); + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + } + + protected override void AwakeOverride(){ + base.AwakeOverride(); + } + + private Vector2 RotateVertex(Vector2 vertex, Vector2 center, float degrees){ + var centeredScreen = vertex - center; + return centeredScreen.Rotate(degrees) + center; + } + + public Rect VirtualRegionOnScreen{ + set{ + var vertices = MeshObject.vertices; + + Rect tmp = value; + vertices[3] = new Vector2(tmp.x, tmp.y); + vertices[0] = new Vector2(tmp.x+tmp.width, tmp.y); + vertices[2] = new Vector2(tmp.x, tmp.y+tmp.height); + vertices[1] = new Vector2(tmp.x+tmp.width, tmp.y+tmp.height); + + var centerX = tmp.x + tmp.width * RotationCenter.x; + var centerY = tmp.y + tmp.height * RotationCenter.y; + var center = new Vector2(centerX, centerY); + + for(int i = 0; i < vertices.Length; i++){ + vertices[i] = RotateVertex(vertices[i], center, RotationAngle); + vertices[i] = ScreenToWorldCoordinates(vertices[i]); + //EditorDebug.Log("PRE Position: " + i + " " + vertices[i]); + vertices[i] = WorldToLocalCoordinates(vertices[i]); + vertices[i] = new Vector3(vertices[i].x, vertices[i].y*-1,0); + } + MeshObject.vertices = vertices; + + } + + } + + + //public Rect VirtualPosition + public Rect UV{ + set{ + //updateTextureFactor(); + Vector2[] uvs = new Vector2[4]; + uvs[2] = new Vector2(value.x, value.y); + uvs[1] = new Vector2(value.x+value.width, value.y); + uvs[3] = new Vector2(value.x, value.y+value.height); + uvs[0] = new Vector2(value.x+value.width, value.y+value.height); + + for(int i = 0; i < uvs.Length; i++){ + uvs[i] = toUVSpace(uvs[i]*textureFactor); + } + + MeshObject.uv = uvs; + } + + } + + + + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/GUITextPlane.cs b/Assets/Scripts/GUI_Module/Elements/GUITextPlane.cs new file mode 100755 index 0000000..a26b292 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/GUITextPlane.cs @@ -0,0 +1,98 @@ +using UnityEngine; +using System.Collections; + +public class GUITextPlane : GUIGameObject { + + private TextMesh textComponent; + + #region PROPERTYS + public Rect VirtualRegionOnScreen{ + set{ + + var tmpValue = value; + + tmpValue.y = Screen.height - tmpValue.y; + + var worldPosition = ScreenToWorldCoordinates(new Vector2(tmpValue.x, tmpValue.y)); + textComponent.transform.position = new Vector3(worldPosition.x, worldPosition.y, textComponent.transform.position.z); + + + } + + } + + public string TextValue{ + get{ + return textComponent.text; + } + set{ + textComponent.text = value; + } + } + + public int FontSize{ + get{ + return textComponent.fontSize; + } + set{ + textComponent.fontSize = value; + } + } + + public FontStyle Style{ + get{ + return textComponent.fontStyle; + } + set{ + textComponent.fontStyle = value; + } + } + + public Font FontValue{ + get{ + return textComponent.font; + } set{ + textComponent.font = value; + } + } + + public Color TextColor{ + get{ + return GUIMaterial.color; + } + set{ + GUIMaterial.color = value; + } + } + #endregion + + #region Start,Awake,Update + // Use this for initialization + void Start () { + StartOverride(); + } + // Update is called once per frame + void Update () { + UpdateOverride(); + } + void Awake(){ + AwakeOverride(); + } + + + protected override void StartOverride(){ + base.StartOverride(); + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + } + + protected override void AwakeOverride(){ + base.AwakeOverride(); + textComponent = GetComponent() as TextMesh; + } + #endregion + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/HVPanel.cs b/Assets/Scripts/GUI_Module/Elements/HVPanel.cs new file mode 100755 index 0000000..dba0930 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/HVPanel.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class HVPanel : Panel { + + public Frame.ElementOrientation Orientation; + + public Vector2 ElementOffset; + public float ElementSpacing; + + protected override void AwakeOverride (){ + base.AwakeOverride(); + } + + + public override void UpdateElement(){ + UpdateDirectChildren(); + Vector2 position = ElementOffset; + foreach (var child in DirectChildren){ + var childRegion = child.VirtualRegionOnScreen; + child.Position = position; + if(Orientation == ElementOrientation.horizontal){ + position.x += childRegion.width + ElementSpacing; + } else { + position.y += childRegion.height + ElementSpacing; + } + } + base.UpdateElement(); + + } + +} diff --git a/Assets/Scripts/GUI_Module/Elements/NumberScrollField.cs b/Assets/Scripts/GUI_Module/Elements/NumberScrollField.cs new file mode 100755 index 0000000..3e187a0 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/NumberScrollField.cs @@ -0,0 +1,126 @@ +using UnityEngine; +using System.Collections; + +public class NumberScrollField : Control { + + + public TextPanel NumbersText; + public int Digits = 0; + public float ScrollSpeed = 1; + public bool DisableUnlockedScrolling = false; + + public float DefaultValue; + public float MinValue; + public float MaxValue; + public Slider.ElementOrientation Orientation; + private bool down = false; + + public float Value{ + get{ + return currentValue; + } + set{ + if(value > MaxValue){ + EditorDebug.LogWarning("Value: " + value + " out of Range on Element: " + gameObject.name + " value is set to Max"); + currentValue = MaxValue; + } else if(value < MinValue){ + EditorDebug.LogWarning("Value: " + value + " out of Range on Element: " + gameObject.name + " value is set to Min"); + value = MaxValue; + } else + currentValue = value; + + UpdateElement(); + } + } + + public float TargetValue{ + get; + set; + } + + public float ChangeTime{ + get; + set; + } + + private float currentValue; + private Timer timer; + + void Awake(){AwakeOverride();} + + protected override void AwakeOverride (){ + base.AwakeOverride (); + init(); + + } + + private void init(){ + if(NumbersText == null) + EditorDebug.LogError("TextPanel for Numbers is not set on Element " + gameObject.name); + TargetValue = DefaultValue; + Value = DefaultValue; + timer = new Timer(); + } + + public override void UpdateElement(){ + base.UpdateElement (); + updateText(); + } + + private void updateText(){ + + if(NumbersText != null){ + NumbersText.Text = ((int)currentValue).ToString("D"+Digits.ToString()); + NumbersText.UpdateElement(); + } + + } + + + + public override void OnUp (object sender, MouseEventArgs e){ + base.OnUp (sender, e); + down = false; + } + public override void OnMove (object sender, MouseEventArgs e){ + base.OnMove (sender, e); + if(down){ + var scrollLength = new Vector2(0,0); + float changeValue = 0; + if(Orientation == ElementOrientation.horizontal){ + scrollLength.x = e.MoveDirection.x; + changeValue = scrollLength.magnitude; + if(e.MoveDirection.x < 0) + changeValue *= -1; + + } else { + scrollLength.y = e.MoveDirection.y; + changeValue = scrollLength.magnitude; + if(e.MoveDirection.y > 0) + changeValue *= -1; + } + Value += changeValue * ScrollSpeed; + + } + + } + + public override void OnSwipe (object sender, MouseEventArgs e){ + base.OnSwipe (sender, e); + if(!DisableUnlockedScrolling){ + // TODO: Do some unlocked Scrolling (like unlocked Mousewheel) + } + + } + + public override void OnDown (object sender, MouseEventArgs e){ + base.OnDown (sender, e); + down = true; + // TODO: Stop scrolling Numbers && stop changing over Time + } + + public override bool checkMouseOverElement (){ + return ( base.checkMouseOverElement () || down ) ; + } + +} diff --git a/Assets/Scripts/GUI_Module/Elements/Panel.cs b/Assets/Scripts/GUI_Module/Elements/Panel.cs new file mode 100755 index 0000000..aac82f7 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Panel.cs @@ -0,0 +1,196 @@ +using UnityEngine; +using System; +using System.Collections; +using asdf.Resources; + +public class Panel : Frame { + + + public LayoutBehaviour Layout; + public string help1 = "NOT WORKING LIVE:"; + public int GUIDepth = 5; + + //public bool FullscreenElement = false; + + public override bool Visibility{ + get{ + bool flag = currentVisibility; + if(plane != null){ + flag = plane.renderer.enabled; + currentVisibility = flag; + } + + return flag; + } + set{ + + if(plane != null){ + plane.renderer.enabled = value; + EditorDebug.Log("Change vis for: " + gameObject.name + " to " + value); + } + + } + } + + + + public Rect Uv; + + private GUIStyle inactiveStyle; + + protected GUIPlane plane; + + + protected GUIStyle currentStyle; + + + + + + + + + // DONT USE THIS + void Awake(){ + AwakeOverride(); + } + + void OnDestroy(){ + OnDestroyOverride(); + } + + protected virtual void OnDestroyOverride(){ + + if(plane != null){ + GameObject.Destroy(plane.gameObject); + } + } + + // Use this for initialization + protected override void AwakeOverride(){ + base.AwakeOverride(); + this.Visibility = true; + } + + + void Start () { + StartOverride(); + + } + + protected override void StartOverride(){ + base.StartOverride(); + UpdateRegionOnScreen(); + } + + void OnGUI(){ + OnGUIOverride(); + } + + protected virtual void OnGUIOverride(){ + + } + + // Update is called once per frame +#if UNITY_EDITOR + void Update () { + UpdateOverride(); + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + if(created && activeScreen.DebugModus ){ + UpdateElement(); + } + } +#endif + + + public override void CreateElement(){ + base.CreateElement(); + + + + this.createGUIElement(); + created = true; + UpdateElement(); + } + + + + public override void UpdateRegionOnScreen(){ + base.UpdateRegionOnScreen(); + if(plane != null) + plane.VirtualRegionOnScreen = RealRegionOnScreen; + + //resetElement(); + } + + public virtual void createGUIElement(){ + + CreateGUIPlane(); + + Camera cam = activeScreen.ScreenCamera; + plane.name = gameObject.name + "_guiPlane"; + plane.transform.parent = cam.transform; + + // Orient Plane to Camera + resetPlaneTransform(); + float layer = (float)GUIDepth * 0.0001f; + plane.transform.Translate(new Vector3(0,0,(activeScreen.ScreenCamera.nearClipPlane+layer)), Space.Self); + plane.transform.LookAt(cam.transform); + + // set Materials + plane.GUIMaterial = activeScreen.GUIMaterial; + plane.UV = Uv; + plane.VirtualRegionOnScreen = RealRegionOnScreen; + + + } + + public void SetRotationTransformations(Vector2 localCenter, float degrees){ + plane.RotationAngle = degrees; + plane.RotationCenter = localCenter; + } + + private Vector3 WorldToLocalCoordinates(Vector3 worldCoordinates){ + return gameObject.transform.InverseTransformPoint(worldCoordinates); + } + + private void CreateGUIPlane(){ + GameObject go = ResourceManager.CreateInstance("guiPlane"); + if(go == null){ + EditorDebug.LogError("No GameObject found for Plane on Object "+ this.gameObject.name + "! Stop!"); + return; + } + + plane = go.GetComponent(); + if(plane == null){ + EditorDebug.LogError("No GUIPlane found on Object "+ this.gameObject.name + "! Stop!"); + return; + } + + + } + + public override bool checkMouseOverElement(){ + return CameraScreen.CursorInsidePhysicalRegion(RealRegionOnScreen); + } + + + + public override void resetElement(){ + if(plane != null) + plane.UV = Uv; + + } + + private void resetPlaneTransform(){ + plane.transform.rotation = Quaternion.identity; + plane.transform.localRotation = Quaternion.identity; + plane.transform.localPosition = Vector3.zero; + plane.transform.localScale = Vector3.one; + } + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/RadioCollection.cs b/Assets/Scripts/GUI_Module/Elements/RadioCollection.cs new file mode 100755 index 0000000..fc146c7 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/RadioCollection.cs @@ -0,0 +1,63 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; + +public class RadioCollection : Frame { + + public CheckBox DefaultCheckbox; + + private List radioButtons; + + protected override void AwakeOverride (){ + base.AwakeOverride (); + radioButtons = new List(); + updateRadioButtons(); + } + + protected override void StartOverride (){ + base.StartOverride (); + enableDefaultCheckbox(); + } + + private void enableDefaultCheckbox(){ + if(DefaultCheckbox != null) + DefaultCheckbox.Checked = true; + else + EditorDebug.LogError("No DefaultCheckbox found on Element: " + gameObject.name); + } + + protected override void firstUpdate (){ + base.firstUpdate (); + enableDefaultCheckbox(); + } + + private void updateRadioButtons(){ + var checkBoxChildren = gameObject.GetComponentsInChildren() as CheckBox[]; + foreach(CheckBox cb in radioButtons){ + cb.CheckboxStatusChanged -= OnCheckboxStatusChanged; + } + radioButtons.Clear(); + foreach(CheckBox cb in checkBoxChildren){ + radioButtons.Add(cb); + cb.CheckboxStatusChanged += OnCheckboxStatusChanged; + } + EditorDebug.Log("CheckBoxes found: " + radioButtons); + if(DefaultCheckbox == null && radioButtons.Count > 0) + DefaultCheckbox = radioButtons[0]; + } + + private void OnCheckboxStatusChanged(object sender, CheckBoxEventArgs e){ + bool flag = e.Checkbox.Checked; + foreach(CheckBox cb in radioButtons){ + if(cb.Checked) + cb.Checked = false; + } + if(!flag) + enableDefaultCheckbox(); + else + e.Checkbox.Checked = true; + } + + +} diff --git a/Assets/Scripts/GUI_Module/Elements/RolloutPanel.cs b/Assets/Scripts/GUI_Module/Elements/RolloutPanel.cs new file mode 100755 index 0000000..529d92a --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/RolloutPanel.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; + +public class RolloutPanel : HVPanel { + + + public float RolloutTime = 1.0f; + + public void Show(){ + Show(RolloutTime); + } + + public void Hide(){ + Hide(RolloutTime); + } + + public void Show(float timeInSeconds){ + // TODO: implement rollout + EditorDebug.LogWarning("RolloutElement Show is only a dummy!"); + this.Visibility = true; + UpdateElement(); + } + + public void Hide(float timeInSeconds){ + //TODO: implement roll in + EditorDebug.LogWarning("RolloutElement Hide is only a dummy!"); + this.Visibility = false; + UpdateElement(); + + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/Slider.cs b/Assets/Scripts/GUI_Module/Elements/Slider.cs new file mode 100755 index 0000000..7bb722b --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Slider.cs @@ -0,0 +1,108 @@ +using UnityEngine; +using System.Collections; +using System; + +public class Slider : Control { + + + public float SliderValue{ + get{ + return currentSliderValue; + } + set{ + if(value > MaxValue){ + EditorDebug.LogWarning("Slidervalue: " + value + " is out of Range on Object: " + gameObject.name + " value is set to max"); + currentSliderValue = MaxValue; + } else if(value < MinValue){ + EditorDebug.LogWarning("Slidervalue: " + value + " is out of Range on Object: " + gameObject.name + " value is set to min"); + currentSliderValue = MinValue; + }else + currentSliderValue = value; + + UpdateElement(); + } + } + + public SliderHandle SliderHandle; + public ElementOrientation Orientation = ElementOrientation.horizontal; + + public float DefaultValue; + public float MinValue; + public float MaxValue; + + + public float SliderMinPosition; + public float SliderMaxPosition; + + public float sliderLength{get;private set;} + public float sliderValueRange{get;private set;} + public float currentSliderPosition{get;private set;} + private float currentSliderValue; + + + protected override void AwakeOverride (){ + base.AwakeOverride (); + initSliderValues(); + } + + private void initSliderValues(){ + sliderLength = Math.Abs(SliderMaxPosition - SliderMinPosition); + sliderValueRange = Math.Abs(MaxValue - MinValue); + SliderValue = DefaultValue; + if(DefaultValue < MinValue) + EditorDebug.LogWarning("Slider Default Value is smaller than min value on Object: "+gameObject.name+"- set to min Value!"); + if(DefaultValue > MaxValue) + EditorDebug.LogWarning("Slider Default Value is bigger than max value on Object: "+gameObject.name+" - set to min Value!"); + if(SliderHandle == null) + EditorDebug.LogError("Slider Handle not set on: " + gameObject.name); + else{ + SliderHandle.removeFloat(); + SliderHandle.SliderElement = this; + } + + } + + void Start(){ + StartOverride(); + } + + void Awake(){ + AwakeOverride(); + } + + protected override void StartOverride (){ + base.StartOverride (); + SliderValue = DefaultValue; + } + + + /*public override void OnMove (object sender, MouseEventArgs e){ + base.OnMove (sender, e); + SliderHandle.OnMove(sender, e); + }*/ + + /*public override void OnDown (object sender, MouseEventArgs e){ + base.OnDown (sender, e); + SliderHandle.OnDown(sender, e); + } + + public override void OnUp (object sender, MouseEventArgs e){ + base.OnDown (sender, e); + SliderHandle.OnUp(sender, e); + }*/ + + public override void UpdateElement (){ + updateSliderPosition(); + base.UpdateElement (); + } + + private void updateSliderPosition(){ + var offset = (currentSliderValue*sliderLength) / sliderValueRange; + currentSliderPosition = SliderMinPosition + offset; + if(Orientation == ElementOrientation.horizontal) + SliderHandle.VirtualRegionOnScreen.x = currentSliderPosition - SliderHandle.VirtualRegionOnScreen.width/2; + else + SliderHandle.VirtualRegionOnScreen.y = currentSliderPosition - SliderHandle.VirtualRegionOnScreen.height/2; + SliderHandle.UpdateElement(); + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/SliderHandle.cs b/Assets/Scripts/GUI_Module/Elements/SliderHandle.cs new file mode 100755 index 0000000..49fde00 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/SliderHandle.cs @@ -0,0 +1,40 @@ +using UnityEngine; +using System.Collections; + +public class SliderHandle : Button { + + public Slider SliderElement{ + private get; + set; + } + + public override void OnMove (object sender, MouseEventArgs mouse){ + base.OnMove (sender, mouse); + if(down){ + float mouseOffsetToElement = getMouseOffsetToElement(); + SliderElement.SliderValue = (mouseOffsetToElement*SliderElement.sliderValueRange) / SliderElement.sliderLength; + + } + } + + private float getMouseOffsetToElement(){ + Vector2 realMouseOffset = new Vector2(0,0); + realMouseOffset.x = Input.mousePosition.x - SliderElement.RealRegionOnScreen.x; + realMouseOffset.y = Input.mousePosition.y - SliderElement.RealRegionOnScreen.y; + + float mouseOffsetToElement; + if(SliderElement.Orientation == ElementOrientation.horizontal){ + mouseOffsetToElement = CameraScreen.PhysicalToVirtualScreenPosition(realMouseOffset).x; + } + else{ + mouseOffsetToElement = CameraScreen.PhysicalToVirtualScreenPosition(realMouseOffset).y; + } + + mouseOffsetToElement -= SliderElement.SliderMinPosition; + return mouseOffsetToElement; + } + + public override bool checkMouseOverElement (){ + return ( base.checkMouseOverElement () || down ) ; + } +} diff --git a/Assets/Scripts/GUI_Module/Elements/Text.cs b/Assets/Scripts/GUI_Module/Elements/Text.cs new file mode 100755 index 0000000..b1b29af --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/Text.cs @@ -0,0 +1,196 @@ +using UnityEngine; +using System.Collections; +using asdf.Resources; + +public class Text : Frame { + + public int targetFontSize; + public string TextValue; + public bool Editable = false; + public bool MultiLine; + public int LineLength = 1; + public int MaxInputTextLength = 10; + public int GUIDepth = 5; + public Color TextColor = Color.black; + + + public Rect TextRegion; + //private Rect realTextRegion; + private string formatetText; + private string lastRenderdText; + + private GUITextPlane textComponent; + + //public FontStyle textStyle; + + // DONT USE THIS + void Awake(){ + AwakeOverride(); + } + + protected override void AwakeOverride (){ + base.AwakeOverride (); + + } + + // Use this for initialization + void Start () { + StartOverride(); + } + + // Update is called once per frame + void Update () { + UpdateOverride(); + } + + public override void CreateElement(){ + base.CreateElement(); + + this.createGUIElement(); + created = true; + UpdateElement(); + } + + + public virtual void createGUIElement(){ + CreateTextMesh(); + + if(textComponent == null){ + EditorDebug.LogError("Text Object: " + gameObject.name + " has no TextMesh assigned!"); + return; + } + + + textComponent.TextValue = TextValue; + + Camera cam = activeScreen.ScreenCamera; + //plane.name = gameObject.name + "_guiPlane"; + textComponent.transform.parent = cam.transform; + + // Orient Plane to Camera + resetTextTransform(); + float layer = (float)GUIDepth * 0.0001f; + textComponent.transform.Translate(new Vector3(0,0,(activeScreen.ScreenCamera.nearClipPlane+layer)), Space.Self); + EditorDebug.LogError("Depth: " + (activeScreen.ScreenCamera.nearClipPlane+layer)); + //textComponent.transform.LookAt(cam.transform, new Vector3(0,1,0)); + textComponent.TextColor = TextColor; + // set Materials + //textComponent.GUIMaterial = activeScreen.GUIMaterial; + //plane.UV = Uv; + textComponent.VirtualRegionOnScreen = RealRegionOnScreen; + //textComponent + + } + + public override void UpdateElement (){ + base.UpdateElement (); + if(created) + textComponent.VirtualRegionOnScreen = RealRegionOnScreen; + + } + + private void CreateTextMesh(){ + GameObject go = ResourceManager.CreateInstance("TextMesh"); + if(go == null){ + EditorDebug.LogError("No GameObject found for TextMesh on Object "+ this.gameObject.name + "! Stop!"); + return; + } + + textComponent = go.GetComponent() as GUITextPlane; + + if(textComponent == null){ + EditorDebug.LogError("No TextMesh found on Object "+ this.gameObject.name + "! Stop!"); + return; + } + + + } + + private void resetTextTransform(){ + textComponent.transform.rotation = Quaternion.identity; + textComponent.transform.localRotation = Quaternion.identity; + textComponent.transform.localPosition = Vector3.zero; + textComponent.transform.localScale = Vector3.one; + } + + protected override void UpdateOverride(){ + base.UpdateOverride(); + formatText(); + if(this.Visibility){ + /*textComponent.fontStyle = textStyle; + if(Editable) + Text = UnityEngine.GUI.TextField(realTextRegion, formatetText, MaxInputTextLength, textStyle); + else + UnityEngine.GUI.Label(realTextRegion, formatetText, textStyle); */ + } + } + private void formatText(){ + if(!created) + return; + //EditorDebug.Log("Format Text Element: " + gameObject.name); + //if(activeScreen.DebugModus) + // initTextRegion(); + textComponent.FontSize = targetFontSize; +#if UNITY_IPHONE || UNITY_ANDROID + changeFontForMobile(); +#elif UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_WEBPLAYER + textComponent.FontSize = CameraScreen.GetPhysicalTextSize(targetFontSize); +#endif + scaleTextToSize(); + if(TextValue != lastRenderdText){ // Do this every on GUI because text can be changed from outside + formatMultilineText(); + InvokeTextChanged(); + } +#if UNITY_EDITOR + if(activeScreen.DebugModus) + formatMultilineText(); +#endif + //UpdateElement(); + } + + private void scaleTextToSize(){ + float scale = textComponent.FontSize / 2500.0f; + textComponent.transform.localScale = new Vector3(scale, scale, scale); + + + } + private void changeFontForMobile(){ + int index = 0; + int size = targetFontSize; + int fontSize = CameraScreen.GetPhysicalTextSize(size); + foreach(int step in ScreenConfig.Instance.FontSizes){ + if(step >= fontSize){ + break; + } + index++; + + } + if(index < ScreenConfig.Instance.Fonts.Length){ + textComponent.FontValue = ScreenConfig.Instance.Fonts[index]; + } else + EditorDebug.LogWarning("No Font found that matches TargetFontSize: " + targetFontSize + " index: " + index + "Object: " + gameObject.name); + + } + + private void formatMultilineText(){ + string tmp = string.Empty; + if(MultiLine){ + for(int i = 0; i < TextValue.Length; i++){ + tmp += TextValue[i]; + if((i+1)%LineLength == 0 && LineLength > 0) + tmp += "\n"; + } + } else + tmp = TextValue; + formatetText = tmp; + lastRenderdText = TextValue; + } + + private void InvokeTextChanged(){ + InteractionBehaviour[] behaviours = gameObject.GetComponents() as InteractionBehaviour[]; + foreach(InteractionBehaviour ib in behaviours){ + ib.TextChanged(TextValue); + } + } + +} diff --git a/Assets/Scripts/GUI_Module/Elements/TextPanel.cs b/Assets/Scripts/GUI_Module/Elements/TextPanel.cs new file mode 100755 index 0000000..7d8c417 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Elements/TextPanel.cs @@ -0,0 +1,150 @@ +using UnityEngine; +using System.Collections; + +public class TextPanel : Panel { + + public int targetFontSize; + public string Text; + public bool Editable = false; + public bool MultiLine; + public int LineLength = 1; + public int MaxInputTextLength = 10; + public bool ShowTextArea = false; + + + + public GUIStyle textStyle; + + public Rect TextRegion; + private Rect realTextRegion; + private string formatetText; + private string lastRenderdText; + + protected override void AwakeOverride(){ + base.AwakeOverride(); + initTextRegion(); + if(ScreenConfig.Instance.Fonts.Length != ScreenConfig.Instance.FontSizes.Length) + EditorDebug.LogWarning("Fontsteps not same size as Fonts"); + } + + void Start(){ + StartOverride(); + } + + protected override void StartOverride(){ + base.StartOverride(); + initTextRegion(); + formatMultilineText(); + lastRenderdText = Text; + } + public override void LayoutElement(){ + base.LayoutElement(); + + } + + void OnGUI(){ + OnGUIOverride(); + + } + + protected override void OnGUIOverride(){ + base.OnGUIOverride(); + formatText(); + if(!this.Visibility) + return; + if(Editable) + Text = UnityEngine.GUI.TextField(realTextRegion, formatetText, MaxInputTextLength, textStyle); + else + UnityEngine.GUI.Label(realTextRegion, formatetText, textStyle); +#if UNITY_EDITOR + if(ShowTextArea){ + initTextRegion(); + UnityEngine.GUI.Box(realTextRegion, ""); + } +#endif + + } + + + private void formatText(){ + if(!created) + return; + //EditorDebug.Log("Format Text Element: " + gameObject.name); + if(activeScreen.DebugModus) + initTextRegion(); + //textStyle.fontSize = targetFontSize; +#if UNITY_IPHONE || UNITY_ANDROID + changeFontForMobile(); +#elif UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_WEBPLAYER + textStyle.fontSize = CameraScreen.GetPhysicalTextSize(textStyle.fontSize); +#endif + + if(Text != lastRenderdText){ // Do this every on GUI because text can be changed from outside + formatMultilineText(); + InvokeTextChanged(); + } +#if UNITY_EDITOR + if(activeScreen.DebugModus) + formatMultilineText(); +#endif + //UpdateElement(); + } + + + + public override void CreateElement (){ + base.CreateElement (); + initTextRegion(); + } + + private void changeFontForMobile(){ + int index = 0; + int size = targetFontSize; + int fontSize = CameraScreen.GetPhysicalTextSize(size); + foreach(int step in ScreenConfig.Instance.FontSizes){ + if(step >= fontSize){ + break; + } + index++; + + } + if(index < ScreenConfig.Instance.Fonts.Length){ + textStyle.font = ScreenConfig.Instance.Fonts[index]; + } else + EditorDebug.LogWarning("No Font found that matches TargetFontSize: " + targetFontSize + " index: " + index + "Object: " + gameObject.name); + textStyle.fontSize = 0; + + } + private void formatMultilineText(){ + string tmp = string.Empty; + if(MultiLine){ + for(int i = 0; i < Text.Length; i++){ + tmp += Text[i]; + if((i+1)%LineLength == 0 && LineLength > 0) + tmp += "\n"; + } + } else + tmp = Text; + formatetText = tmp; + lastRenderdText = Text; + } + + // Caclulate the Absolute Values on the physical screen - because TextRegion is virtual an relative to the Panel Position + private void initTextRegion(){ + if(!created) + return; + + var textRegion = activeScreen.GetPhysicalRegionFromRect(TextRegion); + realTextRegion = new Rect(RealRegionOnScreen.x + textRegion.x , RealRegionOnScreen.y + textRegion.y, textRegion.width, textRegion.height); + + + } + + private void InvokeTextChanged(){ + InteractionBehaviour[] behaviours = gameObject.GetComponents() as InteractionBehaviour[]; + foreach(InteractionBehaviour ib in behaviours){ + ib.TextChanged(Text); + } + } + +} diff --git a/Assets/Scripts/GUI_Module/EventArgs/CheckBoxEventArgs.cs b/Assets/Scripts/GUI_Module/EventArgs/CheckBoxEventArgs.cs new file mode 100755 index 0000000..652968b --- /dev/null +++ b/Assets/Scripts/GUI_Module/EventArgs/CheckBoxEventArgs.cs @@ -0,0 +1,21 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; + +public class CheckBoxEventArgs : EventArgs { + + public CheckBox Checkbox{ + get; + private set; + } + public Vector2 MoveDirection{get;set;} + public Vector2 MousPosition{get;set;} + + public CheckBoxEventArgs(CheckBox checkbox) { + this.Checkbox = checkbox; + + } + + +} diff --git a/Assets/Scripts/GUI_Module/EventArgs/MouseEventArgs.cs b/Assets/Scripts/GUI_Module/EventArgs/MouseEventArgs.cs new file mode 100755 index 0000000..30b77e0 --- /dev/null +++ b/Assets/Scripts/GUI_Module/EventArgs/MouseEventArgs.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; + +public class MouseEventArgs : EventArgs { + + public int ButtonId{get;set;} + public float MoveDistance{get{ + return MoveDirection.magnitude; + } + } + public Vector2 MoveDirection{get;set;} + public Vector2 MousPosition{get;set;} + + public MouseEventArgs(int buttonId) { + MouseDown = new Dictionary(); + MousPosition = new Vector2(0,0); + MoveDirection = new Vector2(0,0); + this.ButtonId = buttonId; + + } + + public MouseEventArgs(Vector2 direction) { + MoveDirection = direction; + ButtonId = -1; + } + + public Dictionary MouseDown; + +} diff --git a/Assets/Scripts/GUI_Module/Samples/SampleUIController.cs b/Assets/Scripts/GUI_Module/Samples/SampleUIController.cs new file mode 100755 index 0000000..1725d2d --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/SampleUIController.cs @@ -0,0 +1,63 @@ +using System; +using UnityEngine; + + +public sealed class SampleUIController : Controller +{ + private Func function; + private TimeSpan elapsedTime = TimeSpan.Zero; + + public SampleUIController() + : this((x) => x) { } + + public SampleUIController(Func function) { + this.function = function; + } + + public TimeSpan Duration { + get; + set; + } + + public Vector2 StartPosition { + get; + set; + } + + public Vector2 TargetPosition { + get; + set; + } + + protected override void UpdateOverride (MonoBehaviour entity) + { + + /* UNTESTET + if (IsFinished || entity == null) { + return; + } + + elapsedTime = elapsedTime.Add(TimeSpan.FromSeconds(Time.deltaTime)); + + if (elapsedTime >= Duration) { + elapsedTime = TimeSpan.Zero; + InvokeControllerFinished(entity); + return; + } + + var relTime = (float)elapsedTime.TotalMilliseconds / (float)Duration.TotalMilliseconds; + if (relTime > 1.0f) { + relTime = 1.0f; + } + var relDistance = function(relTime); + // need more speed for we do operate on a larger scale than in game + + var vec = (TargetPosition - StartPosition); + + //HACK for mono bug, something with trampolines + var ui = (UIElementBehaviour) entity; + ui.Position = StartPosition + (vec * relDistance); */ + } +} + + diff --git a/Assets/Scripts/GUI_Module/Samples/TestAllInteractionBehaviour.cs b/Assets/Scripts/GUI_Module/Samples/TestAllInteractionBehaviour.cs new file mode 100755 index 0000000..7e5a6fe --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/TestAllInteractionBehaviour.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using System.Collections; + +public class TestAllInteractionBehaviour : InteractionBehaviour { + + public override void Click(MouseEventArgs mouse){ + EditorDebug.Log("Click Element: " + gameObject.name); + } + + public override void Hover(MouseEventArgs mouse){ + EditorDebug.Log("Hover Element: " + gameObject.name); + } + + public override void Down(MouseEventArgs mouse){ + EditorDebug.Log("Mouse Down on Element: " + gameObject.name); + } + + public override void Up(MouseEventArgs mouse){ + EditorDebug.Log("Mouse Up Element: " + gameObject.name); + } + + public override void Move(MouseEventArgs mouse){ + EditorDebug.Log("Mouse Move Element: " + gameObject.name + "\n" + + "Moved Distance " + mouse.MoveDistance); + } + + public override void Swipe(MouseEventArgs mouse){ + EditorDebug.Log("Swipe Element: " + gameObject.name); + } +} diff --git a/Assets/Scripts/GUI_Module/Samples/TestAllInteractionsBehaviour.cs b/Assets/Scripts/GUI_Module/Samples/TestAllInteractionsBehaviour.cs new file mode 100755 index 0000000..39d43d8 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/TestAllInteractionsBehaviour.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using System.Collections; + +public class TestAllInteractionsBehaviour : InteractionBehaviour { + + public override void Click(MouseEventArgs mouse){ + Debug.Log("Click Element: " + gameObject.name); + } + + public override void Hover(MouseEventArgs mouse){ + Debug.Log("Hover Element: " + gameObject.name); + } + + public override void Down(MouseEventArgs mouse){ + Debug.Log("Mouse Down on Element: " + gameObject.name); + } + + public override void Up(MouseEventArgs mouse){ + Debug.Log("Mouse Up Element: " + gameObject.name); + } + + public override void Move(MouseEventArgs mouse){ + Debug.Log("Mouse Move Element: " + gameObject.name + "\n" + + "Moved Distance " + mouse.MoveDistance); + } + + public override void Swipe(MouseEventArgs mouse){ + Debug.Log("Swipe Element: " + gameObject.name); + } +} diff --git a/Assets/Scripts/GUI_Module/Samples/TestMoveWithMouse.cs b/Assets/Scripts/GUI_Module/Samples/TestMoveWithMouse.cs new file mode 100755 index 0000000..977d8aa --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/TestMoveWithMouse.cs @@ -0,0 +1,28 @@ +using UnityEngine; +using System.Collections; + +public class TestMoveWithMouse : InteractionBehaviour { + + private bool down = false; + + /** + * BTW: This class is super cool for position Elements with Drag Drop on Screen in EditorDebugModus :) + * */ + public override void Down(MouseEventArgs mouse){ + down = true; + } + + public override void Up(MouseEventArgs mouse){ + down = false; + } + + public override void Move(MouseEventArgs mouse){ + if(down){ + Panel ui = gameObject.GetComponent(); + Vector2 newPosition = new Vector2(ui.VirtualRegionOnScreen.x, ui.VirtualRegionOnScreen.y); + newPosition += mouse.MoveDirection; + Rect newRegion = new Rect(newPosition.x, newPosition.y, ui.VirtualRegionOnScreen.width, ui.VirtualRegionOnScreen.height); + ui.VirtualRegionOnScreen = newRegion; + } + } +} diff --git a/Assets/Scripts/GUI_Module/Samples/TestSwipeBehaviour.cs b/Assets/Scripts/GUI_Module/Samples/TestSwipeBehaviour.cs new file mode 100755 index 0000000..4cab573 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/TestSwipeBehaviour.cs @@ -0,0 +1,11 @@ +using UnityEngine; +using System.Collections; + +public class TestSwipeBehaviour : InteractionBehaviour { + + + + public override void Swipe(MouseEventArgs mouse){ + EditorDebug.Log("Swipe Element: " + gameObject.name); + } +} diff --git a/Assets/Scripts/GUI_Module/Samples/TestUIControllerBehaviour.cs b/Assets/Scripts/GUI_Module/Samples/TestUIControllerBehaviour.cs new file mode 100755 index 0000000..d4c95b1 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Samples/TestUIControllerBehaviour.cs @@ -0,0 +1,16 @@ +using UnityEngine; +using System.Collections; + +public class TestUIControllerBehaviour : InteractionBehaviour { + + //private SampleUIController controller; + protected override void AwakeOverride(){ + base.AwakeOverride(); + //controller = new SampleUIController(); + + } + + public override void Click(MouseEventArgs mouse){ + //controller.Trigger = true; + } +} diff --git a/Assets/Scripts/GUI_Module/Wrapper/InputEvents.cs b/Assets/Scripts/GUI_Module/Wrapper/InputEvents.cs new file mode 100755 index 0000000..ad27067 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Wrapper/InputEvents.cs @@ -0,0 +1,231 @@ +using UnityEngine; +using System.Collections; +using System; +using System.Collections.Generic; + +public class InputEvents : MonoBehaviour{ + + + //public float ClickTimeInSeconds = 0.1f; + //public float MaxClickDistance = 0.1f; + + public static InputEvents Instance; + + public event EventHandler ClickEvent; + public event EventHandler DownEvent; + public event EventHandler UpEvent; + public event EventHandler MoveEvent; + public event EventHandler SwipeEvent; + + //private Timer clickTimer; + private Dictionary clickStarted; + private Dictionary clickStartTime; + private Vector2 mouseStartPosition; + + private Vector2 mousePosition; + private Vector2 actualMouseDirection; + private bool mouseDownToggle = true; + + void Awake(){ + Instance = this; + clickStarted = new Dictionary(); + clickStartTime = new Dictionary(); + actualMouseDirection = new Vector2(0,0); + mousePosition = new Vector2(0,0); + mouseStartPosition = new Vector2(0,0); + + } + + void Start(){ + + } + + void Update(){ + checkMove(); +#if UNITY_IPHONE || UNITY_ANDROID || UNITY_STANDALONE_WIN + checkTouches(); +#endif +#if UNITY_STANDALONE_OSX || UNITY_WEBPLAYER || UNITY_EDITOR || UNITY_STANDALONE_WIN + checkClick(); +#endif + + + } + + private void checkMove(){ + Vector2 oldMouse = mousePosition; + mousePosition = CameraScreen.PhysicalToVirtualScreenPosition(Input.mousePosition); + + actualMouseDirection = new Vector2(mousePosition.x - oldMouse.x, oldMouse.y - mousePosition.y); + if(actualMouseDirection.magnitude != 0) + InvokeMoveEvent(actualMouseDirection, mousePosition); + + } + + private void checkClick(){ + + if(Input.touches.Length > 0){ + //EditorDebug.LogError("Touch Detected"); + return; + } + + /*if(Input.GetMouseButtonDown(0)){ + EditorDebug.LogError("Button0 Down"); + clickStart(0); + } else if(getIsDown(0) && (Input.GetMouseButtonUp(0) || !Input.GetMouseButtonDown(0)) ){ + EditorDebug.LogError("Button0 Up"); + clickEnd(0); + }*/ + // Diese unglaublichen If abfragen sind nötig, da sich die Unity mit windows Touch anders verhält als + // mit der Maus oder anderen Touchdevices + // Unter windows gilt folgendes: Bei FingerDown sind sowohl down und Up der Mouse False + // sobald die Maus bewegt wird gitb ButtonDown true zurück + // wenn man ohne die Maus zu bewegen direkt den Finger wieder hochnimmt sind down und Up true + // Der Touch wird aber als Maus behandelt - die Input.Touches ist auf jeden Fall leer + if(Input.GetMouseButtonDown(0) && Input.GetMouseButtonUp(0)){ + //EditorDebug.LogError("0 both"); + clickStart(0); + clickEnd(0); + + } + else if(Input.GetMouseButtonDown(0)){ + //EditorDebug.LogError("0 down"); + clickStart(0); + } + + else if(Input.GetMouseButtonUp(0)){ + //EditorDebug.LogError("0 up"); + clickEnd(0); + + } + + else if(!Input.GetMouseButtonDown(0) && !Input.GetMouseButtonUp(0)){ + //EditorDebug.LogError("0 nix"); + } + + + + + + + } + + private void checkTouches(){ + Touch[] touches = Input.touches; + if(touches.Length > 0 ){ + EditorDebug.LogWarning("Touches Length > 0"); + foreach(Touch touch in touches){ + if(touch.phase == TouchPhase.Began){ + clickStart(touch.fingerId); + } else if(touch.phase == TouchPhase.Ended){ + clickEnd(touch.fingerId); + } + } + } + } + + private void clickStart(int buttonId){ + //EditorDebug.LogError("ClickStart"); + InvokeDownEvent(buttonId); + //clickTimer.StartTimer(ClickTimeInSeconds); + mouseStartPosition = mousePosition; + setIsDown(buttonId, true); + setButtonDownTime(buttonId, Time.timeSinceLevelLoad); + } + + private void setIsDown(int key,bool value){ + if(clickStarted.ContainsKey(key)){ + clickStarted[key] = value; + } else + clickStarted.Add(key, value); + } + + private bool getIsDown(int key){ + if(clickStarted.ContainsKey(key)){ + return clickStarted[key]; + } + return false; + } + + private void setButtonDownTime(int key, double time){ + if(clickStartTime.ContainsKey(key)){ + clickStartTime[key] = time; + } else + clickStartTime.Add(key, time); + } + + private double getButtonDownTime(int key){ + if(clickStartTime.ContainsKey(key)){ + return Time.timeSinceLevelLoad - clickStartTime[key]; + } + return 0.0; + } + + + private void clickEnd(int buttonId){ + //EditorDebug.LogError("ClickEnd"); + InvokeUpEvent(buttonId); + if(getIsDown(buttonId)){ + Vector2 moveDirection = mousePosition - mouseStartPosition; + float clickDistance = moveDirection.magnitude; + if(clickDistance <= ScreenConfig.Instance.SwipeMinDistance || getButtonDownTime(buttonId) < (ScreenConfig.Instance.SwipeMinTime*Time.timeScale)){ + InvokeClickEvent(buttonId); + } else{ // Swipe detected + InvokeSwipeEvent(moveDirection); + } + + setIsDown(buttonId, false); + + } + } + + + private void InvokeClickEvent(int buttonId){ + var handler = ClickEvent; + if (handler == null) { + return; + } + var e = new MouseEventArgs(buttonId); + handler(this, e); + } + + private void InvokeUpEvent(int buttonId){ + var handler = UpEvent; + if (handler == null) { + return; + } + var e = new MouseEventArgs(buttonId); + handler(this, e); + } + + private void InvokeDownEvent(int buttonId){ + var handler = DownEvent; + if (handler == null) { + return; + } + var e = new MouseEventArgs(buttonId); + handler(this, e); + } + + private void InvokeMoveEvent(Vector2 direction, Vector2 currentMousePosition){ + var handler = MoveEvent; + if (handler == null){ + return; + } + var e = new MouseEventArgs(direction); + e.MouseDown = clickStarted; + e.MousPosition = currentMousePosition; + handler(this, e); + } + + private void InvokeSwipeEvent(Vector2 direction){ + var handler = SwipeEvent; + if (handler == null){ + return; + } + direction = new Vector2(direction.x, direction.y*-1); + var e = new MouseEventArgs(direction); + handler(this, e); + } + +} diff --git a/Assets/Scripts/GUI_Module/Wrapper/RectExtension.cs b/Assets/Scripts/GUI_Module/Wrapper/RectExtension.cs new file mode 100755 index 0000000..07e5df0 --- /dev/null +++ b/Assets/Scripts/GUI_Module/Wrapper/RectExtension.cs @@ -0,0 +1,17 @@ +using UnityEngine; +using System.Collections; + +public static class RectExtension { + + public static Rect AddPosition(this Rect rect, Rect rect2){ + rect.x += rect2.x; + rect.y += rect2.y; + return rect; + } + + public static Rect AddPosition(this Rect rect, Vector2 position){ + rect.x += position.x; + rect.y += position.y; + return rect; + } +} diff --git a/Assets/Scripts/General_Module/ControlManager.cs b/Assets/Scripts/General_Module/ControlManager.cs new file mode 100755 index 0000000..465b9df --- /dev/null +++ b/Assets/Scripts/General_Module/ControlManager.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +public sealed class ControlManager where T : MonoBehaviour +{ + private readonly List keysToBeRemoved; + private readonly Dictionary> controllers; + private readonly Dictionary> queuedControllers; + + public ControlManager() { + queuedControllers = new Dictionary>(); + controllers = new Dictionary>(); + keysToBeRemoved = new List(); + } + + public void ClearControllers() { + controllers.Clear(); + } + + public void Reset() + { + controllers.Clear(); + keysToBeRemoved.Clear(); + queuedControllers.Clear(); + } + + public void QueueController(string name, Controller controller) { + if (queuedControllers.ContainsKey(name)) { + queuedControllers.Remove(name); + } + queuedControllers.Add(name, controller); + } + + private void AddController(string name, Controller controller) { + if (controllers.ContainsKey(name)) { + var message = string.Format("must remove controller with name {0}, before attaching a second with the same name.",name); + throw new ApplicationException(message); + } + + controller.ControllerFinished += (sender, e) => keysToBeRemoved.Add(name); + controllers.Add(name, controller); + } + + public void DequeueController(string name) { + keysToBeRemoved.Add(name); + } + + public bool IsControllerAttached(string name) { + return controllers.ContainsKey(name); + } + + public void Update(T entity) { + foreach (var c in this.Controllers) { + c.Update(entity); + } + + foreach (var oc in keysToBeRemoved) { + controllers.Remove(oc); + } + keysToBeRemoved.Clear(); + + foreach (var qc in queuedControllers) { + this.AddController(qc.Key, qc.Value); + } + queuedControllers.Clear(); + } + + public IEnumerable> Controllers { + get { return controllers.Values; } + } +} + + diff --git a/Assets/Scripts/General_Module/Controller.cs b/Assets/Scripts/General_Module/Controller.cs new file mode 100755 index 0000000..3a1c3ae --- /dev/null +++ b/Assets/Scripts/General_Module/Controller.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; + +public abstract class Controller where T : MonoBehaviour +{ + protected Controller () { + // imediately active + Trigger = () => true; + } + + public Func Trigger { + get; + set; + } + + public bool IsTriggered { + get; + private set; + } + + public bool IsFinished { + get; + private set; + } + + public virtual void Update(T entity) + { + if (Trigger == null) { + return; + } + + if (IsTriggered) { + UpdateOverride(entity); + return; + } + + IsTriggered = Trigger(); + } + + protected abstract void UpdateOverride(T entity); + + public event EventHandler> ControllerFinished; + protected void InvokeControllerFinished (T entity) { + var handler = ControllerFinished; + if (handler == null) { + return; + } + + var e = new BehaviourEventArgs (entity); + ControllerFinished (this, e); + IsFinished = true; + } +} + + diff --git a/Assets/Scripts/General_Module/EditorDebug.cs b/Assets/Scripts/General_Module/EditorDebug.cs new file mode 100755 index 0000000..a99146a --- /dev/null +++ b/Assets/Scripts/General_Module/EditorDebug.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using System.Collections; + +public static class EditorDebug { + + public static bool ShowDebugOutsideEditor; + public static void Log(string message){ +#if UNITY_EDITOR + Debug.Log(message); +#endif + if(ShowDebugOutsideEditor) + Debug.Log(message); + } + + public static void LogWarning(string message){ +#if UNITY_EDITOR + Debug.LogWarning(message); +#endif + if(ShowDebugOutsideEditor) + Debug.LogWarning(message); + } + + public static void LogError(string message){ +#if UNITY_EDITOR + Debug.LogError(message); +#endif + if(ShowDebugOutsideEditor) + Debug.LogError(message); + } + + public static void DrawRay(Vector3 start, Vector3 dir){ +#if UNITY_EDITOR + Debug.DrawRay(start, dir); +#endif + } +} diff --git a/Assets/Scripts/General_Module/Resource_Module/ResourceLoadingBehaviour.cs b/Assets/Scripts/General_Module/Resource_Module/ResourceLoadingBehaviour.cs new file mode 100755 index 0000000..40c5318 --- /dev/null +++ b/Assets/Scripts/General_Module/Resource_Module/ResourceLoadingBehaviour.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using asdf.Resources; + + + +public class ResourceLoadingBehaviour : MonoBehaviour +{ + public string ResourcesPath; + public bool LoadAllResourcesInPath; + public string[] ResourceNames; + + private List loadedResources; + + protected ResourceLoadingBehaviour() { + } + + private void Awake() { + if(ResourcesPath != "" && !LoadAllResourcesInPath) + ResourcesPath += "/"; + OnResourcesLoading(EventArgs.Empty); + LoadResources(); + OnResourcesLoaded(EventArgs.Empty); + } + + protected virtual void OnResourcesLoading(EventArgs e) { } + protected virtual void OnResourcesLoaded(EventArgs e) { } + + protected virtual void LoadResources(){ + if(LoadAllResourcesInPath && ResourcesPath != string.Empty){ + loadedResources = ResourceManager.LoadAllResources(ResourcesPath); + + } else{ + foreach(string resource in ResourceNames){ + + ResourceManager.LoadResource(ResourcesPath + resource); + } + } + } + + protected virtual void UnloadResources(){ + if(LoadAllResourcesInPath){ + ResourceManager.LoadAllResources(ResourcesPath); + } else{ + foreach(string resource in loadedResources){ + ResourceManager.UnloadResource(ResourcesPath + resource); + } + } + } +} + + + diff --git a/Assets/Scripts/General_Module/Resource_Module/ResourceManager.cs b/Assets/Scripts/General_Module/Resource_Module/ResourceManager.cs new file mode 100755 index 0000000..b996e10 --- /dev/null +++ b/Assets/Scripts/General_Module/Resource_Module/ResourceManager.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace asdf.Resources{ + + +public static class ResourceManager +{ + public static IEnumerable Resource { + get{ + return _resources.Keys; + } + } + private static readonly Dictionary _resources; + + static ResourceManager() { + _resources = new Dictionary(); + } + + public static bool IsResourceLoaded(string key) + { + return _resources.ContainsKey(key); + } + + public static bool UnloadResource(string key) { + if (_resources.ContainsKey(key)) { + _resources.Remove(key); + return true; + } + return false; + } + + public static List LoadAllResources(string path){ + UnityEngine.Object[] objects = UnityEngine.Resources.LoadAll(path); + List loadedResources = new List(); + foreach(UnityEngine.Object obj in objects){ + string resourcePath = path + "/" + obj.name; + try{ + _resources.Add(resourcePath, obj); + } catch(Exception e){ + EditorDebug.Log(e.Message); + } + loadedResources.Add(obj.name); + } + if(loadedResources.Count == 0) + EditorDebug.LogWarning("No Resources found to load on: " + path); + return loadedResources; + } + + public static void LoadResource(string key) + { + if (IsResourceLoaded(key)) { + var message = string.Format("Resource {0} already loaded, skipping.", key); + EditorDebug.Log(message); + return; + } + var r = UnityEngine.Resources.Load(key); + if (r == null) { + EditorDebug.Log("resouce not found" + key + " while loading"); + } + _resources.Add(key, r); + } + + public static T GetResource(string key) where T : UnityEngine.Object + { + if (!IsResourceLoaded(key)) { + EditorDebug.LogWarning("Key : " + key + " not found - Getresource"); + return null; + } + return (T) _resources[key]; + } + + public static T CreateInstance(string key) where T : UnityEngine.Object { + if (!IsResourceLoaded(key)) { + EditorDebug.LogWarning("Key: " + key + " not found - GetInstance"); + } + var res = _resources[key]; + return (T) GameObject.Instantiate(res, Vector3.zero, Quaternion.identity); + } + + +} + +} diff --git a/Assets/Scripts/General_Module/Time_Module/TimeBehaviour.cs b/Assets/Scripts/General_Module/Time_Module/TimeBehaviour.cs new file mode 100755 index 0000000..872695a --- /dev/null +++ b/Assets/Scripts/General_Module/Time_Module/TimeBehaviour.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +public class TimeBehaviour : MonoBehaviour { + + public static TimeBehaviour Instance{get;private set;} + + void Awake(){ + Instance = this; + timerList = new List(); + } + private List timerList; + + // Use this for initialization + void Start () { + + } + + // Update is called once per frame + void Update () { + foreach(Timer t in timerList) + t.Update(); + } + + public void AddTimer(Timer timer){ + timerList.Add(timer); + } + + public void RemoveTimer(Timer timer){ + timerList.Remove(timer); + } +} diff --git a/Assets/Scripts/General_Module/Time_Module/Timer.cs b/Assets/Scripts/General_Module/Time_Module/Timer.cs new file mode 100755 index 0000000..4a340c8 --- /dev/null +++ b/Assets/Scripts/General_Module/Time_Module/Timer.cs @@ -0,0 +1,61 @@ +using UnityEngine; +using System.Collections; +using System; + +public class Timer { + + private float currentTime = 0; + private float maxTime; + private bool run = false; + + public event EventHandler TimerFinished; + + public Timer(){ + init(); + } + + public Timer(float timeInSeconds){ + init(); + maxTime = timeInSeconds; + } + + ~Timer(){ + TimeBehaviour.Instance.RemoveTimer(this); + } + + // Update is called once per frame + public void Update () { + if(run){ + currentTime += Time.deltaTime; + if(currentTime >= maxTime){ + InvokeTimerFinished(); + StopTimer(); + } + } + + + } + + public void StartTimer(float timeInSeconds){ + StopTimer(); + maxTime = timeInSeconds; + run = true; + } + + public void StopTimer(){ + currentTime = 0; + run = false; + } + + private void init(){ + TimeBehaviour.Instance.AddTimer(this); + } + + private void InvokeTimerFinished(){ + var handler = TimerFinished; + if (handler == null) { + return; + } + handler(this, null); + } +} diff --git a/Assets/Scripts/Samples/BehaviourEventArgs.cs b/Assets/Scripts/Samples/BehaviourEventArgs.cs new file mode 100755 index 0000000..298b0e3 --- /dev/null +++ b/Assets/Scripts/Samples/BehaviourEventArgs.cs @@ -0,0 +1,16 @@ +using System; +using UnityEngine; + +public class BehaviourEventArgs : EventArgs where T : MonoBehaviour +{ + public BehaviourEventArgs(T behaviour) { + Behaviour = behaviour; + } + + public T Behaviour { + get; + private set; + } +} + + diff --git a/Assets/Scripts/Samples/SampleMovementController.cs b/Assets/Scripts/Samples/SampleMovementController.cs new file mode 100755 index 0000000..9e983b7 --- /dev/null +++ b/Assets/Scripts/Samples/SampleMovementController.cs @@ -0,0 +1,50 @@ +using System; +using UnityEngine; + + +/* UNTESTET +public class SampleMovmentController : EntityController +{ + private readonly Vector3 targetPosition; + private bool lookAt; + + public LinearMovementController(Vector3 targetPosition) + : this(targetPosition, true) { } + + public LinearMovementController(Vector3 targetPosition, bool lookAt) { + this.lookAt = lookAt; + this.targetPosition = targetPosition; + } + + protected override void UpdateOverride (EntityBehaviour entity) + { + if (IsFinished || entity == null) { + return; + } + + var isCloseEnough = entity.transform.position.IsCloseEnoughTo(targetPosition); + if (isCloseEnough) { + return; + } + + // v = s / t + // s = v * t + var currentPosition = entity.transform.position; + + var direction = targetPosition - currentPosition; + + var normalizedDirection = direction; + normalizedDirection.Normalize(); + + var offset = entity.Speed * Time.deltaTime; + var movementVector = normalizedDirection * offset; + + entity.transform.position = entity.transform.position + movementVector; + if (lookAt) { + entity.gameObject.transform.LookAt(entity.transform.position + normalizedDirection); + } + } +} +*/ + + diff --git a/Assets/Scripts/Samples/ScreenCamera_sample.prefab b/Assets/Scripts/Samples/ScreenCamera_sample.prefab new file mode 100755 index 0000000..b88c318 Binary files /dev/null and b/Assets/Scripts/Samples/ScreenCamera_sample.prefab differ diff --git a/Assets/Scripts/Storage_Module/LocalStorage.cs b/Assets/Scripts/Storage_Module/LocalStorage.cs new file mode 100755 index 0000000..5af2195 --- /dev/null +++ b/Assets/Scripts/Storage_Module/LocalStorage.cs @@ -0,0 +1,64 @@ +using UnityEngine; +using System.Collections; +using System.Text; +using System.IO; +using System; + +public class LocalStorage { + public const int BUF_SIZE = 64; + private static UTF8Encoding enc = new UTF8Encoding(); + /* + * Writes (and creates if necessary) a file in local storage + * and fills it with the content of a byte array. + */ + public static void WriteBinaryFile(string name, byte[] data) { + var w = new BinaryWriter(File.Open(getLocalStoragePath()+"/"+name, FileMode.Create)); + w.Write(data); + w.Close(); + } + + /* + * Reads a whole file from local storage into an byte array. + * + * The file name is appended to the local storage path and opened + * read-only. + * The file is read in BUF_SIZE chunks (64 bytes by default). + */ + public static byte[] ReadBinaryFile(string name) { + var r = new BinaryReader(File.Open(getLocalStoragePath()+"/"+name, FileMode.Open)); + byte[] result = new byte[0]; + byte[] buf = new byte[BUF_SIZE]; + int read, count = 0;; + do { + //read = r.Read(buf, count*BUF_SIZE, BUF_SIZE); + read = r.Read(buf, 0, BUF_SIZE); + byte[] new_result = new byte[count*BUF_SIZE + read]; + Array.Copy(result, 0, new_result, 0, count*BUF_SIZE); + Array.Copy(buf, 0, new_result, count*BUF_SIZE, read); + result = new_result; + count++; + } while (read == BUF_SIZE); + r.Close(); + return result; + } + + /* + * Reads a whole UTF8 formatted file from local storage into a string. + */ + public static string ReadUTF8File(string name) { + var data = ReadBinaryFile(name); + return enc.GetString(data); + } + + /** + * Writes (and creates if necessary) an UTF8 formatted file in local + * storage and fills it with the content of the string. + */ + public static void WriteUTF8File(string name, string data) { + WriteBinaryFile(name, enc.GetBytes(data)); + } + + private static string getLocalStoragePath() { + return Application.persistentDataPath; + } +} diff --git a/Assets/Scripts/Unity_Extensions/_FloatExtensions.cs b/Assets/Scripts/Unity_Extensions/_FloatExtensions.cs new file mode 100755 index 0000000..36a1273 --- /dev/null +++ b/Assets/Scripts/Unity_Extensions/_FloatExtensions.cs @@ -0,0 +1,14 @@ +using System; + +public static class _FloatExtensions +{ + public static float ToRadians(this float degrees){ + return (float) (degrees * Math.PI / 180); + } + + public static float ToDegrees(this float radians){ + return (float) (radians / Math.PI * 180); + } +} + + diff --git a/Assets/Scripts/Unity_Extensions/_RectExtension.cs b/Assets/Scripts/Unity_Extensions/_RectExtension.cs new file mode 100755 index 0000000..124f539 --- /dev/null +++ b/Assets/Scripts/Unity_Extensions/_RectExtension.cs @@ -0,0 +1,12 @@ +using UnityEngine; +using System.Collections; + +public static class _RectExtension { + + public static Rect AddPosition(this Rect rect, Rect rect2){ + rect.x += rect2.x; + rect.y += rect2.y; + return rect; + } + +} diff --git a/Assets/Scripts/Unity_Extensions/_Vector2Extensions.cs b/Assets/Scripts/Unity_Extensions/_Vector2Extensions.cs new file mode 100755 index 0000000..3d12967 --- /dev/null +++ b/Assets/Scripts/Unity_Extensions/_Vector2Extensions.cs @@ -0,0 +1,15 @@ +using System; +using UnityEngine; + + public static class _Vector2Extensions + { + public static Vector2 Rotate(this Vector2 point, float degrees) + { + var radians = degrees.ToRadians(); + var x = (float) (Math.Cos(radians) * point.x - Math.Sin(radians) * point.y); + var y = (float) (Math.Sin(radians) * point.x + Math.Cos(radians) * point.y); + return new Vector2(x, y); + } + } + + diff --git a/Assets/Scripts/Unity_Extensions/_Vector3Extensions.cs b/Assets/Scripts/Unity_Extensions/_Vector3Extensions.cs new file mode 100755 index 0000000..c3401ce --- /dev/null +++ b/Assets/Scripts/Unity_Extensions/_Vector3Extensions.cs @@ -0,0 +1,11 @@ +using System; +using UnityEngine; + +public static class _Vector3Extensions +{ + public static Vector2 ToVector2(this Vector3 vec) { + return new Vector2(vec.x,vec.y); + } +} + + diff --git a/Assets/Scripts/Facebook.cs b/Assets/Scripts/Web_Module/Facebook.cs old mode 100644 new mode 100755 similarity index 88% rename from Assets/Scripts/Facebook.cs rename to Assets/Scripts/Web_Module/Facebook.cs index ee3c3c7..b30436b --- a/Assets/Scripts/Facebook.cs +++ b/Assets/Scripts/Web_Module/Facebook.cs @@ -1,6 +1,5 @@ using UnityEngine; using System.Runtime.InteropServices; -using System; public class Facebook : MonoBehaviour { public string AppId; @@ -105,5 +104,11 @@ private static void _deleteSession() {} extern static private void _graphRequest(string methodname, string[] param, string method); [System.Runtime.InteropServices.DllImport("__Internal")] extern static private void _deleteSession(); + #else + private static void _init(string AppId) {} + private static void _authorize(int permissions) {getInstance().loggedOut();} + private static void _logout() {getInstance().loggedOut();} + private static void _graphRequest(string methodname, string[] param, string method) {getInstance().requestFailed("Not implemented");} + private static void _deleteSession() {} #endif } diff --git a/Library/AssetImportState b/Library/AssetImportState old mode 100644 new mode 100755 index da864f6..f82f7e9 --- a/Library/AssetImportState +++ b/Library/AssetImportState @@ -1 +1 @@ -9;0 \ No newline at end of file +2;0 \ No newline at end of file diff --git a/Library/EditorUserBuildSettings.asset b/Library/EditorUserBuildSettings.asset old mode 100644 new mode 100755 index 7aa5a3b..be2286f Binary files a/Library/EditorUserBuildSettings.asset and b/Library/EditorUserBuildSettings.asset differ diff --git a/Library/InspectorExpandedItems.asset b/Library/InspectorExpandedItems.asset old mode 100644 new mode 100755 index 2c4f9d6..936ba5a Binary files a/Library/InspectorExpandedItems.asset and b/Library/InspectorExpandedItems.asset differ diff --git a/Library/ScriptMapper b/Library/ScriptMapper old mode 100644 new mode 100755 index 68ea87f..f203a51 Binary files a/Library/ScriptMapper and b/Library/ScriptMapper differ diff --git a/Library/expandedItems b/Library/expandedItems old mode 100644 new mode 100755 index cefc0cc..ef89f2f Binary files a/Library/expandedItems and b/Library/expandedItems differ diff --git a/Library/guidmapper b/Library/guidmapper old mode 100644 new mode 100755 index 4d03f65..80355d8 Binary files a/Library/guidmapper and b/Library/guidmapper differ diff --git a/Library/metadata/00/00000000000000001000000000000000 b/Library/metadata/00/00000000000000001000000000000000 old mode 100644 new mode 100755 index 4578bb9..9aceffb Binary files a/Library/metadata/00/00000000000000001000000000000000 and b/Library/metadata/00/00000000000000001000000000000000 differ diff --git a/Library/metadata/00/00000000000000002000000000000000 b/Library/metadata/00/00000000000000002000000000000000 old mode 100644 new mode 100755 index 5ffe1a3..62123ec Binary files a/Library/metadata/00/00000000000000002000000000000000 and b/Library/metadata/00/00000000000000002000000000000000 differ diff --git a/Library/metadata/00/00000000000000003000000000000000 b/Library/metadata/00/00000000000000003000000000000000 old mode 100644 new mode 100755 index 7287559..cd64c2f Binary files a/Library/metadata/00/00000000000000003000000000000000 and b/Library/metadata/00/00000000000000003000000000000000 differ diff --git a/Library/metadata/00/00000000000000004000000000000000 b/Library/metadata/00/00000000000000004000000000000000 old mode 100644 new mode 100755 index 0abb17c..bac864b Binary files a/Library/metadata/00/00000000000000004000000000000000 and b/Library/metadata/00/00000000000000004000000000000000 differ diff --git a/Library/metadata/00/00000000000000005000000000000000 b/Library/metadata/00/00000000000000005000000000000000 old mode 100644 new mode 100755 index 9cb95ea..634e29d Binary files a/Library/metadata/00/00000000000000005000000000000000 and b/Library/metadata/00/00000000000000005000000000000000 differ diff --git a/Library/metadata/00/00000000000000006000000000000000 b/Library/metadata/00/00000000000000006000000000000000 old mode 100644 new mode 100755 index ae80af4..9d8d2e6 Binary files a/Library/metadata/00/00000000000000006000000000000000 and b/Library/metadata/00/00000000000000006000000000000000 differ diff --git a/Library/metadata/00/00000000000000007000000000000000 b/Library/metadata/00/00000000000000007000000000000000 old mode 100644 new mode 100755 index 3d30c8d..6b666be Binary files a/Library/metadata/00/00000000000000007000000000000000 and b/Library/metadata/00/00000000000000007000000000000000 differ diff --git a/Library/metadata/00/00000000000000008000000000000000 b/Library/metadata/00/00000000000000008000000000000000 old mode 100644 new mode 100755 index 0e7041c..8d6cd03 Binary files a/Library/metadata/00/00000000000000008000000000000000 and b/Library/metadata/00/00000000000000008000000000000000 differ diff --git a/Library/metadata/00/00000000000000009000000000000000 b/Library/metadata/00/00000000000000009000000000000000 old mode 100644 new mode 100755 index 07e9dd8..a9587dc Binary files a/Library/metadata/00/00000000000000009000000000000000 and b/Library/metadata/00/00000000000000009000000000000000 differ diff --git a/Library/metadata/00/0000000000000000a000000000000000 b/Library/metadata/00/0000000000000000a000000000000000 old mode 100644 new mode 100755 index 1f805df..2c7c8e5 Binary files a/Library/metadata/00/0000000000000000a000000000000000 and b/Library/metadata/00/0000000000000000a000000000000000 differ diff --git a/Library/metadata/00/0000000000000000b000000000000000 b/Library/metadata/00/0000000000000000b000000000000000 old mode 100644 new mode 100755 index d902849..c84f76e Binary files a/Library/metadata/00/0000000000000000b000000000000000 and b/Library/metadata/00/0000000000000000b000000000000000 differ diff --git a/Library/metadata/00/0000000000000000c000000000000000 b/Library/metadata/00/0000000000000000c000000000000000 old mode 100644 new mode 100755 index c1570ab..16ff710 Binary files a/Library/metadata/00/0000000000000000c000000000000000 and b/Library/metadata/00/0000000000000000c000000000000000 differ diff --git a/Library/metadata/00/00380c23ce9724d5b81f088c57abf158 b/Library/metadata/00/00380c23ce9724d5b81f088c57abf158 deleted file mode 100644 index 0702ef4..0000000 Binary files a/Library/metadata/00/00380c23ce9724d5b81f088c57abf158 and /dev/null differ diff --git a/Library/metadata/05/05e997c68ee1b442fbcbe517f5ddca4e b/Library/metadata/01/01f201bc85686b34d8a91da378db9a1d old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/05/05e997c68ee1b442fbcbe517f5ddca4e rename to Library/metadata/01/01f201bc85686b34d8a91da378db9a1d index 71ab7b0..1da8ed6 Binary files a/Library/metadata/05/05e997c68ee1b442fbcbe517f5ddca4e and b/Library/metadata/01/01f201bc85686b34d8a91da378db9a1d differ diff --git a/Library/metadata/01/01f8d90061cc0cb4c8119480cea409a3 b/Library/metadata/01/01f8d90061cc0cb4c8119480cea409a3 new file mode 100755 index 0000000..a2ac826 Binary files /dev/null and b/Library/metadata/01/01f8d90061cc0cb4c8119480cea409a3 differ diff --git a/Library/metadata/03/038cfba9c59da46bc87e6b685ed7d705 b/Library/metadata/03/038cfba9c59da46bc87e6b685ed7d705 deleted file mode 100644 index d00511d..0000000 Binary files a/Library/metadata/03/038cfba9c59da46bc87e6b685ed7d705 and /dev/null differ diff --git a/Library/metadata/21/218c7b9c8aeed41cca0d621632047733 b/Library/metadata/03/03ecbc6d1d5a44d4d86ba12fd101bfc2 old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/21/218c7b9c8aeed41cca0d621632047733 rename to Library/metadata/03/03ecbc6d1d5a44d4d86ba12fd101bfc2 index f3c9869..82288d7 Binary files a/Library/metadata/21/218c7b9c8aeed41cca0d621632047733 and b/Library/metadata/03/03ecbc6d1d5a44d4d86ba12fd101bfc2 differ diff --git a/Library/metadata/05/056d95cc5950feb4bb6df8d72b2c5bc9 b/Library/metadata/05/056d95cc5950feb4bb6df8d72b2c5bc9 new file mode 100755 index 0000000..7bded8c Binary files /dev/null and b/Library/metadata/05/056d95cc5950feb4bb6df8d72b2c5bc9 differ diff --git a/Library/metadata/06/06092839f9a404844b55a963be16cbf9 b/Library/metadata/06/06092839f9a404844b55a963be16cbf9 deleted file mode 100644 index 6d5d01a..0000000 Binary files a/Library/metadata/06/06092839f9a404844b55a963be16cbf9 and /dev/null differ diff --git a/Library/metadata/07/07229dbbde2824e078596bea1a9f4814 b/Library/metadata/07/07229dbbde2824e078596bea1a9f4814 deleted file mode 100644 index 2aabd29..0000000 Binary files a/Library/metadata/07/07229dbbde2824e078596bea1a9f4814 and /dev/null differ diff --git a/Library/metadata/07/072743a6dcf09194a863f717feb4a170 b/Library/metadata/07/072743a6dcf09194a863f717feb4a170 new file mode 100755 index 0000000..2ed25d3 Binary files /dev/null and b/Library/metadata/07/072743a6dcf09194a863f717feb4a170 differ diff --git a/Library/metadata/07/07f217e942a5c5e46ad842354fdc651d b/Library/metadata/07/07f217e942a5c5e46ad842354fdc651d new file mode 100755 index 0000000..432ba5c Binary files /dev/null and b/Library/metadata/07/07f217e942a5c5e46ad842354fdc651d differ diff --git a/Library/metadata/61/61f074b0d27a64a5fb3772e35ffce168 b/Library/metadata/08/08ec628b35cc8654bb7775ad8ee76c95 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/61/61f074b0d27a64a5fb3772e35ffce168 rename to Library/metadata/08/08ec628b35cc8654bb7775ad8ee76c95 index 13409d9..81de99e Binary files a/Library/metadata/61/61f074b0d27a64a5fb3772e35ffce168 and b/Library/metadata/08/08ec628b35cc8654bb7775ad8ee76c95 differ diff --git a/Library/metadata/09/0928248368edf41b7a927ab1e67a0318 b/Library/metadata/09/0928248368edf41b7a927ab1e67a0318 old mode 100644 new mode 100755 index 90ea4d4..f06294a Binary files a/Library/metadata/09/0928248368edf41b7a927ab1e67a0318 and b/Library/metadata/09/0928248368edf41b7a927ab1e67a0318 differ diff --git a/Library/metadata/09/0973d9a626de05c49b2558b4ef652fdd b/Library/metadata/09/0973d9a626de05c49b2558b4ef652fdd new file mode 100755 index 0000000..207b0eb Binary files /dev/null and b/Library/metadata/09/0973d9a626de05c49b2558b4ef652fdd differ diff --git a/Library/metadata/0b/0b06ed4fef7fb4e8fae61d235fe083ae b/Library/metadata/0b/0b06ed4fef7fb4e8fae61d235fe083ae old mode 100644 new mode 100755 index 8322503..2019b56 Binary files a/Library/metadata/0b/0b06ed4fef7fb4e8fae61d235fe083ae and b/Library/metadata/0b/0b06ed4fef7fb4e8fae61d235fe083ae differ diff --git a/Library/metadata/75/75f2a4d11fa14457e8cfa19f3b743869 b/Library/metadata/0e/0e04a5ee27d473a44a5be6c0dcc35d52 old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/75/75f2a4d11fa14457e8cfa19f3b743869 rename to Library/metadata/0e/0e04a5ee27d473a44a5be6c0dcc35d52 index 4c2a532..77a566e Binary files a/Library/metadata/75/75f2a4d11fa14457e8cfa19f3b743869 and b/Library/metadata/0e/0e04a5ee27d473a44a5be6c0dcc35d52 differ diff --git a/Library/metadata/0e/0e6e31470781d4237a0967451f9e41b3 b/Library/metadata/0e/0e6e31470781d4237a0967451f9e41b3 deleted file mode 100644 index a2bae54..0000000 Binary files a/Library/metadata/0e/0e6e31470781d4237a0967451f9e41b3 and /dev/null differ diff --git a/Library/metadata/14/143e54aacaa81461ba11f913732c6560 b/Library/metadata/14/143e54aacaa81461ba11f913732c6560 old mode 100644 new mode 100755 index caffe33..35e8b9b Binary files a/Library/metadata/14/143e54aacaa81461ba11f913732c6560 and b/Library/metadata/14/143e54aacaa81461ba11f913732c6560 differ diff --git a/Library/metadata/e6/e6bd994d89ff84d938706a3e7fd2ffb1 b/Library/metadata/15/15a7a61093058f74a8ce86f7c5e2126e old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/e6/e6bd994d89ff84d938706a3e7fd2ffb1 rename to Library/metadata/15/15a7a61093058f74a8ce86f7c5e2126e index 0f13ea8..aa16750 Binary files a/Library/metadata/e6/e6bd994d89ff84d938706a3e7fd2ffb1 and b/Library/metadata/15/15a7a61093058f74a8ce86f7c5e2126e differ diff --git a/Library/metadata/16/168ae178463a1a5498254e565fff0b30 b/Library/metadata/16/168ae178463a1a5498254e565fff0b30 new file mode 100755 index 0000000..0773db3 Binary files /dev/null and b/Library/metadata/16/168ae178463a1a5498254e565fff0b30 differ diff --git a/Library/metadata/16/169af1b2c138188429c648ee19aa184a b/Library/metadata/16/169af1b2c138188429c648ee19aa184a new file mode 100755 index 0000000..a86d924 Binary files /dev/null and b/Library/metadata/16/169af1b2c138188429c648ee19aa184a differ diff --git a/Library/metadata/17/170ac057f62b20940917040494dba9f5 b/Library/metadata/17/170ac057f62b20940917040494dba9f5 new file mode 100755 index 0000000..5fe9d6b Binary files /dev/null and b/Library/metadata/17/170ac057f62b20940917040494dba9f5 differ diff --git a/Library/metadata/1a/1ad905f2a5ec64cc08328503d4b9ce31 b/Library/metadata/1a/1ad905f2a5ec64cc08328503d4b9ce31 deleted file mode 100644 index 071d038..0000000 Binary files a/Library/metadata/1a/1ad905f2a5ec64cc08328503d4b9ce31 and /dev/null differ diff --git a/Library/metadata/1a/1adc1dfcbc4c7c940b6bebbd4f512cbf b/Library/metadata/1a/1adc1dfcbc4c7c940b6bebbd4f512cbf new file mode 100755 index 0000000..603dd1f Binary files /dev/null and b/Library/metadata/1a/1adc1dfcbc4c7c940b6bebbd4f512cbf differ diff --git a/Library/metadata/99/99b3bcafe32a7421d90ca4d0f3acc5c4 b/Library/metadata/1b/1b59141107c09164e87b4faabab22b9b old mode 100644 new mode 100755 similarity index 95% rename from Library/metadata/99/99b3bcafe32a7421d90ca4d0f3acc5c4 rename to Library/metadata/1b/1b59141107c09164e87b4faabab22b9b index 1ba6e96..218e8f1 Binary files a/Library/metadata/99/99b3bcafe32a7421d90ca4d0f3acc5c4 and b/Library/metadata/1b/1b59141107c09164e87b4faabab22b9b differ diff --git a/Library/metadata/1b/1b98ddffeeef24646a74f3909628ac84 b/Library/metadata/1b/1b98ddffeeef24646a74f3909628ac84 deleted file mode 100644 index 0589fbf..0000000 Binary files a/Library/metadata/1b/1b98ddffeeef24646a74f3909628ac84 and /dev/null differ diff --git a/Library/metadata/1e/1e1b105f528c44f918ed78e28599f0dd b/Library/metadata/1e/1e1b105f528c44f918ed78e28599f0dd deleted file mode 100644 index da7f461..0000000 Binary files a/Library/metadata/1e/1e1b105f528c44f918ed78e28599f0dd and /dev/null differ diff --git a/Library/metadata/1e/1e7dd399379d19742acce63a95829823 b/Library/metadata/1e/1e7dd399379d19742acce63a95829823 new file mode 100755 index 0000000..30e7822 Binary files /dev/null and b/Library/metadata/1e/1e7dd399379d19742acce63a95829823 differ diff --git a/Library/metadata/1e/1eff91b022f824b94bfa5f65d896751e b/Library/metadata/1e/1eff91b022f824b94bfa5f65d896751e old mode 100644 new mode 100755 index 7ed8137..34b7ddf Binary files a/Library/metadata/1e/1eff91b022f824b94bfa5f65d896751e and b/Library/metadata/1e/1eff91b022f824b94bfa5f65d896751e differ diff --git a/Library/metadata/20/205316bdefae37d4d94f8cb63ab7c10d b/Library/metadata/20/205316bdefae37d4d94f8cb63ab7c10d new file mode 100755 index 0000000..7f85ffb Binary files /dev/null and b/Library/metadata/20/205316bdefae37d4d94f8cb63ab7c10d differ diff --git a/Library/metadata/20/2060c4ba03eff4abea5ff3fb3ca15d86 b/Library/metadata/20/2060c4ba03eff4abea5ff3fb3ca15d86 new file mode 100755 index 0000000..d1e26d2 Binary files /dev/null and b/Library/metadata/20/2060c4ba03eff4abea5ff3fb3ca15d86 differ diff --git a/Library/metadata/23/23dfc8f8268c842daae95cad7c119af1 b/Library/metadata/23/23dfc8f8268c842daae95cad7c119af1 deleted file mode 100644 index 77a57e2..0000000 Binary files a/Library/metadata/23/23dfc8f8268c842daae95cad7c119af1 and /dev/null differ diff --git a/Library/metadata/24/244165b10e4714bd59799b225c463ee0 b/Library/metadata/24/244165b10e4714bd59799b225c463ee0 old mode 100644 new mode 100755 index e19ffb5..f3928dc Binary files a/Library/metadata/24/244165b10e4714bd59799b225c463ee0 and b/Library/metadata/24/244165b10e4714bd59799b225c463ee0 differ diff --git a/Library/metadata/25/25e70861a0c4f0149959cd3eda0be72d b/Library/metadata/25/25e70861a0c4f0149959cd3eda0be72d new file mode 100755 index 0000000..f5da0c2 Binary files /dev/null and b/Library/metadata/25/25e70861a0c4f0149959cd3eda0be72d differ diff --git a/Library/metadata/26/2639b407c70904ec3bc10cf8f0da2e1b b/Library/metadata/26/2639b407c70904ec3bc10cf8f0da2e1b deleted file mode 100644 index ccffc99..0000000 Binary files a/Library/metadata/26/2639b407c70904ec3bc10cf8f0da2e1b and /dev/null differ diff --git a/Library/metadata/26/267803676899749e98212c8f0891f1fc b/Library/metadata/26/267803676899749e98212c8f0891f1fc deleted file mode 100644 index 50d6094..0000000 Binary files a/Library/metadata/26/267803676899749e98212c8f0891f1fc and /dev/null differ diff --git a/Library/metadata/27/273ec8e5bc0934bc4b851a7264b59f10 b/Library/metadata/27/273ec8e5bc0934bc4b851a7264b59f10 deleted file mode 100644 index 8773d61..0000000 Binary files a/Library/metadata/27/273ec8e5bc0934bc4b851a7264b59f10 and /dev/null differ diff --git a/Library/metadata/27/278ea125c61b243e68dd49285d212abb b/Library/metadata/27/278ea125c61b243e68dd49285d212abb new file mode 100755 index 0000000..14f12d6 Binary files /dev/null and b/Library/metadata/27/278ea125c61b243e68dd49285d212abb differ diff --git a/Library/metadata/27/27c1d7eafdf834aa0a091d965a690d5e b/Library/metadata/27/27c1d7eafdf834aa0a091d965a690d5e deleted file mode 100644 index e536a6f..0000000 Binary files a/Library/metadata/27/27c1d7eafdf834aa0a091d965a690d5e and /dev/null differ diff --git a/Library/metadata/2a/2aa094b88d12f474885baf9b3feb944e b/Library/metadata/2a/2aa094b88d12f474885baf9b3feb944e new file mode 100755 index 0000000..22b62fb Binary files /dev/null and b/Library/metadata/2a/2aa094b88d12f474885baf9b3feb944e differ diff --git a/Library/metadata/2b/2b17f70b30de84b329371846b52f34a5 b/Library/metadata/2b/2b17f70b30de84b329371846b52f34a5 deleted file mode 100644 index 4995d2a..0000000 Binary files a/Library/metadata/2b/2b17f70b30de84b329371846b52f34a5 and /dev/null differ diff --git a/Library/metadata/2b/2b50fecc0f21d4cc68d0bb15cdb5e1cf b/Library/metadata/2b/2b50fecc0f21d4cc68d0bb15cdb5e1cf deleted file mode 100644 index c9816fc..0000000 Binary files a/Library/metadata/2b/2b50fecc0f21d4cc68d0bb15cdb5e1cf and /dev/null differ diff --git a/Library/metadata/ec/ec029f67244dc4771b3bc614dacb4904 b/Library/metadata/2c/2ca37e437c2f6d148837cce8967d0afe old mode 100644 new mode 100755 similarity index 95% rename from Library/metadata/ec/ec029f67244dc4771b3bc614dacb4904 rename to Library/metadata/2c/2ca37e437c2f6d148837cce8967d0afe index 99ff68c..e81177b Binary files a/Library/metadata/ec/ec029f67244dc4771b3bc614dacb4904 and b/Library/metadata/2c/2ca37e437c2f6d148837cce8967d0afe differ diff --git a/Library/metadata/6e/6e4bf482f0a8849eaa949604e61b8a57 b/Library/metadata/2d/2d48cc4defa2de043ac611fa40fd7348 old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/6e/6e4bf482f0a8849eaa949604e61b8a57 rename to Library/metadata/2d/2d48cc4defa2de043ac611fa40fd7348 index 32ab926..11ebb99 Binary files a/Library/metadata/6e/6e4bf482f0a8849eaa949604e61b8a57 and b/Library/metadata/2d/2d48cc4defa2de043ac611fa40fd7348 differ diff --git a/Library/metadata/2d/2dcbd541882c57e4da492b676d905291 b/Library/metadata/2d/2dcbd541882c57e4da492b676d905291 new file mode 100755 index 0000000..ab7e72a Binary files /dev/null and b/Library/metadata/2d/2dcbd541882c57e4da492b676d905291 differ diff --git a/Library/metadata/2e/2e652a87a367543408dd32396f18cb55 b/Library/metadata/2e/2e652a87a367543408dd32396f18cb55 deleted file mode 100644 index 984bc78..0000000 Binary files a/Library/metadata/2e/2e652a87a367543408dd32396f18cb55 and /dev/null differ diff --git a/Library/metadata/2e/2e767587b5e324af2bdee4bb47860003 b/Library/metadata/2e/2e767587b5e324af2bdee4bb47860003 deleted file mode 100644 index 872cf8f..0000000 Binary files a/Library/metadata/2e/2e767587b5e324af2bdee4bb47860003 and /dev/null differ diff --git a/Library/metadata/ad/ad912fe4e14d84b3ca5101c27aeae9dd b/Library/metadata/2f/2f2831bb0e5e88f4ba4fe81cec864cf3 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/ad/ad912fe4e14d84b3ca5101c27aeae9dd rename to Library/metadata/2f/2f2831bb0e5e88f4ba4fe81cec864cf3 index 2696948..5efcfa6 Binary files a/Library/metadata/ad/ad912fe4e14d84b3ca5101c27aeae9dd and b/Library/metadata/2f/2f2831bb0e5e88f4ba4fe81cec864cf3 differ diff --git a/Library/metadata/30/30f11e24dfdd44034bcb143f910f3b13 b/Library/metadata/30/30f11e24dfdd44034bcb143f910f3b13 new file mode 100755 index 0000000..242677c Binary files /dev/null and b/Library/metadata/30/30f11e24dfdd44034bcb143f910f3b13 differ diff --git a/Library/metadata/33/330ad3f4aab3848fbbbd5b25ff4757b5 b/Library/metadata/33/330ad3f4aab3848fbbbd5b25ff4757b5 new file mode 100755 index 0000000..671f8dd Binary files /dev/null and b/Library/metadata/33/330ad3f4aab3848fbbbd5b25ff4757b5 differ diff --git a/Library/metadata/33/33d440f38293046479a35a51cda1e43c b/Library/metadata/33/33d440f38293046479a35a51cda1e43c deleted file mode 100644 index 10f12ce..0000000 Binary files a/Library/metadata/33/33d440f38293046479a35a51cda1e43c and /dev/null differ diff --git a/Library/metadata/31/31baf0855512a41809273dfe69affc33 b/Library/metadata/33/33dfdafdbdb25c4448128c2bc42ff52e old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/31/31baf0855512a41809273dfe69affc33 rename to Library/metadata/33/33dfdafdbdb25c4448128c2bc42ff52e index 926a998..e5c99df Binary files a/Library/metadata/31/31baf0855512a41809273dfe69affc33 and b/Library/metadata/33/33dfdafdbdb25c4448128c2bc42ff52e differ diff --git a/Library/metadata/39/39a0546ffb29041438b5adf6f16404db b/Library/metadata/39/39a0546ffb29041438b5adf6f16404db new file mode 100755 index 0000000..4a6a61d Binary files /dev/null and b/Library/metadata/39/39a0546ffb29041438b5adf6f16404db differ diff --git a/Library/metadata/3a/3a88f2585016e41389afef114c1be68a b/Library/metadata/3a/3a88f2585016e41389afef114c1be68a deleted file mode 100644 index fa15ecf..0000000 Binary files a/Library/metadata/3a/3a88f2585016e41389afef114c1be68a and /dev/null differ diff --git a/Library/metadata/3a/3ac399cfe326c433c912f73dcdb44cf3 b/Library/metadata/3a/3ac399cfe326c433c912f73dcdb44cf3 deleted file mode 100644 index fcb1e8c..0000000 Binary files a/Library/metadata/3a/3ac399cfe326c433c912f73dcdb44cf3 and /dev/null differ diff --git a/Library/metadata/e5/e58930b7b9c074ee6ac47fddc2c7f610 b/Library/metadata/3a/3ad9e267404dbe847aec6c358572ad83 old mode 100644 new mode 100755 similarity index 95% rename from Library/metadata/e5/e58930b7b9c074ee6ac47fddc2c7f610 rename to Library/metadata/3a/3ad9e267404dbe847aec6c358572ad83 index a9cb06b..9f5598e Binary files a/Library/metadata/e5/e58930b7b9c074ee6ac47fddc2c7f610 and b/Library/metadata/3a/3ad9e267404dbe847aec6c358572ad83 differ diff --git a/Library/metadata/3d/3da843199a05c4095a806da7c7fde0e5 b/Library/metadata/3d/3da843199a05c4095a806da7c7fde0e5 new file mode 100755 index 0000000..efe98b4 Binary files /dev/null and b/Library/metadata/3d/3da843199a05c4095a806da7c7fde0e5 differ diff --git a/Library/metadata/3e/3e22178dc50df4588bc8b8aa0b5252d4 b/Library/metadata/3e/3e22178dc50df4588bc8b8aa0b5252d4 deleted file mode 100644 index ba1bdcd..0000000 Binary files a/Library/metadata/3e/3e22178dc50df4588bc8b8aa0b5252d4 and /dev/null differ diff --git a/Library/metadata/3f/3f0f55609bd6e48a6bc3e8f8ea24c764 b/Library/metadata/3f/3f0f55609bd6e48a6bc3e8f8ea24c764 deleted file mode 100644 index 73ebea6..0000000 Binary files a/Library/metadata/3f/3f0f55609bd6e48a6bc3e8f8ea24c764 and /dev/null differ diff --git a/Library/metadata/3f/3f1ad09548c42497c9b44b4a7045c85a b/Library/metadata/3f/3f1ad09548c42497c9b44b4a7045c85a deleted file mode 100644 index 334081c..0000000 Binary files a/Library/metadata/3f/3f1ad09548c42497c9b44b4a7045c85a and /dev/null differ diff --git a/Library/metadata/3f/3fd49f2a4c1ff438bb173943a98cc99f b/Library/metadata/3f/3fd49f2a4c1ff438bb173943a98cc99f deleted file mode 100644 index 28b477f..0000000 Binary files a/Library/metadata/3f/3fd49f2a4c1ff438bb173943a98cc99f and /dev/null differ diff --git a/Library/metadata/43/436c1d70df085465faf4e7e4ed0a925c b/Library/metadata/43/436c1d70df085465faf4e7e4ed0a925c deleted file mode 100644 index 3998fe1..0000000 Binary files a/Library/metadata/43/436c1d70df085465faf4e7e4ed0a925c and /dev/null differ diff --git a/Library/metadata/4a/4a0d55b0221d64471b35de6379486731 b/Library/metadata/4a/4a0d55b0221d64471b35de6379486731 deleted file mode 100644 index 284da15..0000000 Binary files a/Library/metadata/4a/4a0d55b0221d64471b35de6379486731 and /dev/null differ diff --git a/Library/metadata/4a/4a4eaf027a250894c963ba732ebb5c76 b/Library/metadata/4a/4a4eaf027a250894c963ba732ebb5c76 new file mode 100755 index 0000000..4b0a205 Binary files /dev/null and b/Library/metadata/4a/4a4eaf027a250894c963ba732ebb5c76 differ diff --git a/Library/metadata/4a/4a769a7bf9f9b4b6a9bfbbad31068abd b/Library/metadata/4a/4a769a7bf9f9b4b6a9bfbbad31068abd old mode 100644 new mode 100755 index 9d27fd2..41cc4d2 Binary files a/Library/metadata/4a/4a769a7bf9f9b4b6a9bfbbad31068abd and b/Library/metadata/4a/4a769a7bf9f9b4b6a9bfbbad31068abd differ diff --git a/Library/metadata/29/29a967ff08d72402b9acfb9181a4436d b/Library/metadata/4a/4af8db51e37df754c8e14e05debf5c0b old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/29/29a967ff08d72402b9acfb9181a4436d rename to Library/metadata/4a/4af8db51e37df754c8e14e05debf5c0b index 3daed6a..2b1d4df Binary files a/Library/metadata/29/29a967ff08d72402b9acfb9181a4436d and b/Library/metadata/4a/4af8db51e37df754c8e14e05debf5c0b differ diff --git a/Library/metadata/4d/4d85a15e1eab1844cad9f467f7611203 b/Library/metadata/4d/4d85a15e1eab1844cad9f467f7611203 new file mode 100755 index 0000000..9eb24b3 Binary files /dev/null and b/Library/metadata/4d/4d85a15e1eab1844cad9f467f7611203 differ diff --git a/Library/metadata/5a/5a283dd8c33fe41058335d8e3ea09357 b/Library/metadata/4e/4e43d838b13ecd9409eac085fb06328b old mode 100644 new mode 100755 similarity index 79% rename from Library/metadata/5a/5a283dd8c33fe41058335d8e3ea09357 rename to Library/metadata/4e/4e43d838b13ecd9409eac085fb06328b index 579e617..53cdc50 Binary files a/Library/metadata/5a/5a283dd8c33fe41058335d8e3ea09357 and b/Library/metadata/4e/4e43d838b13ecd9409eac085fb06328b differ diff --git a/Library/metadata/51/51d9db15a2c954e48967afe7a6ae5ed5 b/Library/metadata/51/51d9db15a2c954e48967afe7a6ae5ed5 deleted file mode 100644 index 2081a0b..0000000 Binary files a/Library/metadata/51/51d9db15a2c954e48967afe7a6ae5ed5 and /dev/null differ diff --git a/Library/metadata/51/51f0c7922eb069d4f86eaed17bc2de40 b/Library/metadata/51/51f0c7922eb069d4f86eaed17bc2de40 new file mode 100755 index 0000000..8c1eb28 Binary files /dev/null and b/Library/metadata/51/51f0c7922eb069d4f86eaed17bc2de40 differ diff --git a/Library/metadata/52/528c2121d3961ab40b1ff79d4ebf5b1e b/Library/metadata/52/528c2121d3961ab40b1ff79d4ebf5b1e new file mode 100755 index 0000000..549f02c Binary files /dev/null and b/Library/metadata/52/528c2121d3961ab40b1ff79d4ebf5b1e differ diff --git a/Library/metadata/55/553f42de5a737ad45b3e026b9a1bdb45 b/Library/metadata/55/553f42de5a737ad45b3e026b9a1bdb45 new file mode 100755 index 0000000..78b7adc Binary files /dev/null and b/Library/metadata/55/553f42de5a737ad45b3e026b9a1bdb45 differ diff --git a/Library/metadata/56/56ba6c0d13455d84b8ddbfadb1000bb9 b/Library/metadata/56/56ba6c0d13455d84b8ddbfadb1000bb9 new file mode 100755 index 0000000..e3b018b Binary files /dev/null and b/Library/metadata/56/56ba6c0d13455d84b8ddbfadb1000bb9 differ diff --git a/Library/metadata/57/572eecb8ae4f73e4e8ad4024336dd17f b/Library/metadata/57/572eecb8ae4f73e4e8ad4024336dd17f new file mode 100755 index 0000000..fb720fd Binary files /dev/null and b/Library/metadata/57/572eecb8ae4f73e4e8ad4024336dd17f differ diff --git a/Library/metadata/58/582d9a226a7164309b3160653e2e9f9f b/Library/metadata/58/582d9a226a7164309b3160653e2e9f9f deleted file mode 100644 index 6b52faf..0000000 Binary files a/Library/metadata/58/582d9a226a7164309b3160653e2e9f9f and /dev/null differ diff --git a/Library/metadata/58/58919298e211bde43be9308f06f60196 b/Library/metadata/58/58919298e211bde43be9308f06f60196 new file mode 100755 index 0000000..a01a353 Binary files /dev/null and b/Library/metadata/58/58919298e211bde43be9308f06f60196 differ diff --git a/Library/metadata/58/58b36c88a32fe4b33b89bda5c406a07d b/Library/metadata/58/58b36c88a32fe4b33b89bda5c406a07d deleted file mode 100644 index 4dd1c4f..0000000 Binary files a/Library/metadata/58/58b36c88a32fe4b33b89bda5c406a07d and /dev/null differ diff --git a/Library/metadata/58/58c413e0e77b4499f873bab19a7bd951 b/Library/metadata/58/58c413e0e77b4499f873bab19a7bd951 new file mode 100755 index 0000000..2eb4b12 Binary files /dev/null and b/Library/metadata/58/58c413e0e77b4499f873bab19a7bd951 differ diff --git a/Library/metadata/59/593990c77ca6b4730ba1caa7e2d5bbe2 b/Library/metadata/59/593990c77ca6b4730ba1caa7e2d5bbe2 new file mode 100755 index 0000000..4ed91a4 Binary files /dev/null and b/Library/metadata/59/593990c77ca6b4730ba1caa7e2d5bbe2 differ diff --git a/Library/metadata/59/593ca2652bfa575498faaad5707882fc b/Library/metadata/59/593ca2652bfa575498faaad5707882fc new file mode 100755 index 0000000..752a167 Binary files /dev/null and b/Library/metadata/59/593ca2652bfa575498faaad5707882fc differ diff --git a/Library/metadata/5a/5aad366564455cb4896a574bccdd84d4 b/Library/metadata/5a/5aad366564455cb4896a574bccdd84d4 new file mode 100755 index 0000000..b670a42 Binary files /dev/null and b/Library/metadata/5a/5aad366564455cb4896a574bccdd84d4 differ diff --git a/Library/metadata/5b/5bfb1c8b5d1204808a275db12f0bdef6 b/Library/metadata/5b/5bfb1c8b5d1204808a275db12f0bdef6 new file mode 100755 index 0000000..ef025cd Binary files /dev/null and b/Library/metadata/5b/5bfb1c8b5d1204808a275db12f0bdef6 differ diff --git a/Library/metadata/5c/5c609cfc726d0194da253d2f237a860a b/Library/metadata/5c/5c609cfc726d0194da253d2f237a860a new file mode 100755 index 0000000..5685c97 Binary files /dev/null and b/Library/metadata/5c/5c609cfc726d0194da253d2f237a860a differ diff --git a/Library/metadata/5d/5d5e7add77a5ffe46b6ef7218506a14d b/Library/metadata/5d/5d5e7add77a5ffe46b6ef7218506a14d new file mode 100755 index 0000000..855a36a Binary files /dev/null and b/Library/metadata/5d/5d5e7add77a5ffe46b6ef7218506a14d differ diff --git a/Library/metadata/5e/5eb4433691e8b4ee3b180158fa5d9acc b/Library/metadata/5e/5eb4433691e8b4ee3b180158fa5d9acc new file mode 100755 index 0000000..f29c45b Binary files /dev/null and b/Library/metadata/5e/5eb4433691e8b4ee3b180158fa5d9acc differ diff --git a/Library/metadata/5f/5f048db4008f79a4a83f269ad0e10839 b/Library/metadata/5f/5f048db4008f79a4a83f269ad0e10839 new file mode 100755 index 0000000..702b00b Binary files /dev/null and b/Library/metadata/5f/5f048db4008f79a4a83f269ad0e10839 differ diff --git a/Library/metadata/5f/5f966e7a1adfc1e499324c1302afcd2c b/Library/metadata/5f/5f966e7a1adfc1e499324c1302afcd2c new file mode 100755 index 0000000..1c9506a Binary files /dev/null and b/Library/metadata/5f/5f966e7a1adfc1e499324c1302afcd2c differ diff --git a/Library/metadata/5f/5fba5901d3b7f4f679ec3c20048e5a88 b/Library/metadata/5f/5fba5901d3b7f4f679ec3c20048e5a88 deleted file mode 100644 index 8af8191..0000000 Binary files a/Library/metadata/5f/5fba5901d3b7f4f679ec3c20048e5a88 and /dev/null differ diff --git a/Library/metadata/60/6019750cb794e5949b41ce7216947111 b/Library/metadata/60/6019750cb794e5949b41ce7216947111 new file mode 100755 index 0000000..a031b7a Binary files /dev/null and b/Library/metadata/60/6019750cb794e5949b41ce7216947111 differ diff --git a/Library/metadata/36/365da4d24b1ff4d0fae604dd40917765 b/Library/metadata/60/606025385a29aa8409dce85c202f9121 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/36/365da4d24b1ff4d0fae604dd40917765 rename to Library/metadata/60/606025385a29aa8409dce85c202f9121 index 993e665..2485497 Binary files a/Library/metadata/36/365da4d24b1ff4d0fae604dd40917765 and b/Library/metadata/60/606025385a29aa8409dce85c202f9121 differ diff --git a/Library/metadata/60/607fb7f9c74964a3ab8904d891fe53c9 b/Library/metadata/60/607fb7f9c74964a3ab8904d891fe53c9 deleted file mode 100644 index a3d30f9..0000000 Binary files a/Library/metadata/60/607fb7f9c74964a3ab8904d891fe53c9 and /dev/null differ diff --git a/Library/metadata/cf/cf4852dcb194c4ebf8099c7360d9a4cc b/Library/metadata/60/60ef66f65fa8b17459a14ad99fc2b09e old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/cf/cf4852dcb194c4ebf8099c7360d9a4cc rename to Library/metadata/60/60ef66f65fa8b17459a14ad99fc2b09e index e9b8fda..e1e7906 Binary files a/Library/metadata/cf/cf4852dcb194c4ebf8099c7360d9a4cc and b/Library/metadata/60/60ef66f65fa8b17459a14ad99fc2b09e differ diff --git a/Library/metadata/63/63af9b32d04b6de42bfec16ee7f259bc b/Library/metadata/63/63af9b32d04b6de42bfec16ee7f259bc new file mode 100755 index 0000000..98b0700 Binary files /dev/null and b/Library/metadata/63/63af9b32d04b6de42bfec16ee7f259bc differ diff --git a/Library/metadata/67/671eaefe85e5f96478fd4177385d8e7c b/Library/metadata/67/671eaefe85e5f96478fd4177385d8e7c new file mode 100755 index 0000000..f7f9fb1 Binary files /dev/null and b/Library/metadata/67/671eaefe85e5f96478fd4177385d8e7c differ diff --git a/Library/metadata/68/680882589f53e46efb4fb586603788d1 b/Library/metadata/68/680882589f53e46efb4fb586603788d1 deleted file mode 100644 index 402c0fc..0000000 Binary files a/Library/metadata/68/680882589f53e46efb4fb586603788d1 and /dev/null differ diff --git a/Library/metadata/68/68b83c2b8dbb36e4d85fcc1fc42521a7 b/Library/metadata/68/68b83c2b8dbb36e4d85fcc1fc42521a7 new file mode 100755 index 0000000..db0519e Binary files /dev/null and b/Library/metadata/68/68b83c2b8dbb36e4d85fcc1fc42521a7 differ diff --git a/Library/metadata/d7/d7b812b1d3dd947429dc9bb752bd9da7 b/Library/metadata/68/68ed60b63c1c505428e8cd649a36bda7 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/d7/d7b812b1d3dd947429dc9bb752bd9da7 rename to Library/metadata/68/68ed60b63c1c505428e8cd649a36bda7 index 939e139..9b6ede9 Binary files a/Library/metadata/d7/d7b812b1d3dd947429dc9bb752bd9da7 and b/Library/metadata/68/68ed60b63c1c505428e8cd649a36bda7 differ diff --git a/Library/metadata/69/6952622deb25dda49a7aff25053ee778 b/Library/metadata/69/6952622deb25dda49a7aff25053ee778 new file mode 100755 index 0000000..339a5a1 Binary files /dev/null and b/Library/metadata/69/6952622deb25dda49a7aff25053ee778 differ diff --git a/Library/metadata/51/51df1c05c47a141fb94decc21d0e31c5 b/Library/metadata/69/69e268b3779124146a25a8b92e233f07 old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/51/51df1c05c47a141fb94decc21d0e31c5 rename to Library/metadata/69/69e268b3779124146a25a8b92e233f07 index 766047b..4c63c4f Binary files a/Library/metadata/51/51df1c05c47a141fb94decc21d0e31c5 and b/Library/metadata/69/69e268b3779124146a25a8b92e233f07 differ diff --git a/Library/metadata/fc/fc444dca9fdaa48aca6833d6c4756860 b/Library/metadata/6a/6a1768f6022bd82488aea60320067221 old mode 100644 new mode 100755 similarity index 95% rename from Library/metadata/fc/fc444dca9fdaa48aca6833d6c4756860 rename to Library/metadata/6a/6a1768f6022bd82488aea60320067221 index 46620c0..4a30392 Binary files a/Library/metadata/fc/fc444dca9fdaa48aca6833d6c4756860 and b/Library/metadata/6a/6a1768f6022bd82488aea60320067221 differ diff --git a/Library/metadata/6a/6a4fb90b52417124ea5b4ce3e5808142 b/Library/metadata/6a/6a4fb90b52417124ea5b4ce3e5808142 new file mode 100755 index 0000000..48ac3e1 Binary files /dev/null and b/Library/metadata/6a/6a4fb90b52417124ea5b4ce3e5808142 differ diff --git a/Library/metadata/6d/6d9ef9ad6b6a7401b84db50f3af59275 b/Library/metadata/6d/6d9ef9ad6b6a7401b84db50f3af59275 deleted file mode 100644 index 2264485..0000000 Binary files a/Library/metadata/6d/6d9ef9ad6b6a7401b84db50f3af59275 and /dev/null differ diff --git a/Library/metadata/6f/6fbecec5670d04cefaa95aed8779a4b0 b/Library/metadata/6f/6fbecec5670d04cefaa95aed8779a4b0 deleted file mode 100644 index f9b1a4d..0000000 Binary files a/Library/metadata/6f/6fbecec5670d04cefaa95aed8779a4b0 and /dev/null differ diff --git a/Library/metadata/6f/6fe3b7f8365b64700b68a6ef6ed39be1 b/Library/metadata/6f/6fe3b7f8365b64700b68a6ef6ed39be1 deleted file mode 100644 index 1fbb715..0000000 Binary files a/Library/metadata/6f/6fe3b7f8365b64700b68a6ef6ed39be1 and /dev/null differ diff --git a/Library/metadata/70/700062c6709a74133bdae3fd761f7d7a b/Library/metadata/70/700062c6709a74133bdae3fd761f7d7a old mode 100644 new mode 100755 index c910152..e87d665 Binary files a/Library/metadata/70/700062c6709a74133bdae3fd761f7d7a and b/Library/metadata/70/700062c6709a74133bdae3fd761f7d7a differ diff --git a/Library/metadata/71/7162d6fd190ba01429874b985a812854 b/Library/metadata/71/7162d6fd190ba01429874b985a812854 new file mode 100755 index 0000000..352d067 Binary files /dev/null and b/Library/metadata/71/7162d6fd190ba01429874b985a812854 differ diff --git a/Library/metadata/73/7311bfc55cc56cd4aaa8146b09e41406 b/Library/metadata/73/7311bfc55cc56cd4aaa8146b09e41406 new file mode 100755 index 0000000..9d56428 Binary files /dev/null and b/Library/metadata/73/7311bfc55cc56cd4aaa8146b09e41406 differ diff --git a/Library/metadata/74/74b0bc2143cb741388121e9b2b6c01c4 b/Library/metadata/74/74b0bc2143cb741388121e9b2b6c01c4 deleted file mode 100644 index 6c610a8..0000000 Binary files a/Library/metadata/74/74b0bc2143cb741388121e9b2b6c01c4 and /dev/null differ diff --git a/Library/metadata/76/7631baa1112e59045997b8584bd3ca85 b/Library/metadata/76/7631baa1112e59045997b8584bd3ca85 new file mode 100755 index 0000000..7c9e56d Binary files /dev/null and b/Library/metadata/76/7631baa1112e59045997b8584bd3ca85 differ diff --git a/Library/metadata/7a/7a1695f8a6e704f758fe94dcc954f21d b/Library/metadata/7a/7a1695f8a6e704f758fe94dcc954f21d deleted file mode 100644 index 8ffa403..0000000 Binary files a/Library/metadata/7a/7a1695f8a6e704f758fe94dcc954f21d and /dev/null differ diff --git a/Library/metadata/7b/7baa2a0515a41d842975a24e9480af07 b/Library/metadata/7b/7baa2a0515a41d842975a24e9480af07 new file mode 100755 index 0000000..60de25d Binary files /dev/null and b/Library/metadata/7b/7baa2a0515a41d842975a24e9480af07 differ diff --git a/Library/metadata/7c/7c3931af00b17984a9bc75a687693cde b/Library/metadata/7c/7c3931af00b17984a9bc75a687693cde new file mode 100755 index 0000000..17864d5 Binary files /dev/null and b/Library/metadata/7c/7c3931af00b17984a9bc75a687693cde differ diff --git a/Library/metadata/7c/7cf57b25be3737940876717c7803924f b/Library/metadata/7c/7cf57b25be3737940876717c7803924f new file mode 100755 index 0000000..dfe62cc Binary files /dev/null and b/Library/metadata/7c/7cf57b25be3737940876717c7803924f differ diff --git a/Library/metadata/83/8346ebd8c4006c345b4c96ac01e67eea b/Library/metadata/83/8346ebd8c4006c345b4c96ac01e67eea new file mode 100755 index 0000000..c7a1c49 Binary files /dev/null and b/Library/metadata/83/8346ebd8c4006c345b4c96ac01e67eea differ diff --git a/Library/metadata/84/84340e2a8774a4769b1a6d43d15d5b44 b/Library/metadata/84/84340e2a8774a4769b1a6d43d15d5b44 old mode 100644 new mode 100755 index 190a50d..e38ed58 Binary files a/Library/metadata/84/84340e2a8774a4769b1a6d43d15d5b44 and b/Library/metadata/84/84340e2a8774a4769b1a6d43d15d5b44 differ diff --git a/Library/metadata/86/86432d023f32990439c986815f0f4ec2 b/Library/metadata/86/86432d023f32990439c986815f0f4ec2 new file mode 100755 index 0000000..9d801a9 Binary files /dev/null and b/Library/metadata/86/86432d023f32990439c986815f0f4ec2 differ diff --git a/Library/metadata/86/86fecd51486934fbdb4a2c56d4a207d3 b/Library/metadata/86/86fecd51486934fbdb4a2c56d4a207d3 new file mode 100755 index 0000000..34006ad Binary files /dev/null and b/Library/metadata/86/86fecd51486934fbdb4a2c56d4a207d3 differ diff --git a/Library/metadata/88/8804dbfe2618b5e40994775cccb22ddd b/Library/metadata/88/8804dbfe2618b5e40994775cccb22ddd new file mode 100755 index 0000000..83c6f54 Binary files /dev/null and b/Library/metadata/88/8804dbfe2618b5e40994775cccb22ddd differ diff --git a/Library/metadata/88/88e993441211447c9baae22c8fe2b65b b/Library/metadata/88/88e993441211447c9baae22c8fe2b65b new file mode 100755 index 0000000..796b16f Binary files /dev/null and b/Library/metadata/88/88e993441211447c9baae22c8fe2b65b differ diff --git a/Library/metadata/8b/8bdcaadd3ceed5f41b7eef1176fbc70d b/Library/metadata/8b/8bdcaadd3ceed5f41b7eef1176fbc70d new file mode 100755 index 0000000..a064781 Binary files /dev/null and b/Library/metadata/8b/8bdcaadd3ceed5f41b7eef1176fbc70d differ diff --git a/Library/metadata/8c/8c8cb9e0375274333b08dd3d6f47a7d5 b/Library/metadata/8c/8c8cb9e0375274333b08dd3d6f47a7d5 deleted file mode 100644 index 7e970d4..0000000 Binary files a/Library/metadata/8c/8c8cb9e0375274333b08dd3d6f47a7d5 and /dev/null differ diff --git a/Library/metadata/8f/8f7e6720575394345833da0b523c734a b/Library/metadata/8f/8f7e6720575394345833da0b523c734a deleted file mode 100644 index a288f2a..0000000 Binary files a/Library/metadata/8f/8f7e6720575394345833da0b523c734a and /dev/null differ diff --git a/Library/metadata/8f/8fa68ef9423814b1b9177a14296bc80e b/Library/metadata/8f/8fa68ef9423814b1b9177a14296bc80e deleted file mode 100644 index a17651a..0000000 Binary files a/Library/metadata/8f/8fa68ef9423814b1b9177a14296bc80e and /dev/null differ diff --git a/Library/metadata/8f/8fc2d88dd361849808ad4e863b432f00 b/Library/metadata/8f/8fc2d88dd361849808ad4e863b432f00 new file mode 100755 index 0000000..4a05254 Binary files /dev/null and b/Library/metadata/8f/8fc2d88dd361849808ad4e863b432f00 differ diff --git a/Library/metadata/90/90afbf8e22a8d4ef6a18744668e27229 b/Library/metadata/90/90afbf8e22a8d4ef6a18744668e27229 deleted file mode 100644 index 2e9161e..0000000 Binary files a/Library/metadata/90/90afbf8e22a8d4ef6a18744668e27229 and /dev/null differ diff --git a/Library/metadata/94/9460ba8289aa84a229935b27e6204cf7 b/Library/metadata/94/9460ba8289aa84a229935b27e6204cf7 old mode 100644 new mode 100755 index 021c85d..5adce9b Binary files a/Library/metadata/94/9460ba8289aa84a229935b27e6204cf7 and b/Library/metadata/94/9460ba8289aa84a229935b27e6204cf7 differ diff --git a/Library/metadata/95/9518aa805d16c2e4e9516535b0d9a80c b/Library/metadata/95/9518aa805d16c2e4e9516535b0d9a80c new file mode 100755 index 0000000..a54f393 Binary files /dev/null and b/Library/metadata/95/9518aa805d16c2e4e9516535b0d9a80c differ diff --git a/Library/metadata/95/95d9f8c9a655b41f7b4b5d3690292474 b/Library/metadata/95/95d9f8c9a655b41f7b4b5d3690292474 deleted file mode 100644 index d90b043..0000000 Binary files a/Library/metadata/95/95d9f8c9a655b41f7b4b5d3690292474 and /dev/null differ diff --git a/Library/metadata/97/9794c3843cfd59b4881e40f2874e3b87 b/Library/metadata/97/9794c3843cfd59b4881e40f2874e3b87 new file mode 100755 index 0000000..d9a9e74 Binary files /dev/null and b/Library/metadata/97/9794c3843cfd59b4881e40f2874e3b87 differ diff --git a/Library/metadata/97/97a66d91a1f7640cfaea072300ed131d b/Library/metadata/97/97a66d91a1f7640cfaea072300ed131d new file mode 100755 index 0000000..c53e910 Binary files /dev/null and b/Library/metadata/97/97a66d91a1f7640cfaea072300ed131d differ diff --git a/Library/metadata/97/97b9e3c0e05974e1f8eaa8eeaece2709 b/Library/metadata/97/97b9e3c0e05974e1f8eaa8eeaece2709 deleted file mode 100644 index c31c148..0000000 Binary files a/Library/metadata/97/97b9e3c0e05974e1f8eaa8eeaece2709 and /dev/null differ diff --git a/Library/metadata/97/97d88029d6d0d43838b634067bb859d7 b/Library/metadata/97/97d88029d6d0d43838b634067bb859d7 new file mode 100755 index 0000000..2f3713f Binary files /dev/null and b/Library/metadata/97/97d88029d6d0d43838b634067bb859d7 differ diff --git a/Library/metadata/98/98b8c2760c988254fba6e4d1038c740c b/Library/metadata/98/98b8c2760c988254fba6e4d1038c740c new file mode 100755 index 0000000..a6ce9b1 Binary files /dev/null and b/Library/metadata/98/98b8c2760c988254fba6e4d1038c740c differ diff --git a/Library/metadata/ff/ff35ba79710654a35b0adcf1987a33cd b/Library/metadata/9a/9ae64552ac59d6647be33c821e2256bf old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/ff/ff35ba79710654a35b0adcf1987a33cd rename to Library/metadata/9a/9ae64552ac59d6647be33c821e2256bf index 643f5dc..0796c48 Binary files a/Library/metadata/ff/ff35ba79710654a35b0adcf1987a33cd and b/Library/metadata/9a/9ae64552ac59d6647be33c821e2256bf differ diff --git a/Library/metadata/9b/9b1aee559b4bb4ff896578bbbfa124fb b/Library/metadata/9b/9b1aee559b4bb4ff896578bbbfa124fb old mode 100644 new mode 100755 index e9e9a0e..e4bb3cb Binary files a/Library/metadata/9b/9b1aee559b4bb4ff896578bbbfa124fb and b/Library/metadata/9b/9b1aee559b4bb4ff896578bbbfa124fb differ diff --git a/Library/metadata/9b/9b55d0189be014897911c0a7a79a5bfa b/Library/metadata/9b/9b55d0189be014897911c0a7a79a5bfa new file mode 100755 index 0000000..c0dd84d Binary files /dev/null and b/Library/metadata/9b/9b55d0189be014897911c0a7a79a5bfa differ diff --git a/Library/metadata/9b/9bba5664c262e4002b05ce43d8bad51f b/Library/metadata/9b/9bba5664c262e4002b05ce43d8bad51f deleted file mode 100644 index f330c66..0000000 Binary files a/Library/metadata/9b/9bba5664c262e4002b05ce43d8bad51f and /dev/null differ diff --git a/Library/metadata/9c/9c6c2d128da234a3486f678e3dba3984 b/Library/metadata/9c/9c6c2d128da234a3486f678e3dba3984 deleted file mode 100644 index 8c25aa1..0000000 Binary files a/Library/metadata/9c/9c6c2d128da234a3486f678e3dba3984 and /dev/null differ diff --git a/Library/metadata/9d/9d053dce58644de4c82623034d3cb302 b/Library/metadata/9d/9d053dce58644de4c82623034d3cb302 new file mode 100755 index 0000000..46af342 Binary files /dev/null and b/Library/metadata/9d/9d053dce58644de4c82623034d3cb302 differ diff --git a/Library/metadata/a0/a0ac922d1f5ad4251b4144961c0a74be b/Library/metadata/a0/a0ac922d1f5ad4251b4144961c0a74be deleted file mode 100644 index 17baa5d..0000000 Binary files a/Library/metadata/a0/a0ac922d1f5ad4251b4144961c0a74be and /dev/null differ diff --git a/Library/metadata/a1/a11b4b833661e4633910d50aadff4f59 b/Library/metadata/a1/a11b4b833661e4633910d50aadff4f59 deleted file mode 100644 index 61fc722..0000000 Binary files a/Library/metadata/a1/a11b4b833661e4633910d50aadff4f59 and /dev/null differ diff --git a/Library/metadata/a2/a2203e0ecb3b84cb78a6a95c116d382b b/Library/metadata/a2/a2203e0ecb3b84cb78a6a95c116d382b deleted file mode 100644 index 3fc3418..0000000 Binary files a/Library/metadata/a2/a2203e0ecb3b84cb78a6a95c116d382b and /dev/null differ diff --git a/Library/metadata/14/1495cd51ffb1e4442b02cf739d4afac7 b/Library/metadata/a2/a2736dbb41b319841b8aa0cd52dd3fcf old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/14/1495cd51ffb1e4442b02cf739d4afac7 rename to Library/metadata/a2/a2736dbb41b319841b8aa0cd52dd3fcf index f5882b0..cb24556 Binary files a/Library/metadata/14/1495cd51ffb1e4442b02cf739d4afac7 and b/Library/metadata/a2/a2736dbb41b319841b8aa0cd52dd3fcf differ diff --git a/Library/metadata/a5/a52dde642917d47e6babfe06f8ed3cbc b/Library/metadata/a5/a52dde642917d47e6babfe06f8ed3cbc deleted file mode 100644 index 1a2cb2b..0000000 Binary files a/Library/metadata/a5/a52dde642917d47e6babfe06f8ed3cbc and /dev/null differ diff --git a/Library/metadata/a5/a5eb1114a50234f18a90dec93c7003a2 b/Library/metadata/a5/a5eb1114a50234f18a90dec93c7003a2 new file mode 100755 index 0000000..e1e4414 Binary files /dev/null and b/Library/metadata/a5/a5eb1114a50234f18a90dec93c7003a2 differ diff --git a/Library/metadata/a6/a6b1dc035a2f04b8d9ee80035d56c336 b/Library/metadata/a6/a6b1dc035a2f04b8d9ee80035d56c336 new file mode 100755 index 0000000..67d2a75 Binary files /dev/null and b/Library/metadata/a6/a6b1dc035a2f04b8d9ee80035d56c336 differ diff --git a/Library/metadata/a7/a71a9ddb9458b460a8870a13d3d2f7e8 b/Library/metadata/a7/a71a9ddb9458b460a8870a13d3d2f7e8 deleted file mode 100644 index c7dbee8..0000000 Binary files a/Library/metadata/a7/a71a9ddb9458b460a8870a13d3d2f7e8 and /dev/null differ diff --git a/Library/metadata/a9/a9a0da73786e3af49b57eeb9da2459c9 b/Library/metadata/a9/a9a0da73786e3af49b57eeb9da2459c9 new file mode 100755 index 0000000..f603b64 Binary files /dev/null and b/Library/metadata/a9/a9a0da73786e3af49b57eeb9da2459c9 differ diff --git a/Library/metadata/aa/aa8a3f98de5fb4832a039836c585bd8d b/Library/metadata/aa/aa8a3f98de5fb4832a039836c585bd8d deleted file mode 100644 index 841643f..0000000 Binary files a/Library/metadata/aa/aa8a3f98de5fb4832a039836c585bd8d and /dev/null differ diff --git a/Library/metadata/aa/aac78bc7c7f854e88b7734c48ec813d8 b/Library/metadata/aa/aac78bc7c7f854e88b7734c48ec813d8 deleted file mode 100644 index 1b250f7..0000000 Binary files a/Library/metadata/aa/aac78bc7c7f854e88b7734c48ec813d8 and /dev/null differ diff --git a/Library/metadata/ac/ac5de5d9de9dc4729ac18e7b1e118698 b/Library/metadata/ac/ac5de5d9de9dc4729ac18e7b1e118698 deleted file mode 100644 index 73bd61b..0000000 Binary files a/Library/metadata/ac/ac5de5d9de9dc4729ac18e7b1e118698 and /dev/null differ diff --git a/Library/metadata/ad/adedc909ed8024046aa30861bcacc707 b/Library/metadata/ad/adedc909ed8024046aa30861bcacc707 new file mode 100755 index 0000000..ace51c2 Binary files /dev/null and b/Library/metadata/ad/adedc909ed8024046aa30861bcacc707 differ diff --git a/Library/metadata/ae/ae398ba2ee807481889d11fecf3794e8 b/Library/metadata/ae/ae398ba2ee807481889d11fecf3794e8 deleted file mode 100644 index 8175ffe..0000000 Binary files a/Library/metadata/ae/ae398ba2ee807481889d11fecf3794e8 and /dev/null differ diff --git a/Library/metadata/b0/b030ce10081c046a7a42021798143fa1 b/Library/metadata/b0/b030ce10081c046a7a42021798143fa1 old mode 100644 new mode 100755 index f575cbc..8cfa42d Binary files a/Library/metadata/b0/b030ce10081c046a7a42021798143fa1 and b/Library/metadata/b0/b030ce10081c046a7a42021798143fa1 differ diff --git a/Library/metadata/b5/b5be6d4fce1034c67b46be1268463c4c b/Library/metadata/b5/b5be6d4fce1034c67b46be1268463c4c new file mode 100755 index 0000000..e3becf9 Binary files /dev/null and b/Library/metadata/b5/b5be6d4fce1034c67b46be1268463c4c differ diff --git a/Library/metadata/b5/b5f5dae3775e74b83baaff346f7182ec b/Library/metadata/b5/b5f5dae3775e74b83baaff346f7182ec new file mode 100755 index 0000000..a3290cc Binary files /dev/null and b/Library/metadata/b5/b5f5dae3775e74b83baaff346f7182ec differ diff --git a/Library/metadata/b6/b63da4875ba544f6087d5945e655afb6 b/Library/metadata/b6/b63da4875ba544f6087d5945e655afb6 new file mode 100755 index 0000000..1bd25c7 Binary files /dev/null and b/Library/metadata/b6/b63da4875ba544f6087d5945e655afb6 differ diff --git a/Library/metadata/3e/3e15b6075e12148fab4027421076e4bb b/Library/metadata/b8/b8e519aeed0a4074ebff878ab78f86e9 old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/3e/3e15b6075e12148fab4027421076e4bb rename to Library/metadata/b8/b8e519aeed0a4074ebff878ab78f86e9 index b43aa13..f3f6543 Binary files a/Library/metadata/3e/3e15b6075e12148fab4027421076e4bb and b/Library/metadata/b8/b8e519aeed0a4074ebff878ab78f86e9 differ diff --git a/Library/metadata/b9/b984e63f390b542748c315c7f4983e8a b/Library/metadata/b9/b984e63f390b542748c315c7f4983e8a deleted file mode 100644 index d244732..0000000 Binary files a/Library/metadata/b9/b984e63f390b542748c315c7f4983e8a and /dev/null differ diff --git a/Library/metadata/77/77c84b68fbcc641fda2decb833bd536a b/Library/metadata/bc/bc800c94631e0fa449cdeba5b14f61d3 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/77/77c84b68fbcc641fda2decb833bd536a rename to Library/metadata/bc/bc800c94631e0fa449cdeba5b14f61d3 index ad356cd..b1e6786 Binary files a/Library/metadata/77/77c84b68fbcc641fda2decb833bd536a and b/Library/metadata/bc/bc800c94631e0fa449cdeba5b14f61d3 differ diff --git a/Library/metadata/bc/bcc3946f5d0cfd94aa65322b1bccea18 b/Library/metadata/bc/bcc3946f5d0cfd94aa65322b1bccea18 new file mode 100755 index 0000000..8a8b117 Binary files /dev/null and b/Library/metadata/bc/bcc3946f5d0cfd94aa65322b1bccea18 differ diff --git a/Library/metadata/bc/bcda2447fcd2a48a5ba618fe6f1d8813 b/Library/metadata/bc/bcda2447fcd2a48a5ba618fe6f1d8813 deleted file mode 100644 index 303c2d1..0000000 Binary files a/Library/metadata/bc/bcda2447fcd2a48a5ba618fe6f1d8813 and /dev/null differ diff --git a/Library/metadata/2a/2afb06c492be84baaa96f0a307cffcd9 b/Library/metadata/be/beda5edf7cc768f44857dde56e1c0edb old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/2a/2afb06c492be84baaa96f0a307cffcd9 rename to Library/metadata/be/beda5edf7cc768f44857dde56e1c0edb index 505d312..c23ec20 Binary files a/Library/metadata/2a/2afb06c492be84baaa96f0a307cffcd9 and b/Library/metadata/be/beda5edf7cc768f44857dde56e1c0edb differ diff --git a/Library/metadata/d7/d72eaaef50fae4d4a83d85fa7d1a8506 b/Library/metadata/bf/bf2d8fdea5ce70e45b0dbe369c1d78c9 old mode 100644 new mode 100755 similarity index 90% rename from Library/metadata/d7/d72eaaef50fae4d4a83d85fa7d1a8506 rename to Library/metadata/bf/bf2d8fdea5ce70e45b0dbe369c1d78c9 index fcbf5ac..af89ed0 Binary files a/Library/metadata/d7/d72eaaef50fae4d4a83d85fa7d1a8506 and b/Library/metadata/bf/bf2d8fdea5ce70e45b0dbe369c1d78c9 differ diff --git a/Library/metadata/bf/bf6ca501d82f04537be03c6de3c96fd9 b/Library/metadata/bf/bf6ca501d82f04537be03c6de3c96fd9 new file mode 100755 index 0000000..46f5eb2 Binary files /dev/null and b/Library/metadata/bf/bf6ca501d82f04537be03c6de3c96fd9 differ diff --git a/Library/metadata/c0/c0d8717bdc1ab2546bd520c89c2ccc33 b/Library/metadata/c0/c0d8717bdc1ab2546bd520c89c2ccc33 new file mode 100755 index 0000000..1b3573a Binary files /dev/null and b/Library/metadata/c0/c0d8717bdc1ab2546bd520c89c2ccc33 differ diff --git a/Library/metadata/0c/0c616a2f50269499f82111fb2f759877 b/Library/metadata/c1/c1f09d8308688b94db8d4c39a8b2a33f old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/0c/0c616a2f50269499f82111fb2f759877 rename to Library/metadata/c1/c1f09d8308688b94db8d4c39a8b2a33f index 1ced55f..7176643 Binary files a/Library/metadata/0c/0c616a2f50269499f82111fb2f759877 and b/Library/metadata/c1/c1f09d8308688b94db8d4c39a8b2a33f differ diff --git a/Library/metadata/c3/c3b26cea83b04474ca149ef7fb3e1796 b/Library/metadata/c3/c3b26cea83b04474ca149ef7fb3e1796 deleted file mode 100644 index eea00be..0000000 Binary files a/Library/metadata/c3/c3b26cea83b04474ca149ef7fb3e1796 and /dev/null differ diff --git a/Library/metadata/c4/c40401222a55c4583a4a59203f9b069b b/Library/metadata/c4/c40401222a55c4583a4a59203f9b069b old mode 100644 new mode 100755 index 18e525a..0fe79ba Binary files a/Library/metadata/c4/c40401222a55c4583a4a59203f9b069b and b/Library/metadata/c4/c40401222a55c4583a4a59203f9b069b differ diff --git a/Library/metadata/c4/c4a515c7fba34404b952ce4d933ee452 b/Library/metadata/c4/c4a515c7fba34404b952ce4d933ee452 deleted file mode 100644 index 7f98144..0000000 Binary files a/Library/metadata/c4/c4a515c7fba34404b952ce4d933ee452 and /dev/null differ diff --git a/Library/metadata/c6/c66ee8f97287944a585a4ed1fe935861 b/Library/metadata/c6/c66ee8f97287944a585a4ed1fe935861 deleted file mode 100644 index c1d4fa7..0000000 Binary files a/Library/metadata/c6/c66ee8f97287944a585a4ed1fe935861 and /dev/null differ diff --git a/Library/metadata/c8/c8a1f9fd0912580448d67487693cc9e1 b/Library/metadata/c8/c8a1f9fd0912580448d67487693cc9e1 new file mode 100755 index 0000000..9b3b205 Binary files /dev/null and b/Library/metadata/c8/c8a1f9fd0912580448d67487693cc9e1 differ diff --git a/Library/metadata/c8/c8e7b2659fc8bdb499ad7091382fa0c1 b/Library/metadata/c8/c8e7b2659fc8bdb499ad7091382fa0c1 new file mode 100755 index 0000000..13e608b Binary files /dev/null and b/Library/metadata/c8/c8e7b2659fc8bdb499ad7091382fa0c1 differ diff --git a/Library/metadata/0f/0f2a8182e519446db98d70ab9b586301 b/Library/metadata/c9/c918b0ecc46d32d429dfb5d8949dc79a old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/0f/0f2a8182e519446db98d70ab9b586301 rename to Library/metadata/c9/c918b0ecc46d32d429dfb5d8949dc79a index 87feea8..e67738b Binary files a/Library/metadata/0f/0f2a8182e519446db98d70ab9b586301 and b/Library/metadata/c9/c918b0ecc46d32d429dfb5d8949dc79a differ diff --git a/Library/metadata/ca/ca19e471dfcd34b14ad784b4e3c69eb8 b/Library/metadata/ca/ca19e471dfcd34b14ad784b4e3c69eb8 new file mode 100755 index 0000000..8b4698d Binary files /dev/null and b/Library/metadata/ca/ca19e471dfcd34b14ad784b4e3c69eb8 differ diff --git a/Library/metadata/00/004968d19d6a04e7a96b2ccd6482ac89 b/Library/metadata/cb/cb0c1cf87f5e82742b5d84686266204c old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/00/004968d19d6a04e7a96b2ccd6482ac89 rename to Library/metadata/cb/cb0c1cf87f5e82742b5d84686266204c index 5fb5628..dc038c5 Binary files a/Library/metadata/00/004968d19d6a04e7a96b2ccd6482ac89 and b/Library/metadata/cb/cb0c1cf87f5e82742b5d84686266204c differ diff --git a/Library/metadata/cb/cba8e4669163f1b4189340a3534b5788 b/Library/metadata/cb/cba8e4669163f1b4189340a3534b5788 new file mode 100755 index 0000000..06c4ae5 Binary files /dev/null and b/Library/metadata/cb/cba8e4669163f1b4189340a3534b5788 differ diff --git a/Library/metadata/cc/cceccea37dd154468b99895747d21ebc b/Library/metadata/cc/cceccea37dd154468b99895747d21ebc deleted file mode 100644 index 585e3cd..0000000 Binary files a/Library/metadata/cc/cceccea37dd154468b99895747d21ebc and /dev/null differ diff --git a/Library/metadata/cf/cf149af4e109f45bf88f5f3e9f183595 b/Library/metadata/cf/cf149af4e109f45bf88f5f3e9f183595 deleted file mode 100644 index 7b4f7c5..0000000 Binary files a/Library/metadata/cf/cf149af4e109f45bf88f5f3e9f183595 and /dev/null differ diff --git a/Library/metadata/cf/cf2ae6e80d297954ebc76f4b5c6d7344 b/Library/metadata/cf/cf2ae6e80d297954ebc76f4b5c6d7344 new file mode 100755 index 0000000..5f77067 Binary files /dev/null and b/Library/metadata/cf/cf2ae6e80d297954ebc76f4b5c6d7344 differ diff --git a/Library/metadata/cf/cfdb6c224faec405abc1088c128a2f57 b/Library/metadata/cf/cfdb6c224faec405abc1088c128a2f57 deleted file mode 100644 index 46d1bfc..0000000 Binary files a/Library/metadata/cf/cfdb6c224faec405abc1088c128a2f57 and /dev/null differ diff --git a/Library/metadata/25/25f18b5c49448435c963c8cb2a97ce23 b/Library/metadata/d2/d232836a66f0d4c4a97d712d7d9d5254 old mode 100644 new mode 100755 similarity index 88% rename from Library/metadata/25/25f18b5c49448435c963c8cb2a97ce23 rename to Library/metadata/d2/d232836a66f0d4c4a97d712d7d9d5254 index 59cc234..8c70a62 Binary files a/Library/metadata/25/25f18b5c49448435c963c8cb2a97ce23 and b/Library/metadata/d2/d232836a66f0d4c4a97d712d7d9d5254 differ diff --git a/Library/metadata/d2/d29cb40d1320b4707abb86cdcec2341a b/Library/metadata/d2/d29cb40d1320b4707abb86cdcec2341a new file mode 100755 index 0000000..8826a19 Binary files /dev/null and b/Library/metadata/d2/d29cb40d1320b4707abb86cdcec2341a differ diff --git a/Library/metadata/d3/d34a7050a4d8ba34c8b5c23c2cced672 b/Library/metadata/d3/d34a7050a4d8ba34c8b5c23c2cced672 new file mode 100755 index 0000000..5300af5 Binary files /dev/null and b/Library/metadata/d3/d34a7050a4d8ba34c8b5c23c2cced672 differ diff --git a/Library/metadata/d3/d38ae76658d0a4aa2a4e0543ee56f039 b/Library/metadata/d3/d38ae76658d0a4aa2a4e0543ee56f039 new file mode 100755 index 0000000..3c0309e Binary files /dev/null and b/Library/metadata/d3/d38ae76658d0a4aa2a4e0543ee56f039 differ diff --git a/Library/metadata/d4/d408cf065deae85469c36600b0fb90ec b/Library/metadata/d4/d408cf065deae85469c36600b0fb90ec new file mode 100755 index 0000000..c7d5d38 Binary files /dev/null and b/Library/metadata/d4/d408cf065deae85469c36600b0fb90ec differ diff --git a/Library/metadata/d4/d42674809112441d5b13f68e0b904218 b/Library/metadata/d4/d42674809112441d5b13f68e0b904218 deleted file mode 100644 index b01fd50..0000000 Binary files a/Library/metadata/d4/d42674809112441d5b13f68e0b904218 and /dev/null differ diff --git a/Library/metadata/d4/d43c75e315c8a409d9b91217d20c0b2c b/Library/metadata/d4/d43c75e315c8a409d9b91217d20c0b2c deleted file mode 100644 index 1b564e8..0000000 Binary files a/Library/metadata/d4/d43c75e315c8a409d9b91217d20c0b2c and /dev/null differ diff --git a/Library/metadata/d4/d46f2504f952742d09acdcd4c7fa10f3 b/Library/metadata/d4/d46f2504f952742d09acdcd4c7fa10f3 new file mode 100755 index 0000000..8b95f68 Binary files /dev/null and b/Library/metadata/d4/d46f2504f952742d09acdcd4c7fa10f3 differ diff --git a/Library/metadata/d5/d517f84849f4f294692ca57d4095291e b/Library/metadata/d5/d517f84849f4f294692ca57d4095291e new file mode 100755 index 0000000..5325809 Binary files /dev/null and b/Library/metadata/d5/d517f84849f4f294692ca57d4095291e differ diff --git a/Library/metadata/d5/d5f2e7b12b0384383979441d108ba6ed b/Library/metadata/d5/d5f2e7b12b0384383979441d108ba6ed deleted file mode 100644 index 8ee4c8c..0000000 Binary files a/Library/metadata/d5/d5f2e7b12b0384383979441d108ba6ed and /dev/null differ diff --git a/Library/metadata/d6/d66b8ddd70955b94096157c35e5f5b86 b/Library/metadata/d6/d66b8ddd70955b94096157c35e5f5b86 new file mode 100755 index 0000000..715b2f1 Binary files /dev/null and b/Library/metadata/d6/d66b8ddd70955b94096157c35e5f5b86 differ diff --git a/Library/metadata/21/2156c35573eb547239846e8e9fc59078 b/Library/metadata/d6/d672b18291b48254cbf5ec8e8c947162 old mode 100644 new mode 100755 similarity index 92% rename from Library/metadata/21/2156c35573eb547239846e8e9fc59078 rename to Library/metadata/d6/d672b18291b48254cbf5ec8e8c947162 index 4b74ff1..0639667 Binary files a/Library/metadata/21/2156c35573eb547239846e8e9fc59078 and b/Library/metadata/d6/d672b18291b48254cbf5ec8e8c947162 differ diff --git a/Library/metadata/d7/d7875ebcf520952468df7983de6869b6 b/Library/metadata/d7/d7875ebcf520952468df7983de6869b6 new file mode 100755 index 0000000..aaa5fe2 Binary files /dev/null and b/Library/metadata/d7/d7875ebcf520952468df7983de6869b6 differ diff --git a/Library/metadata/d9/d9955c8dad41c7847b65c09896d6b439 b/Library/metadata/d9/d9955c8dad41c7847b65c09896d6b439 new file mode 100755 index 0000000..9b8aba2 Binary files /dev/null and b/Library/metadata/d9/d9955c8dad41c7847b65c09896d6b439 differ diff --git a/Library/metadata/da/da2c2c6fd16a64f27a3760f86e10dfbf b/Library/metadata/da/da2c2c6fd16a64f27a3760f86e10dfbf deleted file mode 100644 index 8094da1..0000000 Binary files a/Library/metadata/da/da2c2c6fd16a64f27a3760f86e10dfbf and /dev/null differ diff --git a/Library/metadata/da/da3ebb466df2e437bacf353c98b4586e b/Library/metadata/da/da3ebb466df2e437bacf353c98b4586e deleted file mode 100644 index e9b6c65..0000000 Binary files a/Library/metadata/da/da3ebb466df2e437bacf353c98b4586e and /dev/null differ diff --git a/Library/metadata/dc/dc370c7314f14a64b9bc3859e23c12b2 b/Library/metadata/dc/dc370c7314f14a64b9bc3859e23c12b2 new file mode 100755 index 0000000..d56d48f Binary files /dev/null and b/Library/metadata/dc/dc370c7314f14a64b9bc3859e23c12b2 differ diff --git a/Library/metadata/dc/dc94e71c4b77b400db332cccc0ec15fe b/Library/metadata/dc/dc94e71c4b77b400db332cccc0ec15fe old mode 100644 new mode 100755 index 9e7a659..4a45ae6 Binary files a/Library/metadata/dc/dc94e71c4b77b400db332cccc0ec15fe and b/Library/metadata/dc/dc94e71c4b77b400db332cccc0ec15fe differ diff --git a/Library/metadata/dc/dcc1182e3418240ccb3d5eed517a926c b/Library/metadata/dc/dcc1182e3418240ccb3d5eed517a926c deleted file mode 100644 index 1ff6c7d..0000000 Binary files a/Library/metadata/dc/dcc1182e3418240ccb3d5eed517a926c and /dev/null differ diff --git a/Library/metadata/dd/ddf84b9d1ebe44b468e0d6aa7385a919 b/Library/metadata/dd/ddf84b9d1ebe44b468e0d6aa7385a919 new file mode 100755 index 0000000..37148da Binary files /dev/null and b/Library/metadata/dd/ddf84b9d1ebe44b468e0d6aa7385a919 differ diff --git a/Library/metadata/de/ded19e36b9e14e14da5030c50d275afe b/Library/metadata/de/ded19e36b9e14e14da5030c50d275afe new file mode 100755 index 0000000..931922c Binary files /dev/null and b/Library/metadata/de/ded19e36b9e14e14da5030c50d275afe differ diff --git a/Library/metadata/e1/e115da1e02892854cad876374e70d504 b/Library/metadata/e1/e115da1e02892854cad876374e70d504 new file mode 100755 index 0000000..9f7396a Binary files /dev/null and b/Library/metadata/e1/e115da1e02892854cad876374e70d504 differ diff --git a/Library/metadata/e1/e15a9898b0c214ac881bfd2a99743307 b/Library/metadata/e1/e15a9898b0c214ac881bfd2a99743307 deleted file mode 100644 index ef338ff..0000000 Binary files a/Library/metadata/e1/e15a9898b0c214ac881bfd2a99743307 and /dev/null differ diff --git a/Library/metadata/e2/e2c23e89b550145458af9da22872a3c6 b/Library/metadata/e2/e2c23e89b550145458af9da22872a3c6 old mode 100644 new mode 100755 index 5cd2a3f..b18434a Binary files a/Library/metadata/e2/e2c23e89b550145458af9da22872a3c6 and b/Library/metadata/e2/e2c23e89b550145458af9da22872a3c6 differ diff --git a/Library/metadata/e2/e2e45d52faf8c40968b924675e64cb52 b/Library/metadata/e2/e2e45d52faf8c40968b924675e64cb52 new file mode 100755 index 0000000..e303bf1 Binary files /dev/null and b/Library/metadata/e2/e2e45d52faf8c40968b924675e64cb52 differ diff --git a/Library/metadata/e3/e31d439bbbae6438883072271019a5de b/Library/metadata/e3/e31d439bbbae6438883072271019a5de deleted file mode 100644 index 3929cf5..0000000 Binary files a/Library/metadata/e3/e31d439bbbae6438883072271019a5de and /dev/null differ diff --git a/Library/metadata/e3/e3307bd9fe38b48b4b17c603c2007c01 b/Library/metadata/e3/e3307bd9fe38b48b4b17c603c2007c01 old mode 100644 new mode 100755 index 2c55ab3..aa19154 Binary files a/Library/metadata/e3/e3307bd9fe38b48b4b17c603c2007c01 and b/Library/metadata/e3/e3307bd9fe38b48b4b17c603c2007c01 differ diff --git a/Library/metadata/e3/e3c5f11bd240542539336e80102423a4 b/Library/metadata/e3/e3c5f11bd240542539336e80102423a4 deleted file mode 100644 index f41b56a..0000000 Binary files a/Library/metadata/e3/e3c5f11bd240542539336e80102423a4 and /dev/null differ diff --git a/Library/metadata/e6/e6d290dd39f074bf89784d6e84742551 b/Library/metadata/e6/e6d290dd39f074bf89784d6e84742551 new file mode 100755 index 0000000..ff5d242 Binary files /dev/null and b/Library/metadata/e6/e6d290dd39f074bf89784d6e84742551 differ diff --git a/Library/metadata/e9/e9fd37756f86a4d06af2c5974cdcd874 b/Library/metadata/e9/e9fd37756f86a4d06af2c5974cdcd874 deleted file mode 100644 index 4f6c0ea..0000000 Binary files a/Library/metadata/e9/e9fd37756f86a4d06af2c5974cdcd874 and /dev/null differ diff --git a/Library/metadata/ea/eafcf3691eb0cf243a1e8aac775fdc40 b/Library/metadata/ea/eafcf3691eb0cf243a1e8aac775fdc40 new file mode 100755 index 0000000..c4a95ba Binary files /dev/null and b/Library/metadata/ea/eafcf3691eb0cf243a1e8aac775fdc40 differ diff --git a/Library/metadata/ec/ecd44c4fcf95965449c02a0b49a3ece7 b/Library/metadata/ec/ecd44c4fcf95965449c02a0b49a3ece7 new file mode 100755 index 0000000..670f61c Binary files /dev/null and b/Library/metadata/ec/ecd44c4fcf95965449c02a0b49a3ece7 differ diff --git a/Library/metadata/ed/ed2938783ba5d4a3e9d7b2d07aa3ac82 b/Library/metadata/ed/ed2938783ba5d4a3e9d7b2d07aa3ac82 deleted file mode 100644 index 10f9d81..0000000 Binary files a/Library/metadata/ed/ed2938783ba5d4a3e9d7b2d07aa3ac82 and /dev/null differ diff --git a/Library/metadata/ed/ed3c32e5075df41aa9d08ce717bb8cd4 b/Library/metadata/ed/ed3c32e5075df41aa9d08ce717bb8cd4 deleted file mode 100644 index a832029..0000000 Binary files a/Library/metadata/ed/ed3c32e5075df41aa9d08ce717bb8cd4 and /dev/null differ diff --git a/Library/metadata/ed/ed6aec70c77a3427790eb080ce5b9aa8 b/Library/metadata/ed/ed6aec70c77a3427790eb080ce5b9aa8 deleted file mode 100644 index 4baac3c..0000000 Binary files a/Library/metadata/ed/ed6aec70c77a3427790eb080ce5b9aa8 and /dev/null differ diff --git a/Library/metadata/ee/ee1c868297d1fe343b666abfb1e39932 b/Library/metadata/ee/ee1c868297d1fe343b666abfb1e39932 new file mode 100755 index 0000000..87c86a3 Binary files /dev/null and b/Library/metadata/ee/ee1c868297d1fe343b666abfb1e39932 differ diff --git a/Library/metadata/f2/f2cb0ec34ade247a4b6e423dc409a0b3 b/Library/metadata/f2/f2cb0ec34ade247a4b6e423dc409a0b3 deleted file mode 100644 index ad85f90..0000000 Binary files a/Library/metadata/f2/f2cb0ec34ade247a4b6e423dc409a0b3 and /dev/null differ diff --git a/Library/metadata/53/53960201df4e049bfab69b5f7799de8a b/Library/metadata/f5/f5896a71fb8776f49ab50dad53db3833 old mode 100644 new mode 100755 similarity index 73% rename from Library/metadata/53/53960201df4e049bfab69b5f7799de8a rename to Library/metadata/f5/f5896a71fb8776f49ab50dad53db3833 index 814fc4e..9551789 Binary files a/Library/metadata/53/53960201df4e049bfab69b5f7799de8a and b/Library/metadata/f5/f5896a71fb8776f49ab50dad53db3833 differ diff --git a/Library/metadata/f6/f6636e020748a4b10afcf984474ddb02 b/Library/metadata/f6/f6636e020748a4b10afcf984474ddb02 deleted file mode 100644 index a6d0665..0000000 Binary files a/Library/metadata/f6/f6636e020748a4b10afcf984474ddb02 and /dev/null differ diff --git a/Library/metadata/f9/f94e218413cfe421698a047c08f2ac08 b/Library/metadata/f9/f94e218413cfe421698a047c08f2ac08 old mode 100644 new mode 100755 index 9ade805..3a3cdc9 Binary files a/Library/metadata/f9/f94e218413cfe421698a047c08f2ac08 and b/Library/metadata/f9/f94e218413cfe421698a047c08f2ac08 differ diff --git a/Library/metadata/fb/fba68aaf8959a6141b41478ce2df3d1a b/Library/metadata/fb/fba68aaf8959a6141b41478ce2df3d1a new file mode 100755 index 0000000..44b7b7f Binary files /dev/null and b/Library/metadata/fb/fba68aaf8959a6141b41478ce2df3d1a differ diff --git a/Library/metadata/fc/fc07c7179143d36469d2d3af4a1db866 b/Library/metadata/fc/fc07c7179143d36469d2d3af4a1db866 new file mode 100755 index 0000000..b0e05a4 Binary files /dev/null and b/Library/metadata/fc/fc07c7179143d36469d2d3af4a1db866 differ diff --git a/Library/metadata/fc/fc1cd8fa7301fd5448d30b0e785bc63d b/Library/metadata/fc/fc1cd8fa7301fd5448d30b0e785bc63d new file mode 100755 index 0000000..e39290d Binary files /dev/null and b/Library/metadata/fc/fc1cd8fa7301fd5448d30b0e785bc63d differ diff --git a/asdfunity-csharp.sln b/asdfunity-csharp.sln new file mode 100644 index 0000000..a307782 --- /dev/null +++ b/asdfunity-csharp.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 + +Project("{C350BA15-F10C-D3B7-65B1-F21EABB8A77D}") = "asdfunity", "Assembly-CSharp-vs.csproj", "{80CE8C27-FECA-E020-5EC6-DCB3914EBC42}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + +EndGlobal diff --git a/asdfunity.sln b/asdfunity.sln new file mode 100644 index 0000000..e8d128d --- /dev/null +++ b/asdfunity.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 + +Project("{C350BA15-F10C-D3B7-65B1-F21EABB8A77D}") = "asdfunity", "Assembly-CSharp.csproj", "{80CE8C27-FECA-E020-5EC6-DCB3914EBC42}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80CE8C27-FECA-E020-5EC6-DCB3914EBC42}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + +EndGlobal diff --git a/asdfunity.userprefs b/asdfunity.userprefs new file mode 100644 index 0000000..677bd1f --- /dev/null +++ b/asdfunity.userprefs @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file