public bool RemoveItem(Item item) { if (item == null) { throw new ArgumentNullException("Please select an item to remove"); } EquipedItems.Remove(item); return(true); }
public bool AddItem(Item item) { if (item == null) { throw new ArgumentNullException("Please select an item to add"); } EquipedItems.Add(item); return(true); }
private void render() { equipped = new EquipedItems(ApplicationState.Model.GetInventory(Character, false, ApplicationState.AccountName).Where(i => i.InventoryId != "MainInventory")); davinci.Children.Clear(); Dictionary <string, Item> itemsAtPosition = equipped.GetItems(); foreach (string key in itemsAtPosition.Keys) { Grid childGrid = new Grid(); childGrid.Margin = new Thickness(1); Item gearAtLocation = itemsAtPosition[key]; if (gearAtLocation == null) { continue; } if (key.Contains("Weapon") || key.Contains("Offhand")) { bool isAlt = key.StartsWith("Alt"); childGrid.Height = 187; childGrid.Width = 93; childGrid.VerticalAlignment = System.Windows.VerticalAlignment.Center; childGrid.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; if (!showAlts && isAlt) { continue; } if (showAlts && !isAlt) { continue; } } Border border = getBorder(); childGrid.Children.Add(border); childGrid.Children.Add(getImage(gearAtLocation)); Canvas.SetTop(childGrid, absolutely[key].Item1); Canvas.SetLeft(childGrid, absolutely[key].Item2); davinci.Children.Add(childGrid); } this.davinci.Focus(); }
// Update is called once per frame void Update() { // Debug.Log(_mouseState); if (Input.GetMouseButtonDown(0)) { origin = transform.localPosition; RaycastHit hitInfo; target = GetClickedObject(out hitInfo); if (target != null) { DragNDrop dnd = target.GetComponent <DragNDrop>(); if (dnd != null) { _mouseState = true; screenSpace = Camera.main.WorldToScreenPoint(target.transform.position); offset = target.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z)); Collider col = target.GetComponent <Collider>(); if (col != null) { col.enabled = false; } } } } if (Input.GetMouseButtonUp(0)) { _mouseState = false; RaycastHit hitInfo; target = GetClickedObject(out hitInfo); if (target != null) { Collider col = GetComponent <Collider>(); if (col != null) { col.enabled = true; } Body body = target.GetComponent <Body>(); if (body != null) { if (body.TryEquipGameObject(this.gameObject)) { isEquipped = true; Rotate rotate = GetComponent <Rotate>(); if (rotate != null) { rotate.enabled = false; transform.localRotation = originRotation; transform.localScale = originScale; } } else { transform.localPosition = origin; isEquipped = false; } } else { body = target.GetComponentInParent <Body>(); if (body != null) { if (body.TryEquipGameObject(this.gameObject)) { isEquipped = true; Rotate rotate = GetComponent <Rotate>(); if (rotate != null) { rotate.enabled = false; transform.localRotation = originRotation; transform.localScale = originScale; } } else { transform.localPosition = origin; isEquipped = false; } } else { // InspectPosition needs rigidbody and collider and larger hot spot // Player needs larger hotspot as well if (isEquipped && target.name == "InspectPosition") { if (target.transform.childCount > 0) { for (int i = 0; i < target.transform.childCount; i++) { DestroyObject(target.transform.GetChild(i).gameObject); } } BodyPartHover bph = GetComponent <BodyPartHover>(); if (bph != null) { bph.isEnabled = false; } isEquipped = false; transform.parent = target.transform; transform.localRotation = originRotation; transform.localScale = originScale; Rotate rotate = GetComponent <Rotate>(); if (rotate != null) { rotate.enabled = true; } BodyPart[] bodyParts = GetComponents <BodyPart>(); InventoryObject io = GetComponent <InventoryObject>(); if (io != null) { foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null) { switch (bodyPart.bodyPartType) { case BodyPartType.Hat: if (EquipedItems.GetHat() == io.ResourceName) { EquipedItems.EquipHat(null); } break; case BodyPartType.EyeNose: if (EquipedItems.GetLeftEye() == io.ResourceName) { EquipedItems.EquipLeftEye(null); } if (EquipedItems.GetRightEye() == io.ResourceName) { EquipedItems.EquipRightEye(null); } if (EquipedItems.GetNose() == io.ResourceName) { EquipedItems.EquipNose(null); } break; case BodyPartType.Mouth: if (EquipedItems.GetMouth() == io.ResourceName) { EquipedItems.EquipMouth(null); } break; case BodyPartType.Scarf: if (EquipedItems.GetNeck() == io.ResourceName) { EquipedItems.EquipNeck(null); } break; case BodyPartType.Mitten: if (EquipedItems.GetLeftHand() == io.ResourceName) { EquipedItems.EquipLeftHand(null); } if (EquipedItems.GetRightHand() == io.ResourceName) { EquipedItems.EquipRightHand(null); } break; } } } } } else { transform.localPosition = origin; isEquipped = false; } } } } else { transform.localPosition = origin; isEquipped = false; } } if (_mouseState) { //keep track of the mouse position var curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); //convert the screen mouse position to world point and adjust with offset var curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset; //update the position of the object in the world target.transform.position = curPosition; } }
void Start() { if (EquipedItems.GetHat() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetHat(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.Hat) { EquipGameObject(bodyPart, HatEquipmentPosition.ObjectPosition); } } } if (EquipedItems.GetLeftEye() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetLeftEye(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.EyeNose) { EquipGameObject(bodyPart, LeftEyePosition); } } } if (EquipedItems.GetRightEye() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetRightEye(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.EyeNose) { EquipGameObject(bodyPart, RightEyePosition); } } } if (EquipedItems.GetNose() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetNose(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.EyeNose) { EquipGameObject(bodyPart, NosePosition); } } } if (EquipedItems.GetMouth() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetMouth(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.Mouth) { EquipGameObject(bodyPart, MouthPosition); } } } if (EquipedItems.GetNeck() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetNeck(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.Scarf) { EquipGameObject(bodyPart, ScarfPosition); } } } if (EquipedItems.GetLeftHand() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetLeftHand(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; obj.transform.localRotation = new Quaternion(0f, 0.9f, 0f, 1f); DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.Mitten) { EquipGameObject(bodyPart, LeftMittenPosition); } } } if (EquipedItems.GetRightHand() != null) { GameObject obj = (GameObject)Resources.Load(EquipedItems.GetRightHand(), typeof(GameObject)); GameObject ins = Instantiate(obj); ins.layer = 2; ins.transform.localRotation = new Quaternion(0f, -0.9f, 0f, 1f); DragNDrop dnd = ins.AddComponent <DragNDrop>(); dnd.isEquipped = true; BodyPart[] bodyParts = ins.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { if (bodyPart != null && bodyPart.bodyPartType == BodyPartType.Mitten) { EquipGameObject(bodyPart, RightMittenPosition); } } } }
public bool TryEquipGameObject(GameObject obj) { bool retval = false; if (obj != null) { BodyPart[] bodyParts = obj.GetComponents <BodyPart>(); foreach (BodyPart bodyPart in bodyParts) { BodyPartHover bph = obj.GetComponent <BodyPartHover>(); if (bph != null) { if (bodyPart != null) { InventoryObject io = obj.GetComponent <InventoryObject>(); if (io != null) { switch (bodyPart.bodyPartType) { case BodyPartType.Hat: if (EquipedItems.GetHat() == null) { HatEquipmentPosition.Object = obj; EquipGameObject(bodyPart, HatEquipmentPosition.ObjectPosition); if (HatToggle != null) { HatToggle.isOn = true; } EquipedItems.EquipHat(io.ResourceName); retval = true; } break; case BodyPartType.EyeNose: if (EquipedItems.GetLeftEye() == null) { EquipGameObject(bodyPart, LeftEyePosition); if (LeftEyeToggle != null) { LeftEyeToggle.isOn = true; } EquipedItems.EquipLeftEye(io.ResourceName); retval = true; } else if (EquipedItems.GetLeftEye() != io.ResourceName && EquipedItems.GetRightEye() == null) { EquipGameObject(bodyPart, RightEyePosition); if (RightEyeToggle != null) { RightEyeToggle.isOn = true; } EquipedItems.EquipRightEye(io.ResourceName); retval = true; } else if (EquipedItems.GetLeftEye() != io.ResourceName && EquipedItems.GetRightEye() != io.ResourceName && EquipedItems.GetNose() == null) { EquipGameObject(bodyPart, NosePosition); if (NoseToggle != null) { NoseToggle.isOn = true; } EquipedItems.EquipNose(io.ResourceName); retval = true; } break; case BodyPartType.Mouth: if (EquipedItems.GetMouth() == null) { EquipGameObject(bodyPart, MouthPosition); if (MouthToggle != null) { MouthToggle.isOn = true; } EquipedItems.EquipMouth(io.ResourceName); retval = true; } break; case BodyPartType.Scarf: if (EquipedItems.GetNeck() == null) { EquipGameObject(bodyPart, ScarfPosition); if (ScarfToggle != null) { ScarfToggle.isOn = true; } EquipedItems.EquipNeck(io.ResourceName); retval = true; } break; case BodyPartType.Mitten: if (EquipedItems.GetLeftHand() == null) { EquipGameObject(bodyPart, LeftMittenPosition); if (LeftMittenToggle != null) { LeftMittenToggle.isOn = true; } EquipedItems.EquipLeftHand(io.ResourceName); // Rotate Mitten so Thumb is up. obj.transform.localRotation = new Quaternion(0f, 0.9f, 0f, 1f); retval = true; } else if (EquipedItems.GetLeftHand() != io.ResourceName && EquipedItems.GetRightHand() == null) { EquipGameObject(bodyPart, RightMittenPosition); if (RightMittenToggle != null) { RightMittenToggle.isOn = true; } EquipedItems.EquipRightHand(io.ResourceName); // Rotate Mitten so Thumb is up. obj.transform.localRotation = new Quaternion(0f, -0.9f, 0f, 1f); retval = true; } break; } } } } } } return(retval); }