From 039a050647f5ef003dd383ba0217464855a49f32 Mon Sep 17 00:00:00 2001 From: excitedneon Date: Sun, 14 May 2017 23:28:55 +0300 Subject: [PATCH] Add visual representation of equipped items --- Assets/Prefabs/PC.prefab | 202 +++++++++++++++--- Assets/Scenes/FrontendDevMap.unity | 84 ++++---- Assets/Scripts/Controls/EquipmentInterface.cs | 69 ++++++ .../Controls/EquipmentInterface.cs.meta | 12 ++ Assets/Scripts/Controls/InventoryInterface.cs | 14 +- Assets/Scripts/Items/Item.cs | 18 +- Assets/Scripts/Items/ItemDB.cs | 4 +- 7 files changed, 317 insertions(+), 86 deletions(-) create mode 100644 Assets/Scripts/Controls/EquipmentInterface.cs create mode 100644 Assets/Scripts/Controls/EquipmentInterface.cs.meta diff --git a/Assets/Prefabs/PC.prefab b/Assets/Prefabs/PC.prefab index d359f37..8ceb6db 100644 --- a/Assets/Prefabs/PC.prefab +++ b/Assets/Prefabs/PC.prefab @@ -62,21 +62,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!1 &1067606113877164 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4141975958961490} - m_Layer: 0 - m_Name: Equipment Interface - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!1 &1073554920665706 GameObject: m_ObjectHideFlags: 1 @@ -365,6 +350,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1282435183566290 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4603884443367184} + - component: {fileID: 33816067446785734} + - component: {fileID: 23947590342960758} + m_Layer: 0 + m_Name: Hat Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &1292364954462330 GameObject: m_ObjectHideFlags: 1 @@ -429,6 +431,7 @@ GameObject: - component: {fileID: 114575501420754388} - component: {fileID: 114385213279389382} - component: {fileID: 114702404122310282} + - component: {fileID: 114772626772950132} m_Layer: 0 m_Name: PC m_TagString: Untagged @@ -588,6 +591,23 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1455034129804424 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4949557329132524} + - component: {fileID: 33570510947136580} + - component: {fileID: 23795875440691066} + m_Layer: 0 + m_Name: Left Hand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!1 &1467080138821004 GameObject: m_ObjectHideFlags: 1 @@ -769,7 +789,7 @@ GameObject: - component: {fileID: 33975615408091930} - component: {fileID: 23193880740220832} m_Layer: 0 - m_Name: Hat Mesh + m_Name: Right Hand m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1418,7 +1438,7 @@ Transform: m_Children: - {fileID: 4236387573765288} m_Father: {fileID: 4883048021777868} - m_RootOrder: 3 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4105190110964144 Transform: @@ -1487,19 +1507,6 @@ Transform: m_Father: {fileID: 4145663281164610} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &4141975958961490 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1067606113877164} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4586682446228250} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4145297277959534 Transform: m_ObjectHideFlags: 1 @@ -2035,7 +2042,6 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4400199165588268} - - {fileID: 4141975958961490} - {fileID: 4883048021777868} m_Father: {fileID: 0} m_RootOrder: 0 @@ -2054,6 +2060,19 @@ Transform: m_Father: {fileID: 4783870784903044} m_RootOrder: 13 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4603884443367184 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1282435183566290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.125, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4883048021777868} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4612469421790772 Transform: m_ObjectHideFlags: 1 @@ -2207,12 +2226,12 @@ Transform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1593278606667730} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.125, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.6, y: -0.30000007, z: 0.6} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 4883048021777868} - m_RootOrder: 2 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4783870784903044 Transform: @@ -2372,10 +2391,12 @@ Transform: m_Children: - {fileID: 4243620059187726} - {fileID: 4126889091672100} + - {fileID: 4603884443367184} + - {fileID: 4949557329132524} - {fileID: 4778775157160844} - {fileID: 4099946104317490} m_Father: {fileID: 4586682446228250} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4885341820297518 Transform: @@ -2470,6 +2491,19 @@ Transform: m_Father: {fileID: 4530114029127332} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4949557329132524 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455034129804424} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.6, y: -0.3, z: 0.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4883048021777868} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &4967445830105586 Transform: m_ObjectHideFlags: 1 @@ -3525,6 +3559,38 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 +--- !u!23 &23795875440691066 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455034129804424} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: cac55f0f5d2b94909899376ddfca7276, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!23 &23804466063309962 MeshRenderer: m_ObjectHideFlags: 1 @@ -3784,6 +3850,38 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 +--- !u!23 &23947590342960758 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1282435183566290} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: cac55f0f5d2b94909899376ddfca7276, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 --- !u!23 &23964641026033906 MeshRenderer: m_ObjectHideFlags: 1 @@ -4108,6 +4206,13 @@ MeshFilter: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1491104319836832} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33570510947136580 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455034129804424} + m_Mesh: {fileID: 0} --- !u!33 &33585471952367662 MeshFilter: m_ObjectHideFlags: 1 @@ -4171,6 +4276,13 @@ MeshFilter: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 1292364954462330} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33816067446785734 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1282435183566290} + m_Mesh: {fileID: 0} --- !u!33 &33831674242328916 MeshFilter: m_ObjectHideFlags: 1 @@ -5105,6 +5217,26 @@ MonoBehaviour: Axis: {x: 0, y: 1, z: 0} RoundsPerMinute: 120 Spinning: 0 +--- !u!114 &114772626772950132 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1297568499365208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bd9edbba64bb2450dab508e94163b0f8, type: 3} + m_Name: + m_EditorClassIdentifier: + Inventory: {fileID: 114702404122310282} + UpdateFrequency: 15 + Slots: + - Slot: 0 + Mesh: {fileID: 33816067446785734} + - Slot: 1 + Mesh: {fileID: 33975615408091930} + - Slot: 2 + Mesh: {fileID: 33570510947136580} --- !u!114 &114800660248371886 MonoBehaviour: m_ObjectHideFlags: 1 diff --git a/Assets/Scenes/FrontendDevMap.unity b/Assets/Scenes/FrontendDevMap.unity index 5810130..19f43f4 100644 --- a/Assets/Scenes/FrontendDevMap.unity +++ b/Assets/Scenes/FrontendDevMap.unity @@ -634,48 +634,6 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 396674780} ---- !u!1001 &542383661 -Prefab: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 100100000, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} - m_IsPrefabParent: 0 --- !u!1 &564954320 GameObject: m_ObjectHideFlags: 0 @@ -885,6 +843,48 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9d715320baa1f401ab0f46b603399dc3, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &662048545 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4586682446228250, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e8761b9491a974d1780e60dafbd372a2, type: 2} + m_IsPrefabParent: 0 --- !u!1 &746314094 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Controls/EquipmentInterface.cs b/Assets/Scripts/Controls/EquipmentInterface.cs new file mode 100644 index 0000000..58370ab --- /dev/null +++ b/Assets/Scripts/Controls/EquipmentInterface.cs @@ -0,0 +1,69 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Cyber.Entities.SyncBases; +using Cyber.Util; +using Cyber.Items; + +namespace Cyber.Controls { + + /// + /// Interface that controls the visible equipment on the characters. + /// + public class EquipmentInterface : MonoBehaviour { + + /// + /// Equipment mesh. + /// + [System.Serializable] + public struct EquipmentMesh { + + /// + /// The slot enum of the item. + /// + public EquipSlot Slot; + + /// + /// The in-world slot of the item. + /// + public MeshFilter Mesh; + } + + /// + /// The inventory. + /// + public Inventory Inventory; + + /// + /// How many times per second the visual equipment should be updated. + /// + public float UpdateFrequency = 1f; + + /// + /// The slots where the equipped items go. + /// + public EquipmentMesh[] Slots; + + private float LastUpdateTime = 0; + + private void Update() { + if (Time.time - LastUpdateTime >= 1f / UpdateFrequency) { + Dictionary Equips = Inventory.Equipped.GetEquippedDict(); + // Empty all slots + for (int i = 0; i < Slots.Length; i++) { + Slots[i].Mesh.mesh = null; + } + // Equip all slots + foreach (EquipSlot Slot in Equips.Keys) { + for (int i = 0; i < Slots.Length; i++) { + if (Slots[i].Slot == Slot) { + Slots[i].Mesh.mesh = MeshDB.GetMesh(Equips[Slots[i].Slot].ModelID); + break; + } + } + } + LastUpdateTime = Time.time; + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Controls/EquipmentInterface.cs.meta b/Assets/Scripts/Controls/EquipmentInterface.cs.meta new file mode 100644 index 0000000..3152214 --- /dev/null +++ b/Assets/Scripts/Controls/EquipmentInterface.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bd9edbba64bb2450dab508e94163b0f8 +timeCreated: 1494789448 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Controls/InventoryInterface.cs b/Assets/Scripts/Controls/InventoryInterface.cs index ad4dc44..800f533 100644 --- a/Assets/Scripts/Controls/InventoryInterface.cs +++ b/Assets/Scripts/Controls/InventoryInterface.cs @@ -95,6 +95,7 @@ namespace Cyber.Controls { private List ItemGridCells; private List ItemGridCellMeshes; private int ItemGridSelectedIndex; + private Item SelectedItem = null; private Color IconInventoryColor; private Color IconStatusColor; @@ -136,6 +137,15 @@ namespace Cyber.Controls { // Interacting with the item list CurrentIndex = int.Parse(LookedAt.collider.name.Split(' ')[1]); if (Input.GetButtonDown("Activate")) { + if (ItemGridSelectedIndex == CurrentIndex && SelectedItem != null) { + // Selected index was already this => equip (double-clicked) + Item Equipped = Inventory.Equipped.GetItem(SelectedItem.Slot); + if (Equipped != null && Equipped.ID == SelectedItem.ID) { + Inventory.Equipped.ClearSlot(SelectedItem.Slot); + } else { + Inventory.Equipped.SetSlot(SelectedItem.Slot, SelectedItem); + } + } ItemGridSelectedIndex = CurrentIndex; } } else if (Mesh != null) { @@ -206,6 +216,9 @@ namespace Cyber.Controls { } if (ItemGridSelectedIndex == i) { + // Update the selected item + SelectedItem = Item; + // Set preview information SetPreviewMesh(Mesh); TextTextureProperties NameProps = ItemNameText.TextProperties; @@ -229,7 +242,6 @@ namespace Cyber.Controls { Vector3.Lerp(ItemGridSelector.position, ItemGridCells[i].position, 20f * Time.deltaTime); } - //ItemGridSelector.LookAt(Camera.transform); Vector3 NewRot = ItemGridSelector.localEulerAngles; NewRot.z = 0; ItemGridSelector.localEulerAngles = NewRot; diff --git a/Assets/Scripts/Items/Item.cs b/Assets/Scripts/Items/Item.cs index 2653aa1..cf5fae1 100644 --- a/Assets/Scripts/Items/Item.cs +++ b/Assets/Scripts/Items/Item.cs @@ -31,19 +31,26 @@ namespace Cyber.Items { /// public float Weight; + /// + /// The slot in which the item can be equipped to. + /// + public EquipSlot Slot; + /// /// Creates an item. This should technically be only called by ItemDB, but it's public because of "reasons". /// - /// ID of the item + /// ID of the item. /// ModelID of the item, see ModelDB. - /// The name if the item - /// The Weight of the item + /// The name if the item. + /// The Weight of the item. + /// The equip slot of the item. /// The description of the item. - public Item(int id, int modelId, string name, float weight, string description) { + public Item(int id, int modelId, string name, float weight, EquipSlot slot, string description) { ID = id; ModelID = modelId; Name = name; Weight = weight; + Slot = slot; Description = description; } @@ -52,8 +59,7 @@ namespace Cyber.Items { /// /// public Item Clone() { - return new Item(ID, ModelID, Name, Weight, Description); + return new Item(ID, ModelID, Name, Weight, Slot, Description); } - } } diff --git a/Assets/Scripts/Items/ItemDB.cs b/Assets/Scripts/Items/ItemDB.cs index 7e60ff8..6c5a634 100644 --- a/Assets/Scripts/Items/ItemDB.cs +++ b/Assets/Scripts/Items/ItemDB.cs @@ -19,8 +19,8 @@ namespace Cyber.Items { /// Creates the ItemDB. Should not be externally called. See . /// public ItemDB() { - AddItem(new Item(Counter++, 0, "Very Long Item Name", 1.5f, "This item is a rare piece of the \"way too long of a name\" technology, invented by space goblins in ancient times.")); - AddItem(new Item(Counter++, 1, "Outworldly spherical tube", .5f, "It's so spherical and smooth that it seems like it's not even from this world!")); + AddItem(new Item(Counter++, 0, "Very Long Item Name", 1.5f, EquipSlot.Hat, "This item is a rare piece of the \"way too long of a name\" technology, invented by space goblins in ancient times.")); + AddItem(new Item(Counter++, 1, "Outworldly spherical tube", .5f, EquipSlot.RightHand, "It's so spherical and smooth that it seems like it's not even from this world!")); } ///