diff --git a/MoCha/Assets/Prefabs/ItemSlot.prefab b/MoCha/Assets/Prefabs/ItemSlot.prefab new file mode 100644 index 0000000..141dc69 Binary files /dev/null and b/MoCha/Assets/Prefabs/ItemSlot.prefab differ diff --git a/MoCha/Assets/Prefabs/ItemSlot.prefab.meta b/MoCha/Assets/Prefabs/ItemSlot.prefab.meta new file mode 100644 index 0000000..2e52d9b --- /dev/null +++ b/MoCha/Assets/Prefabs/ItemSlot.prefab.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ffb3a2b5c7f8d144f83ef1f1166b178f +timeCreated: 1524162403 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/Scripts/Inventory.cs b/MoCha/Assets/Scripts/Inventory.cs new file mode 100644 index 0000000..24ce640 --- /dev/null +++ b/MoCha/Assets/Scripts/Inventory.cs @@ -0,0 +1,37 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + + +public class Inventory : MonoBehaviour +{ + public Image[] itemImages = new Image[numItemSlots]; + public Item[] items = new Item[numItemSlots]; + public const int numItemSlots = 4; + public void AddItem(Item itemToAdd) + { + for (int i = 0; i < items.Length; i++) + { + if (items[i] == null) + { + items[i] = itemToAdd; + itemImages[i].sprite = itemToAdd.sprite; + itemImages[i].enabled = true; + return; + } + } + } + public void RemoveItem (Item itemToRemove) + { + for (int i = 0; i < items.Length; i++) + { + if (items[i] == itemToRemove) + { + items[i] = null; + itemImages[i].sprite = null; + itemImages[i].enabled = false; + return; + } + } + } +} \ No newline at end of file diff --git a/MoCha/Assets/Scripts/Inventory.cs.meta b/MoCha/Assets/Scripts/Inventory.cs.meta new file mode 100644 index 0000000..2e4bc3b --- /dev/null +++ b/MoCha/Assets/Scripts/Inventory.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: b43850ea4963ca144a2219ebc0e3b6fd +timeCreated: 1524161696 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/Scripts/InventoryEditor.cs b/MoCha/Assets/Scripts/InventoryEditor.cs new file mode 100644 index 0000000..46a379e --- /dev/null +++ b/MoCha/Assets/Scripts/InventoryEditor.cs @@ -0,0 +1,39 @@ +using UnityEngine; +using UnityEditor; +[CustomEditor(typeof(Inventory))] +public class InventoryEditor : Editor +{ + private bool[] showItemSlots = new bool[Inventory.numItemSlots]; + private SerializedProperty itemImagesProperty; + private SerializedProperty itemsProperty; + private const string inventoryPropItemImagesName = "itemImages"; + private const string inventoryPropItemsName = "items"; + private void OnEnable () + { + itemImagesProperty = serializedObject.FindProperty (inventoryPropItemImagesName); + itemsProperty = serializedObject.FindProperty (inventoryPropItemsName); + } + public override void OnInspectorGUI () + { + serializedObject.Update (); + for (int i = 0; i < Inventory.numItemSlots; i++) + { + ItemSlotGUI (i); + } + serializedObject.ApplyModifiedProperties (); + } + private void ItemSlotGUI (int index) + { + EditorGUILayout.BeginVertical (GUI.skin.box); + EditorGUI.indentLevel++; + + showItemSlots[index] = EditorGUILayout.Foldout (showItemSlots[index], "Item slot " + index); + if (showItemSlots[index]) + { + EditorGUILayout.PropertyField (itemImagesProperty.GetArrayElementAtIndex (index)); + EditorGUILayout.PropertyField (itemsProperty.GetArrayElementAtIndex (index)); + } + EditorGUI.indentLevel--; + EditorGUILayout.EndVertical (); + } +} \ No newline at end of file diff --git a/MoCha/Assets/Scripts/InventoryEditor.cs.meta b/MoCha/Assets/Scripts/InventoryEditor.cs.meta new file mode 100644 index 0000000..4c760c1 --- /dev/null +++ b/MoCha/Assets/Scripts/InventoryEditor.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: dd2ab8002901b644bbc724fa04249955 +timeCreated: 1524163165 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/Scripts/Item.cs b/MoCha/Assets/Scripts/Item.cs new file mode 100644 index 0000000..0dd481b --- /dev/null +++ b/MoCha/Assets/Scripts/Item.cs @@ -0,0 +1,7 @@ +using UnityEngine; + +[CreateAssetMenu] +public class Item : ScriptableObject { + + public Sprite sprite; +} diff --git a/MoCha/Assets/Scripts/Item.cs.meta b/MoCha/Assets/Scripts/Item.cs.meta new file mode 100644 index 0000000..7b1ca9b --- /dev/null +++ b/MoCha/Assets/Scripts/Item.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 2b57d2e6ebe4089498537815ff9350ee +timeCreated: 1524162707 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: