private void EndDrag() { if (selectedItem == null) { return; } GameObject container = RaycastUI("UI_Slot"); DropContainer dropContainer = (container == null) ? null : container.GetComponent <DropContainer>(); // could not find valid drop location if (container == null || container == selectedItemSlot.gameObject) { selectedItem.transform.localPosition = Vector3.zero; } // delete item else if (container.name == "Trash") { selectedItem.transform.SetParent(container.transform); loadout.TrashItem(selectedItem.Item); if (selectedItemSlot.transform.parent.name == "PendingItems") { Destroy(selectedItemSlot.gameObject); } Destroy(selectedItem.gameObject); } // only slot items of the same type else if (dropContainer.Type == selectedItem.Item.Type || dropContainer.Type == SlotType.None) { // swap items if (container.transform.childCount > 0) { loadout.SlotItem(selectedItem.Item); container.transform.GetChild(0).SetParent(selectedItemSlot.transform); selectedItem.transform.SetParent(container.transform); } // fill empty slot else { loadout.SlotItem(selectedItem.Item); selectedItem.transform.SetParent(container.transform); if (selectedItemSlot.name == "Slot") { Destroy(selectedItemSlot.gameObject); } } } selectedItem.transform.localPosition = Vector3.zero; Trash.SetActive(false); selectedItem = null; selectedItemSlot = null; }
private void BeginDrag() { GameObject item = RaycastUI("UI_Item"); GameObject slot = RaycastUI("UI_Slot"); if (item != null && slot != null) { selectedItem = item.GetComponent <DragContainer>(); selectedItemSlot = slot.GetComponent <DropContainer>(); } Trash.SetActive(true); }
public void RpcUpdateTable(string serializedTable) { DropContainer table = DropContainer.ByName ["Table"]; table.cardInSlot = JsonUtility.FromJson <Wrapper <List <int> > > (serializedTable); for (int slotId = 0; slotId < table.cardInSlot.Count; slotId++) { int cardId = table.cardInSlot [slotId]; if (cardId != -1) { Card c = CardFactory.Instance.Cards [cardId]; c.gameObject.SetActive(true); c.transform.parent = table.dms [slotId].transform; c.transform.position = table.dms [slotId].transform.position; } } }
void RpcSyncClient(string serializedPlayerData) { SerializedPlayerData data = JsonUtility.FromJson <SerializedPlayerData> (serializedPlayerData); role = data.role; hand = data.hand; if (isLocalPlayer) { DropContainer container = DropContainer.ByName ["Main"]; for (int i = 0; i < hand.Count; i++) { Card c = CardFactory.Instance.Cards [hand [i]]; c.gameObject.SetActive(true); c.transform.parent = container.dms [i].transform; c.transform.position = container.dms [i].transform.position; } } else { } }
void Awake() { container = GetComponent <DropContainer>(); container.OnObjectiveBlockCompleted += OnCompleted; }
private void UpdateDroppableHover(PointerEventData eventData) { DropContainer oldHover = _currentHoveredContainer; _currentHoveredContainer = PhysicsModule.GetHoveredContainer(_droppableConfig.overlapPhysics, eventData, this); if (_currentHoveredContainer != null) { _dropInfo.Container = _currentHoveredContainer; } SendHoverMessages(oldHover); }
private void SendHoverMessages(DropContainer oldHover) { // if both are null nothing happes, if one if not null, we ether enter a new one, leave the current one or both if (_currentHoveredContainer != oldHover) { if (_currentHoveredContainer != null) // we enter a new hover { OnStartHovering(_dragInfo, _dropInfo); _currentHoveredContainer.OnStartHover(_dragInfo, _dropInfo); } else if (oldHover != null) // we leave the current hover { OnStopHovering(_dragInfo, _dropInfo); oldHover.OnStopHover(_dragInfo, _dropInfo); } } if (_currentHoveredContainer != null) { OnHovering(_dragInfo, _dropInfo); _currentHoveredContainer.OnHover(_dragInfo, _dropInfo); } }
private void DropIntoContainer(DropContainer container) { OnStopHovering(_dragInfo, _dropInfo); container.OnStopHover(_dragInfo, _dropInfo); OnDrop(_dragInfo, _dropInfo); container.OnDrop(_dragInfo, _dropInfo); }
public void OnEndDrag(PointerEventData eventData) { //Debug.Log("End Drag"); IsDragged = false; _dragInfo.DragEndPos = transform.position; _dragInfo.DragEndTime = Time.time; HandleEndDrag(_dragInfo); if (_droppableConfig.isDroppable && _currentHoveredContainer != null) { DropIntoContainer(_currentHoveredContainer); _currentHoveredContainer = null; } }