diff --git a/MoCha/Assets/Sprites/Monster Parts/circle_eye.png b/MoCha/Assets/Resources/circle_eye_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/circle_eye.png rename to MoCha/Assets/Resources/circle_eye_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/circle_eye.png.meta b/MoCha/Assets/Resources/circle_eye_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/circle_eye.png.meta rename to MoCha/Assets/Resources/circle_eye_sprite.png.meta diff --git a/MoCha/Assets/Sprites/Monster Parts/circle_head.png b/MoCha/Assets/Resources/circle_head_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/circle_head.png rename to MoCha/Assets/Resources/circle_head_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/circle_head.png.meta b/MoCha/Assets/Resources/circle_head_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/circle_head.png.meta rename to MoCha/Assets/Resources/circle_head_sprite.png.meta diff --git a/MoCha/Assets/Sprites/Monster Parts/crazy_hair.png b/MoCha/Assets/Resources/crazy_hair_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/crazy_hair.png rename to MoCha/Assets/Resources/crazy_hair_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/crazy_hair.png.meta b/MoCha/Assets/Resources/crazy_hair_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/crazy_hair.png.meta rename to MoCha/Assets/Resources/crazy_hair_sprite.png.meta diff --git a/MoCha/Assets/Sprites/Monster Parts/crown.png b/MoCha/Assets/Resources/crown_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/crown.png rename to MoCha/Assets/Resources/crown_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/crown.png.meta b/MoCha/Assets/Resources/crown_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/crown.png.meta rename to MoCha/Assets/Resources/crown_sprite.png.meta diff --git a/MoCha/Assets/Sprites/Monster Parts/gap_mouth.png b/MoCha/Assets/Resources/gap_mouth_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/gap_mouth.png rename to MoCha/Assets/Resources/gap_mouth_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/gap_mouth.png.meta b/MoCha/Assets/Resources/gap_mouth_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/gap_mouth.png.meta rename to MoCha/Assets/Resources/gap_mouth_sprite.png.meta diff --git a/MoCha/Assets/Sprites/Monster Parts/pig_nose.png b/MoCha/Assets/Resources/pig_nose_sprite.png similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/pig_nose.png rename to MoCha/Assets/Resources/pig_nose_sprite.png diff --git a/MoCha/Assets/Sprites/Monster Parts/pig_nose.png.meta b/MoCha/Assets/Resources/pig_nose_sprite.png.meta similarity index 100% rename from MoCha/Assets/Sprites/Monster Parts/pig_nose.png.meta rename to MoCha/Assets/Resources/pig_nose_sprite.png.meta diff --git a/MoCha/Assets/Scenes/MonsterCreator.unity b/MoCha/Assets/Scenes/MonsterCreator.unity index e8b0f3b..5b8f34c 100644 Binary files a/MoCha/Assets/Scenes/MonsterCreator.unity and b/MoCha/Assets/Scenes/MonsterCreator.unity differ diff --git a/MoCha/Assets/Scripts/DragAndDrop.cs b/MoCha/Assets/Scripts/DragAndDrop.cs index 18a988c..c67b20a 100644 --- a/MoCha/Assets/Scripts/DragAndDrop.cs +++ b/MoCha/Assets/Scripts/DragAndDrop.cs @@ -36,9 +36,10 @@ public class DragAndDrop : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndD public void OnEndDrag (PointerEventData eventData) { _offsetToMouse = Vector3.zero; - //Debug.Log (Input.mousePosition.y); - if (Input.mousePosition.y < 75) + if (Input.mousePosition.y < 75) { DraggedInstance.SetActive (false); + inventory.AddItem (DraggedInstance.name); + } DraggedInstance = null; } diff --git a/MoCha/Assets/Scripts/Inventory.cs b/MoCha/Assets/Scripts/Inventory.cs index 9a7ad04..b98ffc1 100644 --- a/MoCha/Assets/Scripts/Inventory.cs +++ b/MoCha/Assets/Scripts/Inventory.cs @@ -1,7 +1,7 @@ using UnityEngine; using System.Collections; using UnityEngine.UI; - +using System.Text; public class Inventory : MonoBehaviour { @@ -9,19 +9,32 @@ public class Inventory : MonoBehaviour public Item[] items = new Item[numItemSlots]; public const int numItemSlots = 25; - private static bool created = false; - void Awake() { - if (!created) + //PlayerPrefs.SetString("inventory", ""); + string savedString = PlayerPrefs.GetString("inventory"); + + string[] itemNames = savedString.Split(' '); + Debug.Log (itemNames [itemNames.Length-1]); + for (int i = 0; i < itemNames.Length - 1; i++) { - DontDestroyOnLoad(this.gameObject); - created = true; + Sprite sprite = (Resources.Load(itemNames[i] + "_sprite")); + Item itm = new Item (); + itm.name = itemNames [i]; + itm.sprite = sprite; + items[i] = itm; + itemImages[i].sprite = itm.sprite; + itemImages[i].enabled = true; } } public void AddItem(Item itemToAdd) { + StringBuilder invList = new StringBuilder (); + invList.Append(PlayerPrefs.GetString ("inventory")); + invList.Append(itemToAdd.name).Append(" "); + PlayerPrefs.SetString ("inventory", invList.ToString()); + for (int i = 0; i < items.Length; i++) { if (items[i] == null) @@ -34,13 +47,42 @@ public class Inventory : MonoBehaviour } } - public void RemoveItem (Item itemToRemove) + public void AddItem(string itemName) { - GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name)); + StringBuilder invList = new StringBuilder (); + invList.Append(PlayerPrefs.GetString ("inventory")); + invList.Append(itemName).Append(" "); + PlayerPrefs.SetString ("inventory", invList.ToString()); for (int i = 0; i < items.Length; i++) { - if (items[i] == itemToRemove) + if (items[i] == null) + { + Sprite sprite = (Resources.Load(itemName + "_sprite")); + Item itm = new Item (); + itm.name = itemName; + itm.sprite = sprite; + items[i] = itm; + itemImages[i].sprite = itm.sprite; + itemImages[i].enabled = true; + return; + } + } + } + + public void RemoveItem (Item itemToRemove) + { + StringBuilder invList = new StringBuilder (); + invList.Append(PlayerPrefs.GetString ("inventory")); + int index = invList.ToString ().IndexOf (itemToRemove.name + " "); + invList.Remove(index, (itemToRemove.name + " ").Length); + PlayerPrefs.SetString ("inventory", invList.ToString()); + GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name)); + instance.name = itemToRemove.name; + + for (int i = 0; i < items.Length; i++) + { + if (items[i].name == itemToRemove.name) { items[i] = null; itemImages[i].sprite = null; @@ -49,4 +91,30 @@ public class Inventory : MonoBehaviour } } } + + public void RemoveItem (string itemName) + { + StringBuilder invList = new StringBuilder (); + invList.Append(PlayerPrefs.GetString ("inventory")); + int index = invList.ToString ().IndexOf (itemName + " "); + invList.Remove(index, (itemName + " ").Length); + PlayerPrefs.SetString ("inventory", invList.ToString()); + GameObject instance = (GameObject)Instantiate(Resources.Load(itemName)); + instance.GetComponent ().inventory = this; + instance.name = itemName; + + for (int i = 0; i < items.Length - 1; i++) + { + if (items [i] != null) { + Debug.Log (items [i].name + " == " + itemName); + if (items [i].name == itemName) { + items [i] = null; + itemImages [i].sprite = null; + itemImages [i].enabled = false; + return; + } + } + } + + } } \ No newline at end of file diff --git a/MoCha/Assets/Scripts/ItemSlotBehavior.cs b/MoCha/Assets/Scripts/ItemSlotBehavior.cs new file mode 100644 index 0000000..e160966 --- /dev/null +++ b/MoCha/Assets/Scripts/ItemSlotBehavior.cs @@ -0,0 +1,34 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using Image = UnityEngine.UI.Image; + +public class ItemSlotBehavior : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler +{ + public static GameObject DraggedInstance; + public Inventory inventory; + + Vector3 _startPosition; + Vector3 _offsetToMouse; + float _zDistanceToCamera; + + #region Interface Implementations + + public void OnBeginDrag (PointerEventData eventData) + { + DraggedInstance = gameObject; + Debug.Log ("Removing: " + DraggedInstance.GetComponent ().sprite.name.Remove (DraggedInstance.GetComponent ().sprite.name.Length - 7)); + inventory.RemoveItem(DraggedInstance.GetComponent().sprite.name.Remove(DraggedInstance.GetComponent().sprite.name.Length-7)); + } + + public void OnDrag (PointerEventData eventData) + { + + } + + public void OnEndDrag (PointerEventData eventData) + { + + } + + #endregion +} \ No newline at end of file diff --git a/MoCha/Assets/Scripts/ItemSlotBehavior.cs.meta b/MoCha/Assets/Scripts/ItemSlotBehavior.cs.meta new file mode 100644 index 0000000..9c6a6ac --- /dev/null +++ b/MoCha/Assets/Scripts/ItemSlotBehavior.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 062d9f417b017b445bd5b92d657b31d1 +timeCreated: 1524730867 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/Scripts/MonsterManager.cs b/MoCha/Assets/Scripts/MonsterManager.cs index 2505c60..fd158a6 100644 --- a/MoCha/Assets/Scripts/MonsterManager.cs +++ b/MoCha/Assets/Scripts/MonsterManager.cs @@ -13,8 +13,7 @@ public class MonsterManager : MonoBehaviour { void Start() { - //inv = FindObjectOfType (); - inv.AddItem (item); + loadMonster(); } public void showItems() @@ -30,13 +29,16 @@ public class MonsterManager : MonoBehaviour { StringBuilder pos = new StringBuilder (); string savedString; + string equippedString = ""; for (int i = 0; i < monsterParts.Length; i++) { pos = new StringBuilder (); pos.Append(GameObject.Find(monsterParts[i].name).transform.position.x).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.y).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.z); + equippedString = equippedString + monsterParts [i].name + " "; savedString = pos.ToString (); PlayerPrefs.SetString(SceneManager.GetActiveScene().name + monsterParts[i].name, savedString); } + PlayerPrefs.SetString ("Equipped", equippedString); /* StringBuilder eyePos = new StringBuilder(); @@ -78,8 +80,18 @@ public class MonsterManager : MonoBehaviour { public void loadMonster () { - string savedString; - string[] values; + + string equippedString = PlayerPrefs.GetString("Equipped"); + string[] equipped = equippedString.Split (' '); + + for (int i = 0; i < equipped.Length - 1; i++) { + string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + equipped[i]); + string[] values = savedString.Split (); + GameObject instance = (GameObject)Instantiate(Resources.Load(equipped[i])); + instance.name = equipped [i]; + instance.GetComponent ().inventory = inv; + instance.transform.position = new Vector3(float.Parse(values[0]),float.Parse(values[1]),float.Parse(values[2])); + } /* string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + "eyePosition");